Communitygithub.com

altacrest/motion-how-to-video

アプリの実際の画面をChromeでキャプチャし、Claude Motionで作成した各ステップのシーンにElevenLabs(Matilda)の英語ナレーションを重ね、1つのMP4にまとめたナレーション付きハウツービデオを作成します。ハウツー、チュートリアル、ドキュメント、QA動画に最適です。

motion-how-to-video とは?

このスキルは、アプリの実際の画面をChromeでキャプチャし、ElevenLabsの音声(Matilda)でナレーションを追加したハウツービデオをClaude Motionで作成するためのものです。各ステップに1つの短いキャプションを付け、英語の音声がそれを読み上げ、最終的に1つのMP4ファイルに出力します。元々はOmniOrdersのクイックスタート動画制作から発展したワークフローで、Novacrestのマーケティングチームがドキュメントやチュートリアル動画を制作するために使用しています。このスキルはClaude Motionのサーバー機能上で動作し、ユーザー自身の端末でvoice.py(ElevenLabs API)とmix.py(ffmpeg)を実行します。重要なルールとして、実際の画面のみを使用し(UIを再描画しない)、テストアカウントを使用し、ナレーションは英語(米国)でキャプションは各ステップに1つ、約12語以内とします。また、動画を音声に合わせて引き伸ばさず、キャプションはクリップに合わせてタイミング調整します。パイロット方式で最初のシーンの音声を確認してから残りを進め、APIキーはチャット上で決して共有しないなど、厳格なルールに従って高品質なビデオ制作を実現します。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/altacrest/novacrest-skills/tree/HEAD/plugins/motion-how-to-video/skills/motion-how-to-video

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

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

ドキュメント

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 に記述します(`{

関連スキル