mcpField
S
scenario-blender-previs-storyboard

scenario-blender-previs-storyboard

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

scenario-blender-previs-storyboard について

監督や編集者向けの Blender プレビズ・絵コンテスキルです。情報のビートをショット、カメラ計画、コンタクトシート、タイミング付きアニマティクスにまとめ、構図や連続性を監査します。

主な機能

  1. 01ビートからショットを計画
  2. 02マネキンを使った3Dプレビズ
  3. 03カメラとレンズの計画
  4. 04ショットと構図の監査
  5. 05コンタクトシートとアニマティクス

活用シーン

  1. 01制作前のストーリービート検証
  2. 02カメラとレンズの選択比較
  3. 03静止画とショットからアニマティクスを作成

インストール

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

$npx skills add https://github.com/scenario-labs/skills --skill scenario-blender-previs-storyboard

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

同梱ファイル

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

references/
critique.md
expert-notes.md
procedures.md
sources.md
scripts/
bx_previs.py

詳細

プレビズ、レイアウト、ストーリーボード

エキスパートによるプレビズは、アイデアをできるだけ低コストで評価できる程度に伝えます。1ビートにつき1つの事実を示し、観客に感じてほしいことに合わせて各ショットを設計し、静止画を編集してタイミングを決めます。カメラは観客の身体です。カメラをどこに、どの高さに置き、どのレンズを使うかで感情が決まるため、中立ではない選択にはすべて明確な理由が必要です。ここで名前を挙げた関連スキルが利用可能なスキルにない場合は、ユーザーにインストールを依頼してください (npx skills add scenario-labs/skills --skill <name>)。ユーザーが応答しない場合は、ツールのスキーマに基づいて進め、不足しているスキルを明記してください。

必須の前提知識: scenario-blender-expert(実行チャネル、レビューループ、5.2 API の変更点)。

ツールキット:scripts/bx_previs.py(5.2.1 でテスト済み): import sys; sys.path += ["<this skill>/scripts", "<scenario-blender-expert>/scripts"]; import bx_previs as P

どのスキルを使うか。 このスキルは、監督と編集者が評価するストーリープレビズとアニマティクスを扱います。対象外:レンダーから動画生成モデル(Seedance)への誘導に使うプレイブラスト。これは別のルール(彩度の高い色での識別、カットでレンズを変えない、動きを滑らかにする、引き継ぎシート)に従います。これらのルールは、以下のワークフローおよび P.audit の適用対象でもチェック対象でもありません。そのため、監督向けのアニマティクスをそのまま動画生成モデルに渡さないでください。scenario-blender-blockout を使って作り直してください。通常、キャラクターは動画生成モデルが自動でアニメーション化する色付きカプセルに置き換えます。共通事項:メートル単位、Z-up、足元にルート、マーカーに紐付けたショットごとのカメラ、to_track_quat('-Z','Y') によるルックアット。ストローク:scenario-blender-grease-pencil。レイアウト後のアニメーション:scenario-blender-animation。実際のリグ:scenario-blender-rigging。

基本姿勢(エキスパートとしての違い)

  • Hjalti Hjalmarsson:ショットに入る前に、情報のビート一覧を書く。 観客が一度に受け取れるのは1つのことなので、1行につき1つの事実を書きます。連続するビートをまとめてショットにします。新しい演出では、同じ事実を別の順序で見せます。ビートが欠けていれば、アイデアを公平に試せません。
  • Hjalti:まずは演劇的に、その後に映画的に。ショットには時間がかかる。 固定カメラのバージョンで演技を評価します。同じビートをショットで表現すると、各カットを読み取る必要があるため、所要時間は約2倍(最大3倍)になります(13/22/25秒に対して47/40秒)。単純化しすぎたバージョンは必ず短くなりすぎ、段取りを隠してしまいます(キャラクターは10フレームで部屋を横切れません)。
  • Charge の手順(Hjalti):すべてのフレームをストーリーボードの1コマとして扱う。 1ショットにつき10フレーム、キーは CONSTANT、次のフレームにA/B案、10フレーム目に採用案を置き、バージョンを含む名前で静止画を書き出し、タイミングは別の編集で決めます。
  • Hjalti:迷ったら目の高さにし、A/B比較で早めにレンズを決める。 2人のキャラクターを撮る場合は、それぞれの目の高さに合わせます。低い位置や高い位置は、何かを表明する選択です。1つのレンズに合わせて作ったポーズは、レンズを変えると成立しません。
  • Dillon Gu:構図と焦点距離は別々に決め、カットがムードを壊すこともある。 観客はカメラの位置に立っています。その空間から離れると危険が薄れます。無生物のインサートが2つ続くと緊張感が下がります。
  • カメラに合わせてごまかしてもよいが、ごまかす前にキーを打つ(Hjalti、Charge、Renato Roldan)。ショットごとにサイズを変えたり、浮かせたり、小道具を入れ替えたりできます。ただし、共有タイムラインでキーを打たずにごまかすと、それ以前のショットが壊れます。
  • プレビズは、アイデアを伝えられる範囲で最も低コストなバージョンにする(Hjalti、Charge)。カメラの動き自体がストーリーテリングとなるショットだけをアニメーション化します。それ以外は静止画1枚にし、静止画のプッシュインは編集で擬似的に加えます。Workbench のグレー表示を使い、ムード照明は使わず、リグより先にマネキンを使います。P.audit は、静止ショット中のカメラ移動、ブロック開始位置の間にあるキー、Workbench 以外のエンジンを拒否します。
  • カットの後、目は1つのものを見つけられなければならない(Hjalti)。競合する被写体の前にキャラクターを配置し直します。感情を維持できる角度を選びます(Rex がシルエットになってしまうサイドカットを、彼は却下しました)。

最初に決めること

入力変更内容指定がない場合のデフォルト
フォーマットすべてのコンポジション(Charge:最初に固定)1920x1080、24 fps、静止画は 50 %
処理ショット数、実行時間シアターパス、その後シネマティック
方法エージェントはタブレットを持っていないマネキンを使った 3D プレビズ。絵コンテは提供されたアートがある場合のみ作成します。Rigify プロキシは要望があった場合のみ使用します(P.rigify_proxy。--factory-startup では Rigify は無効です。最初に P.ensure_rigify() を実行してください)
ムードまたは監督のスタイルショットごとのレンズ、高さ、動きニュートラルな文法とし、逸脱がある場合はショットごとに明記します
実行時間の予算尺シネマティックなカットの場合、1 ビートあたり約 1.6~1.9 秒(Hjalti のスライドから算出:25 ビート、8 ショット、40~47 秒)
移動経路画面上の方向行きは左から右、戻りは右から左(Charge)
納品物出力ショットリスト、コンタクトシート、平面図、クリーン版と焼き込み版のアニマティック MP4、バージョン管理された .blend

ワークフロー

  1. スクリプトをビートに分けます。 アセット一覧を作成し、番号付きのビートを並べます。各ビートには事実を1つだけ含め、追加したビートにはすべて印を付けます。 ゲート:P.shot_list(BEATS, SHOTS) は、ビートの欠落、重複、順序違いがあるとエラーになります。
  2. セットとプロキシを設定します。 P.setup_scene(フォーマット、Workbench、グレー、Standardビュー変換)を使います。 実寸のセット小道具には P.prop、キャラクターには P.mannequin(ルートは足元に配置し、eye_height を設定。4つのピボットコントロールはレイアウトのサブセットとして使用)を使います。グレーを基調にし、主役にはポップカラーを1色使います(Renato:赤)。 ゲート:ドア(2.1 m)とカウンター(1.0 m)の隣に置いて、スケールが分かるようにします。
  3. シアターパスを作成します。 アクションの両端を捉えるカメラを1台固定します(cam を共有し、fit="all"、35 mm、平均的な目の高さ)。ビートグループごとにブロックを1つ作ります。 ゲート:P.audit の行で、すべてのブロックにおいて、すべての被写体の head_in と feet_in が true になっていること。シアター編集のタイミングを調整します。
  4. シネマティックプランを作成します。 オープニング案を複数挙げ、ビートを並べ替え、intent、size、lens、height、dur を設定してショットにグループ化します。カメラを評価する前に、アクションラインと移動経路を設定した P.floor_plan を作成します。 ゲート:ラインの片側を保ちます。移動経路は方向のルールに従います。
  5. ブロッキングを行います。 各ブロックで、sc.frame_set(f)(前のポーズを保持)を実行し、変化する部分だけを設定してから、P.key_block(all_movables, f) を実行します。ごまかしの調整も同じキーを通して行い、その後 P.make_stepped を実行します。 ゲート:P.stepped_report == {} であること。隣接するショット間でごまかしの調整を確認します。
  6. カメラを設定します。 P.build_shots は、サイズ、レンズ、目の高さ(または明示的な loc/aim)から各カメラを配置し、不透明なパスパルトゥーを設定します(Charge:構図だけが見える状態にします。他のカメラでは P.passepartout(sc) を使います)。また、最初のフレームにマーカーを割り当てます。さらにポーズを付ける前に、主要なショットで P.ab_lens を使います。 ゲート:P.audit(...)["problems"] == [] であること。
  7. ルックを決めます。 P.contact_sheet を実行して開きます。薄暗いセットにキャラクターが溶け込む場合は、P.fog_for_shot(sc, t, chars) を使います(Hjalti:見やすさのための奥行きフォグであり、照明ではありません。被写体の背後に配置し、そのショットに合わせてキー設定します)。主役と背景の値は P.values_at で確認します。 ゲート:Quality gates のビジュアル一覧を確認します(S6 では、オクルージョンと端が切れたワイドショットを見つけられたのは画像だけでした)。
  8. 編集します。 P.render_stills を実行し、続けて P.animatic を使います(画像ストリップを dur 秒保持し、静止画には push、live ショットにはシーンストリップ、サウンド、burn_in を設定します)。複数のアングルから1つの連続したアクションを表現する場合(Pablo、Story Tools)、live ショットと cover=True のショットを1つのシーンストリップにまとめ、カメラごとにソフト分割します。P.retime_cut でリタイムします(マーカーも追従します)。キーを移動して調整してはいけません。 ゲート:実行時間が予算内であること。MP4から切り出したフレームがカットリストと一致すること。
  9. 新しいシーンペア(02_blend/02_edit)と新しいバージョン番号を使って反復します。上書きは一切しません。

数値

値対象出典
ショットブロックあたり10フレーム。正当な理由がある場合のみ20フレーム。10、20、30から開始プレビズのタイムラインCharge
ショット名は10刻み(sh010、sh020)マーカーHjalti on screen
35 mmの劇場用フレーム。主役を際立たせるキーショットでは約60 mm36 mmセンサーHjalti
F値5.6、カメラリグのクリップ範囲は0.01~200 mHjaltiのリグHjalti
劇場版は13/22/25秒、シネマティック版は47/40秒同じ脚本Hjalti slide 00:46:01
怒りの爆発に3つのポーズ(予備動作、オーバーシュート、収束)1つのビートHjalti
ボーディングは6 fpsで、編集時にリタイミングボードシーンBouncyBrain
目の許容誤差は0.15 m。カメラから70度を超えると描画が崩れる監査のしきい値[added]
可視高さ = 被写体の高さ x 4 / 2 / 1.15 / 0.8 / 0.6 / 0.4 / 0.25 / 0.12ews、ワイド、フル、mws、ミディアム、mcu、cu、ecu[added]
距離 = 可視高さ x レンズ / センサー高さ(16:9で20.25 mm)同じサイズでレンズを交換:d2 = d1 x f2 / f1[added]
手持ち撮影のNOISEは0.010~0.018 rad、スケールは18~26フレームカメラの回転動画ガイド;実測ピーク間値 = 強度の0.66倍

カメラの言語

選択表現するもの出典
アイレベル、標準レンズ、中央配置、固定ニュートラル。すべての A/B の出発点Dillon, Hjalti
ローアングル、または隅に寄せる隠れた観察者Dillon
遠くから広角で撮り、その後すばやくズームイン見られている感覚。誰かが標的に狙いを定めるDillon
至近距離からの超広角「ただごとではない」、歪みDillon
望遠レンズ情報的、平坦、孤立させる、2 人の人物の瞬間を強調するDillon, Hjalti, Spitfire
真上からのショット。ドリーズーム(リニアキー)上からの圧力。コントロールの喪失Dillon
背後から中心を外して撮る孤立Dillon
横方向の移動画面上で最もニュートラルな動きDillon
チルトまたは移動し、細部で終わるその細部が被写体になるHjalti
顔を映さない構図、長めのショット、音で示される画面端の重要な物体日常Dillon

身体感のある動き(Dillon):見張る人や眠気でぼんやりした人物がカメラを持っているときの手持ちの揺れ、カメラオペレーターによるすばやいズーム、人物の肩とともに下がるカメラ、怠惰さを表す動きの少なさ、切迫感を表す動きの多さ。商品ショットは最も静止したショットです。Hjalti は引き継ぎの動作に合わせてフォーカスを移動します(dof.focus_object)。**カット:**アクションラインの片側で行います。オーバー・ザ・ショルダーでは、カメラがすでにいる側の肩を使います。ジャンプカットは、日常の時間を省略したことを表す場合があります(Dillon)。POV はラインのすぐ脇、カメラ側に置きます[追加、S6]。

品質ゲート

測定可能: P.audit(sc, table, chars, line=(a, b), travel={name: "right"}, stepped=movables):各ショットのフレームでマーカーを切り替え、その 1 フレーム前には切り替えないこと、メインの被写体の目線がフレーム内にあり遮られていないこと(遮るものをレイキャストで特定し、フォグも含める)、意図したサイズとの測定値の比較、アイレベル以外の各カメラについて意図を設定した高さのクラス、アクションラインの片側にいること(POV と cross は対象外)、移動ごとの画面上の方向、ブロックの長さ、インサートが 2 つ連続していること、ライブブロック外のキーが一定でないこと、不透明なパスパルトゥー、コストゲート。warnings にはライトを列挙します。加えて、編集後のランタイム、ffprobe のストリームと長さ、ライブショットについてはプリビズフレームと照らし合わせた編集フレームのレンダリングも確認します。

ビジュアル:(各画像を開いて確認)コンタクトシート(すべてのビートが見えること、各ショットの焦点が 1 つであること、主役が読み取れること、ごまかしや遮蔽物が見えないこと、このカメラからポーズが読み取れること)、フロアプラン(カメラ側、移動)、A/B シート(孤立感と文脈)、MP4 から抽出したフレーム(順序、焼き込み、プッシュ、ライブショットの内容)。コミカルな間と音は人間の判断に委ねます(Hjalti)。

よくある間違い

間違い問題の見え方修正
完成した演技にショットを散りばめる汎用的なカバレッジ、適切でないフレーミング各ショットをそのビートに基づいて設計します(Hjalti)
極端なポーズを考慮しないワイドフレーミング最も背の高いポーズや登場シーンがフレームから切れるfit="all" を使い、極端なポーズを監査します
実際の目の位置からの POVカウンターやキャラクター自身の頭で視界が遮られるPOV を前方かつ上方にずらします(S6:前方 0.6 m、高さ 1.72 m、カウンター越し)。監査で遮蔽物が報告されます
カメラと主役の間にあるドアや小道具キーフレームで主役が隠れるドアや小道具を開くか、カメラを移動します。コンタクトシートで検出できます
反対側からのオーバー・ザ・ショルダー視線の軸を越え、主役がフレームから外れるカメラ側にとどまり、視線を監査します
キー設定のないごまかしそれ以前のショットが変化する各ブロックのすべての可動物に key_block を設定します
24 fps の編集に、6 fps のボードシーンをシーンストリップとして入れる4 倍速で再生される静止画として書き出すか、速度を変更します
すべてのショットをアニメーション化し、ムード照明と完全なリグを用意する遅くなり、編集が動きと競合し、判断が後回しになる静止画に push を加え、動き自体に意味がある場合にのみ live を使います。Workbench はグレー表示にし、マネキンを使います
カバレッジを別々のストリップや移動したキーとして扱うカットがアクションからずれるcover=True を指定して実行し、P.retime_cut を使います
ワールドに固定された霧、または手前に配置された霧主役に色がかかり、すべてのショットに霧が映るP.fog_for_shot を使います(被写体の後方、1 つのショットのみ)

Blender 5.2 の注意事項

  • --background では bpy.ops.render.opengl が失敗します。Workbench の render.render(ヘッドレス)を使うか、ライブセッションでカメラにロックしたビューポートを使ってください。
  • 「Only Insert Available」がオンでも、keyframe_insert() は新しいキーの補間設定を無視し、キーは BEZIER のままになります。P.make_stepped を呼び出してください。
  • ウィンドウシーンではないシーンに対する frame_set ではトランスフォームが古いままになり、そのシーンの write_still レンダーではウィンドウシーンのフレームが使われます。P.activate、P.render_frame を使ってください。
  • VSE:strips、left_handle/right_handle、content_start。SceneStrip.frame_start と frame_final_* は警告が出ます(6.0 で削除予定)。Strip.split(frame, split_method='SOFT') はデータから分割します。新しいシーンのデフォルトは AgX です。編集シーンのビュー変換をソースに合わせて設定してください。
  • marker.camera = cam はヘッドレスでバインドできますが、bpy.ops.marker.camera_bind にはタイムラインコンテキストが必要です。
  • --factory-startup では Rigify が無効になっています。P.ensure_rigify() を実行するまで、bpy.ops.object.armature_basic_human_metarig_add は「could not be found」エラーになります。
  • Selection Sets、Storypencil、Grease Pencil Tools は同梱されていません。ボーンコレクション layout を使ってください。Storyboarding アプリテンプレートには、同期がオンで、Edit では自動キーがオフの Edit シーンが含まれています(Storyboarding ワークスペースではピンがオフです)。
  • GP v3 のストロークは、ヘッドレスの Workbench 静止画でレンダリングされます。

参考資料

  • references/procedures.md:各ステージのテスト済みコード(モジュールあり/なし)とトラップテストを掲載しています。コードを書く前に読み込んでください。
  • references/expert-notes.md:各エキスパートの原則、意見の相違、判断条件をタイムスタンプ付きで掲載しています。処理、レンズ、カットを選ぶ際に読み込んでください。
  • references/critique.md:レビュー評価基準と S6 の調査結果を掲載しています。すべての Look ゲートで読み込んでください。
  • references/sources.md:7 本のソース動画と、それぞれの用途、最適なタイムスタンプを掲載しています。

コメント