郭立 (leeguoo)

Claude Opus 5.5にコードを書かせて3Dプロモーション映像を作る:1250行のコード、手作業のアニメーションは1フレームもなし

1つの要件から、Opus 5.5はClaude Code上で演出稿、three.jsのシーン、音楽シンセサイザー、字幕を書き、自分でフレームを抽出して確認しバグを修正し、さらにオープンソースのmotion-useを使ってローカルで102秒、6120フレームの完成映像をレンダリングした。

このページの目次

まず完成版かんせいばんを見てください:102秒びょう、60fps、中国語ちゅうごくごのナレーションと字幕じまくつきです。

画面がめんの中のすべての物体ぶったい、すべてのカメラ移動いどう、すべての音符おんぷは、コードで計算けいさんされています。AEは使っていません。キーフレームアニメーションも、素材そざいライブラリも、テキストから動画どうがを生成せいせいするモデルも使っていません。これを作ったのはClaude Code上で動くClaude Opus 5.5で、レンダリングには私たちがオープンソースで公開こうかいしているmotion-useを使いました。

私が与えたもの

要件ようけんは一文だけです:three.jsを使ってmotion-useのために、1〜2分ふんの、ナレーションつきで、原理げんりと何ができるかを説明せつめいするプロモーション映像えいぞうを作ること。途中とちゅうで私がフィードバックしたのは一度だけです:最初のフレームが黒画面くろがめんで、READMEのプレーヤーがそれをカバーにすると見栄えが悪い、という点です。すると第0フレームを完全かんぜんなオープニング画面がめんに変更へんこうしました。

それがやったこと

まず確認かくにんし、それから台本だいほんを書く。 ナレーション内のmotion-useに関する一文一文について、まずリポジトリのソースコードから根拠こんきょを探しました:レンダラーがどうフレームごとに位置いちを合わせるか、フォントをどう裁断さいだんするか、検収けんしゅうで何をテストするか。出典しゅってんは演出記録に書かれています。

ナレーションがタイムラインを決める。 まず9段落だんらくのナレーションを書き、音声おんせいを生成せいせいし、各段落だんらくの実際じっさいの長さを測り、その長さに合わせてショットのウィンドウを決めました。motion-useのルールはとても厳格げんかくです:ナレーションがショットを超えるとレンダリングはそのまま失敗しっぱいし、勝手に切り詰めてはくれません。

一本の線で物語ものがたり全体を語る。 オープニングのあの要件ようけんの一文が地面に落ち、溶けて一本の発光はっこうするタイムラインになります。その後、絵コンテカードがその線に沿って立ち上がり、再生ヘッドがその上を行き来し、フレームがそこから立ち上がって並列へいれつに抽出ちゅうしゅつされ、ナレーションブロックがショットウィンドウに収まり、完成映像はその線に沿って検収けんしゅうスキャンリングを通り抜けます。前作のフェルトの小さな怪物がガイド役です。

3Dシーンは約1000行のthree.js:鏡面の床に黒い漆うるしの層を重ね、フェルト素材そざいにはsheenと半透明の毛羽シェル層を使い、Bloomで光ひかりのにじみを作っています。すべての姿勢しせいは時間の純粋じゅんすいな関数かんすうで、どの時点でもその1フレームだけを個別こべつに計算けいさんできます。

音楽と効果音こうかおんはPythonで合成ごうせいした波形はけい:96 BPMをベースに、タイピング音、シャッター音、エラー音、通過通知つうちを画面がめんイベントのタイミングに合わせて置き、メロディはナレーションの隙間すきまにだけ入れています。

それが自分で見つけた問題

ここが一番おもしろいところです。書き終えてそのまま出すのではなく、何度もフレームを抽出ちゅうしゅつし、画像がぞうを見て、修正しゅうせいしました:

  • 初版ではほとんどの段落だんらくでカメラが遠すぎ、文字が小さすぎ、絵コンテカードがBloomで白い塊かたまりになっていました。
  • フィルム右半分のフレームが消えていましたが、床の反射はんしゃにはまだ見えていました。半透明の底板そこいたのソート順がフレームを覆っていると判断はんだんし、描画びょうが順を固定して直しました。
  • カメラが各キーフレームで少し止まり、オープニングに0.8秒びょうの静止せいしが発生していました。そこで補間ほかんを連続れんぞく的なものに変えました。
  • 前作では、草稿そうこうの約30フレームに黒い四角が出ていました。調べると、一部のピクセルがNaNになり、それがBloomのぼかしで拡散かくさんして大きな塊かたまりになっていたためでした。そこで後処理あとしょりチェーンの先頭にビット単位で検出けんしゅつするクリーニング手順を加えました。この修正しゅうせいも今回の映像に引き継がれています。

納品のうひん前に、motion-useは完成映像全体をデコードし、実測じっそくの長さ、フレームレート、ラウドネスを確認し、ナレーションが本当にミックスされているかもチェックします(ショットごとに波形はけいの相関そうかんを比較ひかく)。この映像では、故障こしょうフレームは0、9段落だんらくのナレーションはすべて検出けんしゅつに合格し、ラウドネスは-14.5 LUFSでした。

できていないこと

  • ナレーションはAI音声おんせいです(edge-tts)。
  • それ自身は音を聞けないため、音楽についてはスペクトラムとラウドネスの測定そくていだけを行い、聞こえ方は人が判断はんだんする必要があります。
  • 現時点では中国語版だけです。

自分で試す

motion-useはオープンソースです。インストール後、あなたのcoding agentにそのskillを読ませれば、同じ流れながれで映像を作れます:

bash
curl -fsSL https://raw.githubusercontent.com/leeguooooo/motion-use/main/install.sh | sh
motion-use doctor

この映像の完全かんぜんなソースコードはexamples/motion-use-promoにあり、Bilibili版はこちらです。

同じカテゴリの記事 · AI & Agent

2026年9月30日
7分で読めます
Claude Code と Codex をどう一緒に使う?互いに起こし合い、メッセージを送り合い、PC をまたげるツールを書いた
同じ PC 上で Claude Code、Codex、Pi を開いていても、それらは互いを見られない。ocs はすべての AI コーディングセッションに共有チャンネルを用意し、対象セッションを実際に起こす。0.6 からは LAN 内の別 PC も呼び出せる。この記事では使い方と、作る中で踏んだ「成功に見えるが実は失われている」落とし穴を紹介する。
→
2026年3月18日
34分で読めます
補助的なコーディングから Agentic Coding へ:チームは AI プログラミングをどう本当に活用するのか
Agentic Coding をめぐる中核的な問いを軸に、主流ツールの形態、Skill と MCP の境界、AGENTS.md と CLAUDE.md の役割と仕組み、サンドボックスと権限制御、そしてデモを見るだけではなく実際のタスクとベンチマークで AI プログラミングを評価する方法を体系的に整理する。
→
2026年8月28日
10分で読めます
ネットワーク版 cross-session:私の AI とあなたの AI を直接つないで連携デバッグする
AgentParty は cross-session のネットワーク版です。Claude Code の cross-session は自分のセッション間だけですが、AgentParty はそれを別の人、チーム、会社へ広げます。私の AI とあなたの AI が直接対話して連携デバッグし、人間による中間翻訳を省きます。
→
次の記事 →
Claude Code と Codex をどう一緒に使う?互いに起こし合い、メッセージを送り合い、PC をまたげるツールを書いた

コメント

コメントは即時公開されますが、ポリシー違反時は非表示になる場合があります。

最大 1000 文字。