mcpField
S
scenario-unreal-cinematics

scenario-unreal-cinematics

github.com/scenario-labsクリエイティブ・メディア1.2k196 回インストール1 日前に更新
リポジトリ

scenario-unreal-cinematics について

Sequencer と Movie Render Graph を使う Unreal Engine 5.8 の映像制作チーム向けスキルです。編集計画、ショット構築、レンダリング検査、EXR納品を検証可能な手順にまとめます。

主な機能

  1. 01データでショットと編集構成を計画
  2. 02共通テンプレートからSequencerショットを構築
  3. 03プリロール、フレーム、カットの連続性を確認
  4. 04ショット単位でMovie Render Graphを実行
  5. 05EXR出力を監査し納品メモを作成

活用シーン

  1. 01アニメーション前にショット計画とテンポを確認
  2. 02ショットのライティングと画を制作・レビュー
  3. 03最終レンダリングのEXRと色管理を設定
  4. 04レンダリング後に編集リストと納品物を整理

MCP 対応

ワークフローでは MCP SequencerTools ツールセットの確認を推奨し、エディター作業に MCP または PythonRemote を利用できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scenario-labs/skills --skill scenario-unreal-cinematics

インストール後、Claude Code で/scenario-unreal-cinematicsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
critique.md
expert-notes.md
gui-paths.md
procedures.md
sources.md
scripts/
cine_render_callbacks.py
ue_cine.py

詳細

Unreal Engine 5.8 のシネマティクス(Sequencer と Movie Render Graph)

ここでいうエキスパートレベルとは、構築を始める前にカットをデータとして確認し、ビューポートではなく、ファイルとフレームを基準にレンダーを評価することです。基本方針は、オフラインで計画し、1 回のトランザクションで構築し、アニメーションを付ける前に音楽に合わせてタイミングを確定し、承認済みのマスターを基準にライティングを行い、1 つのテンプレートグラフを使ってショットごとにレンダーし、リニア EXR、編集データ、カラーグレーディング用のメモをカラーグレーディング工程に渡すことです。ここに記載されている関連スキルが利用可能なスキルにない場合は、ユーザーにインストールを依頼してください (npx skills add scenario-labs/skills --skill <name>)。無人で進める場合は、ツールのスキーマをもとに作業し、不足している点を明示してください。

必須の前提知識: scenario-unreal-expert(チャンネル、レビューの反復、5.8 の落とし穴)。

ステータス(2026-09-24): scripts/ue_cine.py と scripts/cine_render_callbacks.py は、まだ Unreal で実行されていません。オフラインテストは合格しています(件数は references/sources.md を参照)。エンジンでは、まず tests/code/unreal-cinematics/job_00_probe_cine.py を実行してください。

基本方針(エキスパートによる差分)

  • マスターは編集用、内容を持つのはショットです。 カメラ、キャラクター、キーはショット内に置き、照明や FX など分野別のサブシーケンスもショット内に置きます。そのため、ペースを調整するとセクションが移動し、アニメーションは移動しません(Sir Wade、ywtvn1uncZo [00:07:32]、Glitch、uzTo5vQchkk [00:35:24])。ショットごとの要素はスポーン可能オブジェクト、セットは所有可能オブジェクトにすることで、シネマティックをどのレベルでも再生できます(yOcgYMcxr3Q [00:07:53] [00:13:50])。あるショットでアニメーションさせた所有可能オブジェクトは、ショットの終了後に元の状態に戻ります。アウトライナーの表示状態は保存されませんが、レベルパネルの表示状態は保存されます([00:10:34] [00:02:23])。マスターを複製してもショットは共有されるため、「誰かが照明を調整すると、7つのショットが変わってしまいます」(Epic CAT、S4Iyzbl-oaE [00:41:34])。試行には New Take を使います。
  • 構造はテンプレート化してスクリプトで作成し、手作業で組み立てません。 表示レート、開始フレーム、バイアス、命名規則、フォルダーテンプレートは、リビジョン管理下の DefaultEngine.ini で一度だけ設定します(S4Iyzbl-oaE [00:15:22] [00:21:52])。CAT 5.8 のスキーマはネストでき、ショットごとに独自のレベルを持たせられます(VP 5SJA1FfRPWs [00:19:07] [00:20:44])。すべてのツールを ScopedEditorTransaction と ScopedSlowTask で囲みます。「実行時間の長い Python コードは、エンジンがフリーズしたように見えます」(SPI、moQTQzAOFVA [00:16:16])。
  • アニメーションを始める前にタイミングを確定します。 一定のキーを使って絵コンテを作り、音楽は専用のトラックに置き、アクセント音はカットにぴったり合わせます。「最終的な映像に入らないフレームの作業に時間をかけたくはないでしょう」(Toonen、mAMp6qCt7kc [00:15:04] [00:15:36] [00:04:55])。リタイミングでは意図を維持する必要があります。キーはショットと一緒に移動させ、複数のショットにまたがるサブシーケンスは分割し、それぞれの部分に独自のアセットを割り当てます(moQTQzAOFVA [00:14:04] [00:24:19])。
  • ウォームアップには3つの対策があり、終了フレームは範囲に含まれません。 CPU シミュレーションがアイドル状態の場合:Engine Warm Up Count を 30 より大きくします。テンポラル履歴の場合:Render Warm Up を使います。フレーム1で動いているものがある場合:開始前までアニメーションとカメラカットを延長し、カメラカットのウォームアップを設定します。これにより、フレーム1を保持する代わりに、開始前のフレームが評価されます(tips doc、Comly/Hoffman、demystifying MRQ)。範囲を 0~50 にすると、0~49 がレンダリングされます。
  • サンプルで得られるのはモーションブラーとアンチエイリアスだけです。 ノイズの原因は元までたどって特定します(demystifying MRQ、Faucher、fVg5ihB8Wdc [00:09:15])。Temporal のみなら Frame Center と奇数のサンプル数を使い、Blur なら Frame Close と 24/48/64 サンプルを使います(AAAhD5tEUBs [00:39:32])。8 サンプルを超える場合は AA None を使います。名前を付けたショット固有の問題に対処する必要が生じるまでは、コンソール変数は使いません(fVg5ihB8Wdc [00:03:00])。
  • 線形 EXR を使って外部でグレーディングし、その読み方を明記します。 トーンカーブをオフにすると線形 sRGB になり、UE のトーンカーブは「ACES 風ですが、真の ACES ではない」ため、ビューポートより約1段暗くなります(Faucher、2Q3CybANHKE [00:04:31] [00:09:39])。Resolve の ACES Transform:トーンカーブがオンの場合は sRGB (Linear) から sRGB Texture、オフの場合は Linear sRGB から sRGB。ACEScg は(ベンダーに渡す場合のみ)ACEScg から sRGB です([00:08:30] [00:09:05])。ビューポートの OCIO Display をそのビューに設定して、照明確認とレビューを行います([00:10:28] [00:11:00])。
  • レンダリングの単位はショットです。 「Unreal Engine で配布可能な作業の最小単位は、単一のカメラカットです」(MRQ command-line doc)。ショットごとにジョブを1つ、テンプレートグラフを1つ用意し、ジョブごとの変数オーバーライドを使います。共有グラフは編集しません。通常の MRQ は監視が必要で、クラッシュするとショットが失われるため、複数ショットの無人レンダリングにはファームマネージャーを使います(Glitch [00:40:14])。
  • 照明はプロセスによって拡張できます。 初日から仮のカメラライトを使います。次に、照明シナリオごとに代表的なショットを1つか2つ作り、ディレクターと一緒に確定します。その後、それらを元にショットごとの _LGT サブシーケンスを作り、マスターからの距離に応じてグレーディングします(Glitch [00:27:18] [00:28:51] [00:29:23] [00:31:32] [00:36:59])。

最初に確認すること

入力変更内容指定がない場合のデフォルト
出力形式:グレーディング済みまたはダイレクトトーンカーブ、形式、OCIO、カラーに関する注意事項グレーディング済み:EXR 16-bit half、トーンカーブ無効
制作記録(レート、開始位置、バイアス、命名規則)すべてのシーケンス、EDLプロジェクトの DefaultEngine.ini。それ以外の場合は24 fps、開始位置0(SPI 101、CAT デモ1000:編集に合わせる)
尺、ショット、音楽レイアウト、スティンガーブリーフ。絵コンテ作成前に仮トラックを用意
アスペクト比とフィルムバックレンズ、フレーミング16:9 デジタルフィルム[mmを確認]。スコープでは2.39にクロップ
レベルと既存の要素バインディング所有可能に設定。カメラ、キャラクター、ショットライトはスポーン可能にし、マスターライティングはレベル内に配置
キャストプリロール、コスト既存のアニメーションシーケンス。キャラクターごとのジョイントとメッシュ
ショットごとの動き、シャッタータイミングサンプル数、プリロールフレーム中央、奇数のサンプル数
露出連続性マニュアル、物理カメラ。絞りの変更はISOで補正
チャンネルビルド、絵コンテ、レンダー絵コンテではライブエディター(MCP、PythonRemote)。最終出力では ue_run またはコマンドライン

ワークフロー

import ue_cine as C(scripts/ スキル。scenario-unreal-expert の scripts/ をパスに追加)。全コードは references/procedures.md を参照してください。

  1. スキャフォールド(プロジェクトごとに一度)。 Production Setup(CAT)または Project Settings で本番環境のデフォルトを一度記録し、plan["production"] にコピーします。フォルダーテンプレート、10刻みのショット番号を設定します。CAT 5.8 では、ショットスキーマに _LGT スキーマを保持し、ショットごとに固有のセット状態が必要な場合はショットごとにレベルを作成します(P2)。まず MCP SequencerTools ツールセットを確認します[要検証]。ゲート:C.check_production(plan) に失敗がないこと、audit_sequence の seq.rate と seq.start を確認します。
  2. カットをデータとして計画(python3)。 ショット、サイズ、レンズ、カメラと被写体の位置、動き、フラグ、キャスト(ジョイント、メッシュ)、スタンガー、ライティングシナリオを設定します。C.check_plan(plan) で、長さ、レンズ、フレーミング、180度ライン、画面上の方向、ジャンプカット、DOF、プリロール、露出、キャスト、スタンガー、ライティンググループを確認します(P1)。ゲート:失敗がないこと。すべての警告を修正するか、計画内で対処します。
  3. 1つのトランザクションで構築(エディター)。 C.build_from_plan(plan):Shots と音楽を含むマスター、ショットごとにスポーン可能な Cine Camera(レンズにキーを設定し、LOD 用に Use Field of View をオン)、プリロールから排他的な終了点までのカメラカット、プリロール済みのパフォーマー、一時ライトを含む <shot>_LGT(P3)を作成します。既存のものは上書きしません。ゲート:C.audit_sequence に失敗がないこと、bind.override に回答済みであること、C.empty_level_test にセットピースのみが表示されること。
  4. ボードを作成し、カットをロック(レイテンシーのあるエディター)。 C.board_generator(..., preroll=True):各ショットの最初・中間・最後のフレームに加え、各ショットの最初のプリロールフレームを単独で読み込みます(GUI:Evaluate Sub Sequences In Isolation)。ue_review.image_checks とコンタクトシートを確認します(P4)。リタイミング(C.retime_shot)、テイク(C.new_take)、C.editor_tool 内の独自ツール(P5)を使用します。ゲート:全白または全黒のフレームがないこと、シートと音楽付きのカットが評価済みであること、C.ready_to_animate(plan) を通過すること。
  5. 演技とカメラの仕上げ。 キー設定した Manual Focus Distance でラックフォーカスを行い(P6)、カメラの動きをベース、オフセット、シェイクのレイヤーとして構成します(P7)。Accumulation DOF は DOF が中心となるショットのみに使用します。ゲート:再度ボードを作成します。キー設定したフォーカスが被写体までの距離と一致すること、セクション境界でポップがないことを確認します。
  6. ライティング(scenario-unreal-lighting-rendering と連携)。 一時ライトのレンダーで全員が作業を進められるようにします。C.lighting_masters(plan) を実行し、その結果のみをレンダーします(render_jobs(plan, only=...))。ディレクターの承認を plan["lighting_approved"] に記録します。その後、_LGT にショットごとのリムライトとキックライトを追加し、ビューポートの OCIO Display を通してライティングします(P7b)。ゲート:C.ready_for_final_lighting(plan) を実行し、輝度の連続性とマスターに対する承認を確認します。ショットの処理が遅い場合は stat unit または Insights トレースを確認します。
  7. ドラフトをレンダーしてレビュー。 レビューグラフまたは 5.8 Basic config を使用し、音楽付きで C.review_movie_cmd を実行します(P10)。ゲート:C.check_render_output、C.first_frame_pop、C.cut_flash を実行し、音声付きで視聴します。
  8. 最終 EXR。 P8 に従ったテンプレートグラフと CineWrittenFiles Execute Script(Editor Only)を使用します。C.audit_render_settings(C.normalize_graph_snapshot(C.graph_snapshot(graph))) を実行します。C.render_jobs(plan, sequences=C.active_shot_paths(master, plan))、C.render_orchestration、続いて(executor をグローバルに保持した状態で)C.render_generator、またはショットごとに C.mrq_command_line を実行します(常に -notexturestreaming を指定)(P9)。ゲート:設定監査に合格すること、C.check_manifest とサンプルフレームごとの C.exr_checks を実行すること。クラッシュ後は、C.shots_to_render(...) で返されたショット全体を再レンダーします。
  9. 納品。 ショットごとの EXR、C.edl(plan)、レビュー用 MP4、C.delivery_note(plan, settings)(Resolve の解釈)、JSON レポートを納品します。メモは技術面とクリエイティブ面に分け、クリエイティブレビューを3ラウンド行った後、ライブセッションを実施します(Glitch [00:32:37] [00:33:40])(P11)。

数値

項目値比較対象、出典
階層バイアスルートは 0、階層ごとに +100、同じ値はブレンドされますshots doc
プリロール布、髪、動いているパーティクルでは 24〜48 フレームdigest; tips doc
エンジンのウォームアップ、クロスシミュレーションのアイドル状態30 フレーム超tips doc
時間サンプルフレームクローズ:基本は 24(Blur のショットの 95%)、速い動きでは 48、非常に速い動きでは 64。フレームセンター:奇数(15、25、49、65。Faucher によると、15〜31 で 95〜98% をカバー)AAAhD5tEUBs [00:39:32] [00:40:05]; fVg5ihB8Wdc [00:06:01] [00:10:58]
AA 方式合計サンプル数が 8 を超える場合はなしMRG image quality doc
ウォームアップのサンプリングウォームアップの最後の 5 フレームのみをサンプリングします5.6 and 5.8 notes
リニアとビューポートの差約 1 ストップ暗くなります2Q3CybANHKE [00:09:39]
レビュー用 MP4 動画のビットレートfps × 2 × 1000 kb/s(24 fps の場合は 48,000)2Q3CybANHKE [00:22:54]
キャラクタージョイント数は 200 未満Glitch [00:05:33]
マスターライティング400 ショットのエピソードにつき 10〜13 人日、各 1〜2 日Glitch [00:28:51]

品質ゲート

  • 測定可能: check_plan、ready_to_animate、ready_for_final_lighting、audit_sequence は必ず成功すること。audit_render_settings は失敗せず、警告への未回答がないこと。フレーム数の終端は排他的であること(check_render_output、check_manifest)。EXR はハーフ精度で、NaN や Inf がなく、黒ではなく、リニア時の明るいショットでは値が 1.0 を超え、メタデータが存在すること。first_frame_pop と cut_flash は false であること。輝度の急変は意図した箇所に限ること。
  • 視覚: コンタクトシート、分離したプリロールフレーム、最初のフレーム、すべてのカット、髪やオクルーダーの DOF エッジ、最速のモーションブラー、グレードの OCIO ビューを通したマスターとのライティングの比較、音楽に合わせたカット。

よくあるミス

ミス発生する問題対処法
実験のためにマスターを複製する変更が「バックアップ」にも反映されるショット内で新しいテイク(new_take)を作成する
キャラクターやカメラをポゼッサブルにする別のマップで動作しなくなるスポーナブルを使用する。empty_level_test
セットピースをポゼッサブルとしてアニメーションさせるショット終了後に元の状態に戻る必要な箇所でキーを打つか、スポーナブルを使用する(bind.override)
アウトライナーの目のアイコンでアクターを非表示にする再度開くと表示されるレベルパネルまたはレベル表示トラックを使用する
複数のスケルタルメッシュに1つのアニメーショントラックを使うパーツが追従しないリーダーポーズコンポーネントを設定する(check_characters)
長時間実行するPythonツールで進捗を表示しない「フリーズ」したエディターが書き込み途中で終了するeditor_tool
タイミングが確定する前にアニメーションを作成するカットされるフレームに作業してしまう絵コンテを作成し、カットにスティンガーを配置する。ready_to_animate
実行中のキャラクターにエンジンウォームアップを使う1フレーム目でクロスが跳ねるプリロールとカメラカット時のウォームアップを使う
最終フレームが含まれると思い込む0から50までの範囲でフレーム50が「欠落」する終了位置は範囲に含まれません。end - startで数える
ノイズ対策としてサンプル数を増やす時間だけがかかり、ノイズは変わらないライトまたはポストプロセス設定を修正する
フレームセンターで均等なサンプルを使い、時間サンプルと空間サンプルを混在させるカクつきや無駄が生じる奇数の時間サンプルのみを使う(またはフレームクローズで24を使う)
マスターを作らずにショットごとにライティングするクリエイティブ面での変更が遅れるまずマスターを承認する
デフォルトのビューポートでライティングし、リニアでレンダリングする見た目が1ストップ分変わるビューポートのOCIO表示を使う
解釈方法を指定せずにリニアEXRを送るResolveで暗く、不自然な色になるdelivery_note
ショットごとに共有グラフを編集するすべてのジョブに変更が反映されるジョブごとに公開変数を使う
ローカルキューを一晩稼働させる、またはローカルエグゼキューターを使うクラッシュするとキューが失われ、レンダリングが停止するファームマネージャーまたはショットごとに1つのプロセスを使う。shots_to_render。start_render
-notexturestreamingを指定せずにヘッドレスレンダリングする最初のフレームがぼやけるmrq_command_line

引き継ぎ

  • 受け取り元 scenario-unreal-lighting-rendering:ライティング済みレベル(空、フォグ、キーライト、アンバウンド PPV、露出ポリシー、サブレベルまたはデータレイヤーとしてのマスターライティング)、発生源でノイズを修正済みの状態、承認用のライティング済みマスター。scenario-unreal-animation:長さとレートが設定された Animation Sequences、複数メッシュの Blueprint で Set Leader Pose Component を使用した 200 ジョイント未満のキャラクター、クロスまたは物理のフラグ。scenario-unreal-vfx:ユーザーパラメーターとウォームアップ要件を設定した Niagara システム。scenario-unreal-world-building:マップとそのセットピース。
  • 引き渡し先 エディターとカラーリスト:ショットごとの EXR ({sequence_name}/{sequence_name}.####.exr、リニア、ハーフ、メタデータ)、<prod>.edl、納品メモ、レビュー用 MP4、コンタクトシート、JSON レポート、マスター。scenario-unreal-lighting-rendering:連続性またはノイズに問題があるショットと、そのフレーム。ファーム用コマンドは scenario-unreal-pipeline-automation へ、処理の遅いショットは scenario-unreal-performance へ。

UE 5.8 の注意事項

  • MRG は Production Ready です。新機能はグラフのみで、キューは Basic 設定で開きます。新機能:Light Modifier、レイヤーのウォームアップ、DWAA/DWAB EXR、Accumulation DOF(実験的プラグイン)(5.8 notes;VP [00:33:35])。
  • MRG では、Game Overrides は接続中のみ機能します。トーンカーブはレンダラーノードに、OCIO は出力ノードに設定します。Execute Script ノードで Python を使うには、Editor Only モードが必要です(移行ドキュメント;5.8 notes)。
  • Spawnables はカスタムバインディングです。LevelSequenceEditorSubsystem.add_spawnable_from_class で作成してください。add_master_track はありません。時間関数には MovieSceneTimeUnit を指定します(seq-py doc;バージョン間の変更点)。
  • 再生では選択範囲が反映されます。Sensor Aspect Ratio はアニメーション化できません。Take Recorder と VCam は spawnables に対応しています。実験には Sandboxes を使用してください。
  • ACES 2.0 対応の OpenColorIO 2.5.1:ビュー名が「ACES 1.0 SDR Video」と異なる場合があります[要確認]。
  • Mac:MRG の H.264 ノードは Windows 専用です(ffmpeg でエンコード)。Mac での ProRes には競合があります[要確認]。パストレーシングには macOS 26.4 以降が必要です。

参考資料

  • references/procedures.md:P0 から P11、コード全文、プランのフィールド、テンプレートグラフの仕様(P8)。Sequencer またはレンダーのコードを書く前に読み込んでください。
  • references/expert-notes.md:専門家ごとの判断、タイムスタンプ、判断条件。
  • references/critique.md:ルーブリックと、コードチェックとの対応。
  • references/gui-paths.md:同じ手順に関するメニューと設定。
  • references/sources.md:ソース、認証情報、URL、タイムスタンプ、改訂履歴。
  • scripts/ue_cine.py(ツールキット。docstring にすべての呼び出しを記載)および scripts/cine_render_callbacks.py(Execute Script クラス)。

コメント