Claude Motion を使ったナレーション付きハウツービデオの作成方法
これは Novacrest のマーケティングチームがハウツー動画やドキュメント動画を作成する際の方法です。アプリの実際の画面、滑らかに動くカーソル、ステップごとに1つの短いキャプション、各キャプションを読み上げる英語の音声、そして完成した1つの MP4 ファイルで構成されます。OmniOrders のクイックスタート動画(2026年10月)から始まりました。
このスキルには、動画制作に必要なすべてのファイルが含まれています(パスはこのファイルからの相対パスです)。
engine/shared.jsとengine/base.css:スクリーンショットエンジン(SS)とその外観。メモリから再構築しないでください。examples/how-to-film/:リファレンス動画「Claude Motion を使ってハウツービデオを作成する方法」(2026年10月27日)のすべてのシーンモジュールと、そのlines.json、scenes.json、shots.json。シーンを書く前にこれらを読んでください。各SS.defオプションの使用例が示されています。scripts/voice.py:ナレーション。ElevenLabs API を使用し、キャプションごとに1つの MP3 ファイルを生成します。Whisper がインストールされている場合はチェックも行います。ユーザー自身の端末で実行されます。scripts/mix.py:各クリップをキャプションの下に配置し、完成した MP4 を書き出します(ffmpeg が必要です)。
厳格なルール
- 実際の画面のみを使用し、アプリからキャプチャすること。アプリの UI を再描画しないでください。最初のクイックスタート動画で、描画された画面が問題になりました。コマンドを示すプレーンなカードは問題ありませんが、アプリやターミナルウィンドウを描画したコピーは許可されません。
- テストアカウントを使用すること。実際の顧客データ、キー、トークン、パスワードを画面に表示しないでください。パッチで隠すか、テストアカウントのダミー値を使用してください。ユーザーに代わってサインインしないでください。サインインはユーザーに依頼してください。
- ナレーションは英語(米国)とし、キャプションはスクリプトそのものです。各ステップに1つ、誰にでもわかりやすい平易な言葉で、約12語以内、ダッシュ記号は使用しません。音声は各キャプションをそのまま読み上げます。音声が単語を間違って発音する場合は、
say.jsonに発音の補足を記述します。キャプションはそのままにしておきます。 - 動画を音声に合わせて引き伸ばさないでください。キャプションはクリップに合わせてタイミングを調整します(ステップ4)。クリップが長すぎる場合は、少し速度を上げるか(mix.py では最大1.15倍)、該当のラインを短くして再度音声を生成します。
- パイロット方式で進めます。最初のシーンのラインを音声化してチェックしてから残りを進め、音声やスクリプトを変更した後も再度チェックします。
- LLM で音声を評価しないでください。voice.py は、faster-whisper がインストールされている場合に各クリップを Whisper(ワードエラーレート)でスコアリングします。そうでない場合はユーザーが聴いて確認します。
- チャット内で API キーを要求、表示、貼り付けないでください。ElevenLabs のキーはユーザーのコンピュータ上のファイルにのみ保存されます。
- ファイルをダウンロードする前、名前を付ける前、およびどこから来たのかを確認する前に、ユーザーに確認を求めてください。
なぜ音声をユーザーの端末で実行するのか:Claude のワークスペースとユーザーのコンピュータ上の Claude のシェルは ElevenLabs にアクセスできません(Novacrest ネットワークの許可リストで api.elevenlabs.io と elevenlabsusercontent.com がブロックされています。2026年11月12日確認)。また、キーはチャット経由では決して送られません。Claude がすべてを準備し、ユーザーは1つのコマンドを貼り付けます。ElevenLabs コネクタ(カスタムコネクタ、https://api.elevenlabs.io/v1/mcp)はキーなしで音声を生成できますが、その音声は elevenlabsusercontent.com のリンクとして返され、ワークスペースがダウンロードできないため、ここでは使用しません。管理者がこれら2つのドメインを許可した場合、この判断を再検討してください。
ステップ1:範囲とキャプション
これらを一度に取得します。不足しているものだけを1ラウンドで質問します。フロー(例:「OmniOrders で振替を作成する」)、アプリとそのテストアカウント、動画の掲載先(ドキュメントページ、クイックスタート、YouTube)、および製品の色。ステップリストとステップごとのキャプション、タイトル行とエンド行を lines.json に記述します(`{