Communitygithub.com

codext4fn-afk/roblox-video-replicate

精準根據參考影片在 Roblox Studio 中重現任何內容 — VFX 能力、終極技能、領域、過場動畫、角色與敵人動畫,以及遊戲系統(戰鬥與連擊、判定框、暈眩、衝刺與移動技巧、有冷卻時間的技能、HUD/UI、商店/背包、回合循環、NPC 行為),並可使用 Blender 建立自訂 VFX 網格與翻頁動畫。當使用者分享 Roblox 遊戲、動作、機制或效果的影片、剪輯或錄製檔(mp4、mov、gif、螢幕錄影),並希望將其複製、重現、做到「完全像這樣」或綁定按鍵,或要求對以此方式建立的內容進行細化、重新計時或重新製作動畫時使用。

roblox-video-replicate 是什麼?

此技能可讓 AI 助手(例如 Claude Code 或 Cursor)根據使用者提供的參考影片,在 Roblox Studio 中精確重建遊戲機制、視覺特效和動畫。它提供了一個嚴謹的結構化流程:首先從影片中提取影格並進行分析,然後檢查現有 Roblox 環境,從 Creator Store 擷取資源,並在必要時使用 Blender 建立自訂 VFX 網格或翻頁動畫。設計的評估標準是「完全像影片一樣」,拒絕用戶未要求的、或影片中未出現的誇張效果。 此技能支援 Roblox Studio MCP 工具(執行 Lua 腳本、資產搜尋等)、Blender MCP(用於影格提取與 VFX 製作)以及 PowerShell/Bash 腳本。它詳細規定了 VFX(視覺效果)和遊戲系統的建構流程,強調伺服器端權威邏輯和客戶端視覺同步。此外,它還包含一個嚴格的驗證階段,透過自動化截圖和時間測量來比對重現內容與原始參考素材,確保玩家的體驗與參考影片一致。此技能會避免創建平行框架,而是重複利用使用者的現有環境,並遵循其程式碼風格。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/codext4fn-afk/claude-skills/tree/main/roblox-video-replicate

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Roblox:重現參考影片中的內容

使用者的標準是**「完全像影片一樣」**。他們拒絕憑空發明的效果或機制、生硬的動畫,以及片中沒有的花俏裝飾。此處的一切都讓你緊扣參考素材,並與之進行比對——而不是憑你的記憶。

工具:Roblox Studio MCP(execute_luau、search_asset、insert_asset、upload_image、screen_capture、start_stop_play、user_keyboard_input、user_mouse_input、get_console_output、multi_edit)、Blender MCP(execute_blender_code——影格提取與 VFX 製作)、PowerShell/Bash。

0. 基本規則

  • 只重現影片中顯示的內容。不明確?多看幾幀;仍然不清楚?提問——不要用自己的想法填補空白。
  • 紋理/圖片:不要自己繪製。優先使用 Creator Store。如果沒有相似的資源,則根據參考素材在 Blender 中製作該資源(§4),並告知使用者你這麼做了。
  • 預設觸發方式為按鍵按下(若未指定則詢問是哪個按鍵)。
  • 不得有未經要求的裝飾(旋轉、卡通翻轉)。使用者明確表示厭惡這些。
  • 複製機制、感覺和效果——而非另一款遊戲的品牌、名稱、UI 美術或盜用資源,也不要克隆整個現有遊戲。如果被要求製作一款與其他遊戲完全相同的遊戲,請重現所示範的特定機制/效果並說明。

1. 提取並研究影格

  1. 透過 Blender 渲染影格(ffmpeg 通常不存在):將 scripts/extract_frames.py 傳送給 execute_blender_code,並設定 VIDEO/OUT。它使用一個臨時場景,不會影響使用者的 .blend 檔案。在 Windows 上請保持 OUT 路徑簡短(MAX_PATH)。
  2. scripts/contact_sheet.ps1 -Dir <OUT> → 4×4 標籤工作表。讀取所有工作表,然後在每個剪接、撞擊、UI 變化和輸入處打開單個影格。對於快速機制,在你正在測量的時刻周圍使用 STEP = 1。
  3. 決定你要構建的內容:VFX/過場動畫、遊戲系統,或兩者兼有(大多數戰鬥動作都是兩者:一個決定發生什麼的系統 + 顯示它的 VFX)。
  4. 在構建之前編寫規格——這是之後你用來驗證的依據:
    • 節拍表(VFX):每個節拍一行,包含時間(影格/fps)、鏡頭、每個效果(形狀、顏色、紋理、大小、壽命、數量)、每個角色的姿勢、後處理。
    • 系統規格(機制):輸入、狀態和轉換、時間(前搖/判定/後搖/冷卻時間,以影格為單位)、距離和速度(根據約 5 格高的 R15 身體測量)、螢幕上顯示的數字、UI 及其動畫、其他玩家看到的內容。請參閱 references/systems.md。

2. 檢查場地

search_game_tree + 快速傾印 Lighting、StarterPlayer、ReplicatedStorage、ServerScriptService。重複使用使用者現有的框架(戰鬥模組、遠端、資料儲存、UI 套件),而不是建立平行的框架;配合他們的程式碼風格。

3. 來自 Creator Store 的資源

  • search_asset(範圍 creator_store,priceFilter: free)每個元素使用 3–5 種措辭。視覺比較候選物件:scripts/asset_sheet.ps1 建立一個帶標籤的縮圖工作表,以便在參考影格旁邊讀取。
  • Decal 資產 ID 不是圖片 ID:在使用於粒子/GUI 之前,使用 game:GetObjects("rbxassetid://"..id)[1].Texture(Edit datamodel)進行解析。
  • 免費模型通常含有後門。 插入模型後,列出每個 LuaSourceContainer;只保留你需要的部分,並銷毀其餘部分。
  • 真實化身作為假人/敵人:Players:CreateHumanoidModelFromUserId(Players:GetUserIdFromNameAsync(name)) 可在 Edit 下使用。錨定 HRP,將腳放在地板上,除 Animate 外移除所有腳本。

4. 何時在 Blender 中建構 VFX

預設使用 Roblox 原生效果(粒子、光束、軌跡、零件、GUI)——成本低、可調整、即時渲染。當參考素材顯示原生效果無法良好近似的事物時,才使用 Blender:

參考素材顯示Blender 輸出匯入 Roblox 方式
厚實的 3D 斬擊弧、扭曲螺旋、衝擊波穹頂、尖刺、有深度的地面裂縫帶 UV 的網格(+漸層/噪點紋理)從匯出資料建立的 EditableMesh,或使用 3D Importer
手繪/動畫風格的煙霧、火焰、爆炸、能量爆發、衝擊幀渲染的翻頁動畫精靈表(透明 PNG)upload_image → ParticleEmitter 翻頁動畫 / ImageLabel
複雜紋理(噪點軌跡、漸層斜坡、漩渦貼圖)渲染的 PNGupload_image → Beam/Trail/Texture

閱讀 references/blender_vfx.md 了解管線(場景設定、翻頁動畫渲染 + 網格打包、網格匯出至 Luau、localhost 上傳、EditableMesh 建構器、在時間軸中為網格製作動畫)。

5. 建構

  • VFX / 過場動畫:一個由時間軸驅動的客戶端 ModuleScript(事件、鏡頭拍攝、逐影格更新器、時間軸時間延遲、扭曲區域、暫停),附帶清理堆疊,以及施法者和目標的關鍵影格身體。複製 references/engine.md 中的骨架。
  • 系統:伺服器端權威——客戶端透過 RemoteEvent 發送意圖,伺服器驗證(冷卻時間、狀態、範圍、速率限制)並套用結果,客戶端渲染回饋。資料夾佈局和每個系統的配方在 references/systems.md 中。
  • 兩者兼有:伺服器決定命中/傷害/狀態並觸發客戶端;每個客戶端播放 VFX 模組。將時間保持在其中一個共享設定中,以便機制和視覺效果保持同步。

6. 感覺生動的動畫

靜態姿勢會被認為很「糟糕」。有效的方法:

  • 關鍵影格軌跡,而非姿勢——每個角色數十個關鍵影格;每個關鍵影格 = 姿勢 + 覆蓋 + 進入它的緩動。
  • 每次攻擊:預備動作 (Quad.In) → 打擊 (Exponential.Out,40–70 毫秒) → 超越 (Quad) → 穩定 (Sine.InOut)。每次擊中目標:後座力關鍵影格 + 衰減的震動脈衝。
  • 每影格添加生命力:呼吸、所有關節的緩慢噪點漂移、命中震動、顫抖。
  • 為目標賦予表現(驚嚇、後座力、踉蹌、倒地:膝蓋、手、側身)。除非剪輯中有,否則不要有翻筋斗。
  • 將故事節拍與剪輯的剪接點匹配;詢問節奏並使用 TimeWarp 區域來減慢部分段落。

7. 根據參考素材驗證

  • 進行遊戲測試。時間軸:使用 PauseAt 逐步執行,並在每個節拍處截圖,旁邊配上對應的參考影格。系統:使用 user_keyboard_input / user_mouse_input 驅動輸入,從 Client 和 Server 資料模型讀取狀態,並根據規格測量時間(os.clock)和距離——以數字為準,而不是感覺。
  • 偵錯攝影機設定為 Enum.RenderPriority.Last.Value;暫停時清除粒子/禁用光束和 GUI 以便查看身體。
  • execute_luau 在其自己的 VM 中執行:require 會產生一個單獨的模組實例——觀察遊戲狀態(屬性、錨定、CameraType),而不是模組欄位。
  • 最後進行真實輸入,然後確認清理/恢復和乾淨的 get_console_output。

8. 注意事項

在開始建構之前,請閱讀 references/gotchas.md——不可見的 1 段光束、暗暈眩光、DepthOfField 模糊、Expo 與 Exponential、關節變換僅在 PreSimulation 中寫入時渲染、AnimationConstraint 骨架、身體大小縮放 + 地板夾制、地形水深、水面反射疊加、網路問題等。

9. 報告

每個節拍/機制現在的作用(附時間戳或按狀態)、使用了哪些資源(商店 ID、Blender 製作的資源及其上傳的 ID)、任何無法匹配的內容及原因、可調參數的位置(設定模組、Cutscene.Poses/Tracks、TimeWarp),以及提醒儲存場地(Ctrl+S)。

相關技能