Communitygithub.com

Daham0/blender-previs-one-take

ユーザーが参考画像または一言の説明を提供すると、3D白模型(ホワイトモデル)のカメラワークプレビス動画を生成し、対話的な修正を経て最終的に「白模型動画(モーションリファレンス)+詳細なビデオプロンプト」を提供するスキルです。Seedance 2.5などの動画モデルと組み合わせて使用します。

blender-previs-one-take とは?

このスキルは「一鏡到底(ワンカット)」の白模型プレビス(プリビジュアライゼーション)ワークフローを実現します。ユーザーが参考画像やテキストによるシーン説明を入力すると、スキルはまず3D白模型を用いたカメラワークのプレビス動画を生成します。その後、ユーザーと平易な言葉で修正を繰り返し、確定したカメラモーションを元に詳細なビデオプロンプトを作成します。最終成果物は「白模型動画(モーションリファレンス)+プロンプト」であり、これらをSeedance 2.5などの動画生成モデルに投入して最終的な映像を得ます。このワークフローは、一鏡到底、疑似一鏡到底、サーキュラームーブ、プッシュイン、上昇フォロー、無重力浮遊、FPV穿梭など、スムーズで折り返しや貫通・被写体のはみ出しがない長回しカメラワークに最適です。スキルは環境検出(Blenderが利用可能なら高精度白模型、不可ならThree.jsベースのWeb白模型にフォールバック)、4つの自動検証(単調性、被写体のはみ出し、貫通、天井への衝突)、平易な言葉による修正指示の翻訳を内蔵しており、ユーザーはほとんど技術的知識を必要としません。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Daham0/blender-previs-one-take/tree/HEAD

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

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

ドキュメント

一鏡到底白模型プレビス Skill

一言で言うと:ユーザーが画像や言葉を提供すると、このスキルが白模型動画を出力します。白模型が確定した後にプロンプトを書き、白模型動画をモーションリファレンスとして動画モデルに投入します。 長回しカメラワークを運任せのプロンプトに頼らず、まずカメラの動きを計算し、ユーザーが自分の目で確認してから決定します。

0. 実行方法(対外的には常にこの3ステップのみ説明)

  1. ユーザーは参考画像を1枚、または説明文を1文提供します(「10秒、背後から斜め前に回り込み、机の上のものを浮かせる」など)。
  2. スキルは3D白模型のカメラワークプレビス動画を出力し、双方で修正を繰り返します。ユーザーが「この感じだ」と言うまで続けます。
  3. 確定後、2つのものを提供します:白模型プレビス動画 + 詳細なビデオプロンプト。これらを一緒にSeedance 2.5に投入して最終映像を生成します。

内部の計算(シーン、座標、検証など)はスキルの責務であり、技術的な詳細をユーザーに要求しないでください。完全なエントリールール、必須質問、平易な言葉への変換表は references/00-flow-intake-iteration.md を参照してください。これがこのスキルのフロー全体の要綱です。トリガーされるたびに最初に読んでください。

1. 6フェーズのメインフロー(順序は変更不可)

フェーズユーザーの行動あなたが提供するもの合格条件
① 要件受け付け参考画像 / 一言説明を提供「私の理解したシーン」を3文で復唱(被写体、カメラワーク方向、浮遊/無重力の有無を含む)ユーザーが「はい」と言うか、1文修正する。アスペクト比と尺を確認
② 環境検出二択(インストールする / しない)check_blender.py の検出結果 + 一言でのルート説明ルートが明確で、AまたはBに進む
③ 初版白模型動画動画を視聴再生可能な mp4/webm + 3~4枚のキーフレーム + 「おかしいところがあれば言ってください」実際に動画が出力され提供されること。座標表だけの提供は契約違反
④ 対話的イテレーション平易な言葉で意見を述べるv2/v3… の新版動画 + 1行の変更内容説明毎ラウンド1箇所のみ変更。ユーザーが明示的に承認
⑤ 確定 + プロンプト作成感覚が合っていることを確認4つの検証が RESULT: PASS + 6カラムのプロンプト検証がPASSしていない場合、プロンプト作成禁止
⑥ 最終成果物提供素材を動画生成に使用白模型動画 + プロンプト + アップロード時の説明(動画1=モーションリファレンス、画像1=ビジュアルリファレンス)プロンプト内の座標はすべて実測JSONからのみ取得

フェーズ③④は何度も繰り返し可能です。これがこのスキルの主要な価値です:カメラワークの問題を3D空間で修正し、動画モデルでのガチャに頼らないこと。

2. 6つの鉄則

  1. 順序の鉄則:シーン構築 → 白模型動画 → ユーザー確認 → プロンプト作成。 動画をユーザーが見ていない状態でプロンプトを書くことは、無駄な作業です。
  2. プロンプトのビジュアルはユーザーの参考画像のみを基準とする。 白模型はビジュアルのリファレンスではありません。モーション、タイミング、座標のみを固定するために使用します。画質、形状、照明、色はすべて参考画像に従います。
  3. カメラワークは一方向に連続。 回転角は単調増加または単調減少でなければならず、左右への折り返しは禁止です。折り返しは失敗とみなし、カーブを再調整します。
  4. 被写体は決して画面からはみ出さない。 フレームごとの投影検証で、被写体のNDCが安全枠内にあることを確認します。被写体が上昇する場合、カメラも同期して上方向にパンします。
  5. 貫通(クリッピング)ゼロ。 任意の2つの移動オブジェクトの任意のフレームにおける距離がしきい値未満の場合、失敗です。「先に移動してから上昇」「軽いものを先に飛ばし、重いものを後から飛ばす」という順序で解決し、密度で無理やり回避しません。
  6. ユーザーは人間の言葉のみを使用。 ユーザーが「もう少し高く」「椅子にぶつかった」と言った場合、それをパラメータに変換し、その項目のみを変更します。ユーザーに極角、NDC、AABBなどの用語を説明してはいけません。

3. 環境検出とルート選択(Tip 1:検出とモデリング)

check_blender.py
  ├─ インストール済み → ブランチA(Blender、最高精度、フレームごとの実測データをエクスポート可能)
  ├─ 未インストール
  │    ├─ ユーザーがインストールに同意 → ポータブル版を案内(05-blender-setup.md)→ ブランチA
  │    ├─ ユーザーが別バージョン/パスを既に所有 → パスを入力 → ブランチA
  │    └─ ユーザーがインストールを拒否(または権限がない、時間がない)→ ブランチB(Three.js ウェブ白模型)
  └─ ブランチBも同じ6フェーズを実行。「モーションリファレンス」のみを取得。検証とプロンプト作成の口径は完全に同一。

インストール案内の話し方——一度に1つの決定ポイントのみを提示し、長文は書かない:

現在Blenderがインストールされていません。2つの方法があります: 1)ポータブル版をインストール(約300MB、システムドライブ以外にインストール、レジストリやCドライブを汚さず、丸ごと削除可能)——最高精度で、フレームごとの実測座標をエクスポート可能。 2)インストールしない。Three.jsを使ってブラウザ上で白模型のカメラワーク動画を生成——数分でレンズの動きを確認可能。座標精度はやや低い。 どちらを選びますか?

ユーザーが1を選択 → references/05-blender-setup.md に従う。2を選択 → references/06-threejs-fallback.md に従う。

4. フェーズ詳細

① 要件受け付け

references/00-flow-intake-iteration.md §1–§3 を読む:入力が画像か、説明文か、両方かを判断する。必須質問は3つだけ(尺とアスペクト比、被写体の向き、カメラワークの意図)。推測できる場合は推測し、それ以外は knowledge/kb-levitation-office.md のテンプレート値をデフォルトとして使用する。ユーザーが「任せる」と言った場合、デフォルト値で初版を出力し、動画を見せて問題点を指摘させる。

③ 初版白模型動画(Tip 3:まず白模型プレビスを出力)

まず静的な白模型シーンを構築し、ワールド座標を設定する(1単位=1メートル、原点は地面上)→ パラメトリックなカメラ軌道 → 480P低サンプルレンダリング → 動画出力 + キーフレーム。このフェーズではプロンプトを書きません。検収条件:再生可能、黒フレームがない、被写体が枠内、部屋の壁や床が静止している。

④ 対話的イテレーション

00 §4 の変換表に従い、ユーザーの言葉をパラメータに変換する。1回に1項目のみ変更し、新バージョンを作成し、1行の変更内容説明を書く(v2:半径 3.45→2.95、被写体が最終フレームでより大きく表示される)。バージョン命名規則は 00 §5 に従う。

⑤ 確定検証とプロンプト作成(Tip 2 自動チェック + Tip 4 白模型を見ながらプロンプト作成)

4つの検証(極角の単調性 / 被写体のはみ出し / グループ間の貫通 / 天井への衝突)が RESULT: PASS である必要がある。その後、フレームごとの実測JSONをエクスポートし、6カラムでプロンプトを作成する。プロンプト内のすべての座標はこのJSONからのみ取得し、手動で推測して入力してはいけません。 作成仕様は references/04-prompt-format.md を参照。

⑥ 最終成果物提供(Seedance 2.5との連携)

00 §6 の提供仕様に従う:白模型動画はモーション/カメラ位置/タイミングのリファレンスとして、参考画像はビジュアルの唯一のリファレンスとして注釈。プロンプトの最初の文で「参照動画のカメラモーションと浮遊順序を厳密に再現する」ことを強調。尺は白模型動画と合わせ、カメラワークは2~3秒ごとに区切る。

5. ブランチA:Blender実行マニュアル

  • シーンと座標仕様:references/01-scene-spec.md
  • カメラワークデザイン仕様:references/02-camera-motion.md
  • 階層別浮遊と貫通防止タイミング:references/03-levitation-timing.md
  • インストールと接続:references/05-blender-setup.md
  • スクリプト:
    • scripts/build_scene_template.py — 白模型シーンの骨格(部屋、机、デュアルモニター、椅子、人物ブロック)
    • scripts/render_previs.py — 低サンプル480Pプレビスレンダリング(EEVEE、マテリアルなし)
    • scripts/export_cam_data.py — フレームごとのcam / 注視点 / 仰角 / オブジェクトzをJSONにエクスポート
    • scripts/validate_trajectory.py — 4つの検証(単調性 / はみ出し / 貫通 / 天井衝突)

コマンドラインシーケンス(ローカルで動作確認済み、$BLENDER はblender.exeの絶対パス、パスはプロジェクトに合わせて適宜変更):

# 1 検出
python scripts/check_blender.py --json

# 2 シーン構築 + サーキュラー軌道と階層別浮遊アニメーション(--orbit 1)の書き込み、座標リストをエクスポート
"$BLENDER" -b --python scripts/build_scene_template.py -- \
  --orbit 1 --center 0.0 0.15 --dur 10 --fps 24 \
  --a0 186 --a1 300 --r0 3.45 --r1 2.45 --z0 0.78 --z1 1.20 --l0 1.05 --l1 1.45 \
  --out "Z:/project/scene.blend" --csv "Z:/project/coords.csv"

# 3 4つの検証(確定前に必ず実行)、RESULT: PASS であること
"$BLENDER" -b "Z:/project/scene.blend" --python scripts/validate_trajectory.py -- \
  --center 0.0 0.15 --ceiling 2.75 \
  --keys Person_Head,Person_Torso,Desk_Top,Monitor_H_Body \
  --moving Minion_,Monitor,PC_Case,Keyboard,Mouse,Person_,Desk_,Chair_

# 4 フレームごとの実測データをエクスポート(プロンプト作成にはこのデータのみ使用)
"$BLENDER" -b "Z:/project/scene.blend" --python scripts/export_cam_data.py -- \
  --out "Z:/project/cam.json" --center 0.0 0.15 --keys Person_Head,Desk_Top,Chair_Seat

# 5 プレビスレンダリング:まず16フレームのサンプルでパイプライン確認、その後全編をレンダリング
"$BLENDER" -b "Z:/project/scene.blend" --python scripts/render_previs.py -- \
  --out "Z:/project/previs.mp4" --res 960x540 --samples 4 --start 1 --end 240

イテレーションによる修正は、手順2(パラメータ変更)→ 手順5(動画出力)を再実行するだけで済む。確定後、手順3、4を追加で実行する。 --keys には被写体のキーポイント(頭、胴体、天板、メインモニター)のみを指定。被写体より1m以上低い付属物(椅子の座面など)を含めると必然的にはみ出し検出されるが、これはカメラワークの物理的結果として許容される。 --moving には移動するオブジェクトのプレフィックスのみを指定。指定しない場合、貫通検出は行われない。オブジェクトは名前の最初のセグメントでグループ化され、同じグループ内の接触は貫通とみなされない。

6. ブランチB:Three.js ウェブ白模型

  • 方式と制限:references/06-threejs-fallback.md
  • 直接実行可能:scripts/threejs_previs.html(単一ファイル、CDNからthreeを読み込み、軌道再生、透視図/上面図の切り替え、JSONエクスポート、webm録画を含む)
  • 制限:人物はブロックで近似、マテリアルはすべて白。モーションの方向、構図関係、タイミングのみを検証可能。照明と質感は検証不可。
  • 出力:webm + キーフレームスクリーンショット。座標はページ内の同じパラメータセットからエクスポート。

7. プロンプト提供仕様(Tip 4)

固定の6カラムで、すべて必須:【Generation Unit】 【参考】 【連続性】 【ナレーションと音声】 【タイムライン・座標付き】 【ネガティブプロンプト】。

3つの厳格な要件:

  1. 白模型を見ながら書き、推測で書かない:カメラワークの各文は白模型のタイムコードを参照できること。例:「0–2.5s 被写体の背後左後方から開始、カメラ高さ0.78m、半径3.45m、極角186°、仰角3.7°」。
  2. 参照の役割を明確に区別する:白模型動画はモーションのみを固定、参考画像はビジュアルを固定。両方について具体的に記述する。
  3. 貫通防止は因果関係のある順序文で記述する。「貫通に注意」ではなく。

作成テクニック、フレーズ、悪い例、一般的な失敗原因は references/04-prompt-format.md を参照。プロジェクト実測パラメータは knowledge/kb-levitation-office.md(テンプレート値として直接再利用可能)。

8. 一般的なトラブルと対処法

現象根本原因対処法
レンズが左右にガクガク、行ったり来たり極角曲線が非単調 / 補間の跳ね返り単調パラメータ化 + 1次差分符号チェック + LINEAR補間
被写体が途中で画面外に被写体が上昇したがカメラが追従していないカメラzと注視点zを追従係数0.8–0.95で同期キーフレーム
机、椅子と人が貫通人と椅子が同時に浮遊開始人を先に浮かせ、椅子は0.4–0.7秒遅らせる。かつ水平方向に移動してから上昇
デバイスと天板が衝突デバイスと机が同時に浮遊開始デバイスを約1.3m先に浮かせてホバー、机は2–3秒遅らせる
部屋も一緒に浮く注視点または親子関係が間違っている被写体グループのみz変位。壁、床、窓は静止
最終映像で人物が振り返る、正面が崩れる向きが固定されていない【参考】で背中/斜め後ろ向きに固定。ネガティブプロンプトに振り返り、顔のアップを追加
最終映像が3Dグレーモデルになる白模型がビジュアルリファレンスとして扱われた【参考】で「白模型はモーションのみのリファレンス」と明記。画風は写実撮影で固定
モデルが参照動画を完全に無視する最初の文で再現を強調していない最初の文に「参照動画のカメラモーションと浮遊順序を厳密に再現」と記述。カメラワークを2–3秒ごとに区切る
プロンプトの座標が画面と合わない推測座標を使用フェーズ⑤に戻り、実測JSONから値を取得。手動入力を禁止

9. 高品質成果物チェックリスト

  • ユーザーが参考画像または説明を提供し、「私の理解したシーン」を確認済み
  • 初版白模型動画が実際に出力され、提供された(座標のみではない)
  • イテレーションバージョンに番号と変更内容説明があり、最終版がユーザーに明示的に承認された
  • 4つの検証が RESULT: PASS
  • 参考画像がプロンプト内で @画像1 として指定され、白模型動画がモーションリファレンスとして指定されている
  • タイムラインが秒単位で区切られ、各区間に「開始カメラ位置 → 終了カメラ位置 + 注視点 + 仰角 + 半径」が記述されている
  • 階層別タイミングに、誰が先に浮遊するか、誰が後か、浮上高さ、最終階層高さが記述されている
  • 貫通防止ロジックが因果関係のある文で記述されている
  • ネガティブプロンプトが以下をカバー:人物の向きと顔、デバイスの増減と向き、貫通と落下、部屋の漂い、カメラの折り返し、スタイルの急変、字幕、透かし
  • 提供時に「プレビスはモーションのみの検証であり、ビジュアルは参考画像を基準」と説明し、アップロード時の説明を添付

10. スクリプトパラメータクイックリファレンス

スクリプト主要パラメータ説明
check_blender.py--json読み取り専用検出;出力 found/path/source/version
build_scene_template.py--orbit 1 --center cx cy --dur --fps --a0 --a1 --r0 --r1 --z0 --z1 --l0 --l1 --out --csv--orbit なしは静的シーンのみ出力。ありはフレームごとのカメラと浮遊キーフレーム(LINEAR)を書き込み
validate_trajectory.py--center --ceiling --keys --moving --margin --tol終了コード 0=PASS 1=FAIL;4項目チェック
export_cam_data.py--out --center --keys出力 [{f,cam,rad,ang,pitch,オブジェクト:[x,y,z]}]
render_previs.py--out --res --samples --fps --start --end --engine最初に16フレームサンプル、その後全編
install_blender.ps1-TargetDir -Version -Mirror auto|official|aliyun|tuna -DryRunミラー自動フォールバック;ポータブルディレクトリ作成;BLENDER_PATHを書き込み

パラメータはすべて -- の後に記述し、Pythonスクリプトに渡します。

11. 対外向け説明(「このスキルで何ができる?」と聞かれた場合)

参考画像か一言の説明を与えると、まずあなたのカメラワークを3D白模型で動かして見せてくれます。気に入らなければ修正し、満足したらプロンプトを書き、白模型動画とプロンプトを一緒にSeedance 2.5に投入して最終映像を生成します。検出モデリング、4つの自動検証、白模型プレビス、カメラワークを見ながらのプロンプト作成、すべてが含まれています。サーキュラームーブ、上昇、無重力浮遊、どんなものでも、映像はスムーズで突然の貫通や変形は起こりません。この一鏡到底のSkillがあれば、長回しカメラワークは驚くほど安定します——AI動画制作に、もはや運任せのプロンプトを学ぶ膨大な時間は必要ありませんか?

12. 本スキルの自己チェック状況

項目結果
Blenderの検出合格(4.5.15 LTS ポータブル版、Dドライブ)
シーン + 軌道 + 浮遊アニメーションの構築合格(240フレーム @24fps、座標CSV出力)
4つの検証PASS:はみ出し0(960 NDC検出)、新規貫通0、天井衝突0、3つの単調性すべてTrue
フレームごとのデータエクスポート合格(240フレームJSON)
プレビスレンダリング合格(EEVEE_NEXT、16フレームサンプルmp4正常)
インストールスクリプト合格(-DryRun 実測:公式403 → 阿里雲 4.5.16、約380MB)

テンプレートデフォルトパラメータは knowledge/kb-levitation-office.md を参照。新しいプロジェクトの出発点として直接再利用可能。

関連スキル