Communitygithub.com

Roblox参照動画再現スキル

参照動画に示された内容を可能な限り正確にRoblox Studioで再現します。VFXエフェクト、必殺技、領域、カットシーン、キャラクター・敵のアニメーション、ゲームプレイシステム(戦闘・コンボ、ヒットボックス、スタン、ダッシュ・移動技術、クールダウン付きアビリティ、HUD/UI、ショップ/インベントリ、ラウンドループ、NPC挙動)に対応。必要に応じてBlenderでカスタムVFXメッシュやフリップブックを作成します。ユーザーが動画やクリップ、録画(mp4、mov、gif、画面録画)を共有し、「まったく同じように」コピー・再現・改良・再タイミング・再アニメーションを依頼した場合に使用します。

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`)を連携させ、参照動画からフレーム単位で分析・再現を行います。ユーザーが共有した動画やクリップの内容を厳密にトレースし、Robloxネイティブのパーティクル、ビーム、トレイル、パーツ、GUI、あるいはBlenderで生成したメッシュやフリップブックを用いて、VFX、アニメーション、ゲームシステムを構築します。AIはまずフレーム抽出とコンタクトシート生成で動画を分析し、仕様書(ビートシート、システム仕様)を作成します。その後、Creator Storeからアセットを検索し、必要に応じてBlenderでカスタムアセットを制作。サーバー権限モデルでシステムを実装し、クライアントでVFXを再生。最後に参照動画と照合して検証し、正確な再現を保証します。アニメーションは「予備動作→ストライク→オーバーシュート→落ち着き」の原則に従い、生き生きとした動きを実現します。

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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 を VIDEO/OUT を設定して execute_blender_code に送信します。使い捨てシーンを使用し、ユーザーの .blend ファイルには触れません。Windows では OUT を短く保ちます(MAX_PATH)。
  2. scripts/contact_sheet.ps1 -Dir <OUT> → 4×4 のラベル付きシート。すべてのシートを読み、カット、インパクト、UI変更、入力があるたびに単一フレームを開きます。高速なメカニクスの場合は、測定したい瞬間の周辺で STEP = 1 を使用します。
  3. 何を構築するか決定します: VFX/カットシーン、ゲームプレイシステム、または 両方(ほとんどの戦闘技は両方です。何が起こるかを決定するシステムと、それを表示するVFX)。
  4. 構築前に仕様を書きます。後で照合する基準となります。
    • ビートシート(VFX): 拍ごとに1行、時間(フレーム/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)で解決してください。
  • フリーモデルにはバックドアが含まれていることがよくあります。 Model を挿入した後、すべての 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

パイプライン(シーン設定、フリップブックレンダリング + グリッドパッキング、メッシュの Luau へのエクスポート、localhost アップロード、EditableMesh ビルダー、タイムラインでのメッシュアニメーション)については references/blender_vfx.md を参照してください。

5. 構築する

  • VFX / カットシーン: タイムライン(イベント、カメラショット、フレームごとのアップデータ、タイムライン時間遅延、ワープゾーン、ポーズ)とクリーンアップスタック、およびキャスターとターゲットのキーフレームボディによって駆動される1つのクライアント ModuleScript。references/engine.md の骨格をコピーします。
  • システム: サーバー権限モデル。クライアントは RemoteEvent を介して意図を送信し、サーバーが検証(クールダウン、状態、範囲、レート制限)して結果を適用し、クライアントがフィードバックをレンダリングします。フォルダレイアウトとシステムごとのレシピは references/systems.md にあります。
  • 両方: サーバーがヒット/ダメージ/状態を決定してクライアントに発火します。各クライアントが VFX モジュールを再生します。タイミングは共有設定に保持し、メカニクスとビジュアルが同期したままになるようにします。

6. 生き生きとしたアニメーション

静止ポーズは「ブン」と読まれます。効果的な方法:

  • ポーズではなくキーフレームトラック — キャラクターあたり数十のキー。各キー = ポーズ + オーバーライド + イージング でその状態に入る。
  • すべての攻撃: 予備動作 (Quad.In) → ストライク (Exponential.Out、40~70ms) → オーバーシュート (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)ように促すメッセージ。

関連スキル