📌 AI関連

GeminiとCodexスキルで8カットのAI動画を作る|宇宙ロケット編の再現手順

月面ステージの中央に立つ少年宇宙飛行士とロボット犬、星型の仲間たち

Geminiで10秒ほどの動画を8本作り、少年宇宙飛行士とロボット犬が月へ向かう約80秒のアニメにしました。

今回は動画を作るだけでなく、次も同じ流れで作れるように、制作手順をCodexの「gemini-multicut-video」スキルとしてまとめて使っています。スキルといっても魔法の自動化ではなく、失敗しやすい順番や確認方法を1枚の手順書に固定したものです。

この記事では、完成するまでに実際に通った工程と、次回そのまま使えるプロンプトの型、ffmpegの確認コマンド、公開前チェックリストをまとめます。AI動画を複数カットでつなぎたい人が、自分の題材へ置き換えて使える形を目指しました。

最初に、今回できたもの

当初は「8秒×8カット=64秒」のつもりでしたが、Geminiから返ってきた動画は1本約10秒でした。実際の完成尺は約80.06秒です。ここは最初から想定どおりにはなりませんでした。

項目 実際の結果
動画生成 Gemini
構成 全8カット
1カットの実尺 約10.01秒
横型完成版 約80.06秒、1280×720、約24fps、音声あり
縦型完成版 1080×1920、Hybrid方式
主な仕上げ ffmpeg、Codex用の動画制作スキル

最初の持ち帰りポイントは、絵コンテを確定する前に1本だけ生成して実尺を測ることです。生成AI側の仕様が変われば、指定した秒数と実ファイルの秒数がずれることがあります。8本作ってから気づくより、最初の1本で全体を組み直した方が楽でした。

8カットの役割を先に分けた

宇宙ロケットの発射から月面フィナーレまでを並べた8カットのコンタクトシート
左上から右下へCut 01〜08。連結後に順番と抜けを確認したコンタクトシートです。
  1. ロケット発射
  2. 大気圏突破とソーラーウイング展開
  3. クリスタル小惑星の無重力パルクール
  4. 虹色流星群をかわして月へ向かう
  5. 月面着陸と低重力ジャンプ
  6. 月面ステージでダンス
  7. 宇宙の光のショー
  8. カメラへ手を振ってフィナーレ

8カットすべてに大きな事件を詰め込むのではなく、「発射」「移動」「障害物」「到着」「祝う」のように役割を分けました。1カットの役割が一つだと、生成後に何が成功して何が失敗したのか判断しやすくなります。

使ったCodexスキルの中身

今回使ったのは、私の環境に用意した個人用のCodexスキル「gemini-multicut-video」です。中身は大きく4段階に分けています。

  1. 絵コンテと実尺の確定:テスト生成し、秒数と解像度を確認する
  2. カット生成ループ:同じキャラクターと、各カットの終了構図を指定する
  3. 検証と連結:ラストフレームを見てから8本をつなぐ
  4. 派生物の作成:縦型3方式とサムネイル候補を比較する

スキルのファイル構成も複雑ではありません。

gemini-multicut-video/
├─ SKILL.md                  # 作業順と停止条件
├─ scripts/
│  └─ vidkit.py              # 秒数確認、連結、縦型化、画像抽出
└─ references/
   ├─ ffmpeg-cookbook.md     # ffmpegの実コマンド
   └─ publishing.md          # YouTube公開時の確認事項

大事なのは、プロンプト集だけにしなかったことです。生成上限が出たら止まる、動画ができたらその場で保存する、ラストフレームを見てから次へ進む、という作業の判断もスキルに入れました。

AIに毎回ゼロから「次は何を確認する?」と考えさせるより、過去に詰まった場所を手順へ残しておく方が安定します。自分用スキルを作る場合も、成功した文章だけでなく、失敗したときの停止条件を入れるのがおすすめです。

プロンプトは「本体」と「終わり方」を分けた

複数カットの動画で一番困るのは、途中の映像がきれいでも、次のカットにつながらない状態で終わることです。そこで各プロンプトを、場面の内容と終了時の構図に分けました。

3D animation, continuing from the previous scene,
the same young astronaut, the same white-and-blue spacesuit,
and the same glowing robot dog.

[このカットで起こす動作]

At the end, show [誰が] [どこで] [何をしているか].
Keep [次のカットに必要な物] clearly visible,
and hold this composition for the final moment.

毎回固定するのは、少年の宇宙服、髪型、ロボット犬の色、ロケットの青い外装です。カットごとに変えるのは中央の動作と、At the end以降だけです。

例えば小惑星パルクールのカットなら、最後に「小惑星の先端から虹色の流星群を見つける」と書きます。次のカットは、その流星群をかわす場面から始められます。

送信前の短いチェック

  • 前のカットと同じ人物・服・相棒だと書いたか
  • 1カットに動作を詰め込みすぎていないか
  • 最後に誰がどこにいるか書いたか
  • 次のカットに必要なロケットや小道具が画面に残るか
  • 使うモデルと動画モードが意図した状態か

生成は4本で一度止まり、終盤は新しいチャットへ移した

今回も8本を一気には作れませんでした。Cut 04まで進んだところで動画生成の上限が表示され、画面に出た再開時刻まで停止しています。

ここで同じ内容を何度も送らず、生成済みの4本を先に保存しました。上限やクレジットに関する表示が出た場合は、無理に別モデルへ切り替えるより、解除時刻と完成済みファイルを記録して止める方が安全です。

Cut 07は同じチャットでエラーが続いたため、新しいチャットへ移しました。新しいチャットには前の会話がないので、the same astronautだけでは情報が足りません。そこで、少年の髪、宇宙服の色、ロボット犬の発光部分、背景の月面ステージを文章で書き直しました。

私がチャットを切り替える目安にしているのは、同じカットで失敗の種類が何度も変わるときです。単純な混雑なら待ちますが、送信できない、一般的なエラーになる、同じ画面へ戻る、という状態が続くなら、新しいチャットで外見を具体的に書く方が進みやすいことがあります。

1本できるたびにラストフレームを見た

生成した動画は、まず秒数と映像情報を確認します。

python scripts/vidkit.py probe cut01.mp4

次に終端の画像を1枚抜きます。

python scripts/vidkit.py lastframe cut01.mp4 -o cut01_last.png

見るのは、顔の細かい一致だけではありません。次のカットへ進める位置にいるか、必要な乗り物が残っているか、背景が急に変わっていないかを優先しました。

フィナーレのCut 08はフェードアウトするため、最後の画像だけを見ると暗い画面になります。その場合は少し手前を指定します。

python scripts/vidkit.py frame cut08.mp4 --at 8.2 -o cut08_finale.png

8本完成してから見直すのではなく、1本できるたびに確認する。これは地味ですが、後続カットをまとめて作り直す事故を減らせます。

8本の連結後は、再生より先に一覧画像を作った

全カットが同じ解像度・フレームレート・コーデックなら、再エンコードせずに連結できます。

python scripts/vidkit.py concat \
  cut01.mp4 cut02.mp4 cut03.mp4 cut04.mp4 \
  cut05.mp4 cut06.mp4 cut07.mp4 cut08.mp4 \
  -o full_landscape.mp4

つないだ直後は、約80秒を最初から何度も見る前に、各カットの中間フレームを1枚に並べました。

python scripts/vidkit.py sheet full_landscape.mp4 \
  --cuts 8 -o contact_sheet.png

コンタクトシートなら、順番の入れ替わり、同じカットの重複、1本だけ違う画風になっている箇所を短時間で確認できます。そのあと実際に再生し、音の切り替わりや場面のつながりを見ました。

ShortsはBlur・Hybrid・Cropを全部作って比べた

16:9の横型動画を9:16へ変えるときは、左右を切るか、上下へ背景を足す必要があります。今回は3方式を作りました。

横型動画を縦型へ変換したBlur、Hybrid、Cropの比較
左からBlur、Hybrid、Crop。中央のHybrid版をShortsに採用しました。
方式 特徴 今回の判断
Blur 横型全体を残し、上下をぼかし背景で埋める 全員は見えるが主役が少し小さい
Hybrid 左右を少し切り、中央を約1.33倍に見せる 少年、ロボット犬、仲間のバランスが良い
Crop 中央を大きく切り抜く 集合シーンで左右の仲間が消える
python scripts/vidkit.py vertical full_landscape.mp4 \
  --mode hybrid -o vertical_hybrid.mp4

Cropは迫力がありますが、横幅の中央付近しか残りません。今回は月面ダンスに複数キャラクターが並ぶため、中央を大きく見せながら左右もある程度残るHybridを選びました。

サムネイルは縦型も横型も主役を中央にした

宇宙ロケット動画から選んだ横型サムネイル候補3枚
ロケット、月面パーティー、フィナーレの3候補。縮小しても内容が伝わるかで比較しました。

横型は、少年とロボット犬を中央に置き、背後のロケットと虹色の光が見える月面パーティーを選びました。縦型も中央を基準にし、9:16で切ったときに主役の顔やロボット犬が端へ逃げないフレームを選びます。

サムネイル候補は、次の順で確認しました。

  1. 小さく表示しても人物と題材が分かるか
  2. 主役が中央にまとまっているか
  3. 背景にロケットや月面など、物語を示す要素があるか
  4. 文字を置かなくても内容が伝わるか
  5. JPGにして2MB未満になっているか
python scripts/vidkit.py thumb frame.png -o thumbnail.jpg

次回そのまま使う制作チェックリスト

生成前

  • 最初にテスト動画を1本だけ作る
  • 実際の秒数、解像度、fpsを確認する
  • 主役の外見、服、相棒、乗り物の色を文章で固定する
  • 各カットの出来事より先に、終了時の構図を決める

各カットの生成後

  • すぐにダウンロードし、cut01.mp4のように名前を付ける
  • ラストフレームを画像にする
  • 次の動作へ移れる立ち位置か確認する
  • 問題があれば、次へ進む前にプロンプトを直す
  • 上限やクレジット表示が出たら、解除時刻を記録して止める

全カット完成後

  • 連結して横型マスターを作る
  • コンタクトシートで順番と内容を確認する
  • Blur、Hybrid、Cropを作り、集合場面で比較する
  • 縦型・横型とも主役が中央に見えるサムネイルを選ぶ
  • YouTubeの動画と記事を相互リンクする

完成動画

横型は8カット全体の構図をそのまま見られます。

YouTubeで横型の完成動画を見る

スマホ向けには、中央を大きく見せるHybrid版を公開しました。

YouTube ShortsでHybrid版を見る

今回の結論

8カットのAI動画は、長いプロンプトを一度書けば終わる作業ではありませんでした。実際には、1本生成する、最後を見る、次につながるか判断する、保存する、という短いループの積み重ねです。

そのループをCodexのスキルにしておくと、次回も同じ確認順で進められます。特に効果があったのは、実尺を先に測ること、プロンプトの末尾で終わり方を指定すること、ラストフレームを1本ずつ見ること、縦型を3方式で比較することでした。

題材は宇宙でなくても、料理、旅行、動物、ファンタジーなどへそのまま置き換えられます。これから試す人は、まず「8カットの内容」より「各カットの最後に何を残すか」を8個書いてみると、つなぎやすい絵コンテになります。

あわせて読みたい


この記事は2026年8月25日に実際に生成した動画ファイルと制作ログをもとにまとめています。Geminiのモデル名、生成回数、画面、出力秒数は更新や利用状況により変わる場合があります。動画内の人物、ロボット犬、宇宙基地はAIで生成した架空の3Dアニメーションです。

※当サイトはアフィリエイト広告を利用しています。商品の価格・仕様は変更になる場合があります。