video-shortform について
Video Shortform は、テキスト動画モデルや hyperframes-html で短いワンショット動画を作るスキルです。ショットの計画、プロンプト作成、メディア生成の手順を扱います。
主な機能
- 01短い動画をワンショットで計画
- 02プロジェクトの画角と長さに準拠
- 03モデルに合わせたプロンプト作成
- 04統一ディスパッチャーによる動画生成
- 05ファイルの受け渡しと変化案の提示
活用シーン
- 01動画モデル向けワンショット案の作成
- 02指定した画角と長さでのクリップ生成
- 03hyperframes-html によるモーションデザインカード制作
- 04生成動画のプロジェクトへの保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nexu-io/ open-design --skill video-shortformインストール後、Claude Code で/video-shortformを入力して読み込まれたか確認します。
同梱ファイルexample.html
詳細
Video Shortform Skill
短尺(≤ 10s)は、現在のテキストから動画を生成するモデルに最適です。ひとつのショットにひとつのアイデアを盛り込むのは得意ですが、複数のカットで構成されるストーリーは苦手です。1 回の呼び出しにつき 1 ショットを計画してください。
特例:hyperframes-html は、フォトリアルなテキストから動画を生成するモデルではありません。ローカルで HTML から MP4 をレンダリングするツールです。このモデルでは、映画撮影の演出や「現実世界」のカメラ物理を模倣しないでください。ブリーフをモーションデザインカード/タイトルフレーム/製品インタースティシャルとして扱い、確認の質問は最大 1 つにして、すぐに処理を実行してください。
リソースマップ
video-shortform/
├── SKILL.md
└── example.html
ワークフロー
ステップ 0 — プロジェクトのメタデータを読む
videoModel、videoLength(秒)、videoAspect を確認します。これらは厳密な制約です。選択したモデルがサポートする内容に合わせてプロンプトを調整してください(Seedance 2 は最大 10s、Kling 4 は最大 10s と画像からの動画生成に対応、Veo 3 は音声付きで 8s に対応)。
ステップ 1 — ショットを計画する
モデルを呼び出す前に、ショットリストを作成します。
| 項目 | 内容 |
|---|---|
| 被写体 | フレーム内に何を映しますか? |
| カメラ | 固定/パン/プッシュイン/オービット? |
| 照明 | キーライトの方向と色温度 |
| 動き | 何が、どのくらいのペースで動きますか?被写体の動きとカメラの動き。 |
| 音声 | 環境音はありますか?(モデルが音声に対応する場合のみ) |
通常は、処理を実行する前に、これを 1 文の計画としてユーザーに提示します。ユーザーは簡単に変更を指示できます。
hyperframes-html の場合は、ユーザーがヒアリングフォームに回答した後、実行前の追加説明を省略します。計画を実際の生成プロンプトにまとめ、すぐに処理を実行してください。
ステップ 2 — プロンプトを作成する
上流モデルが推奨する形式を使用します(Seedance:動き+カメラ+雰囲気、Kling:被写体+カメラ+スタイル、Veo:被写体+撮影手法+音声)。プロジェクトの videoAspect と videoLength を API パラメーターに直接設定し、文章には含めないでください。
hyperframes-html の場合は、カメラのリアリティを追求するプロンプトではなく、簡潔なモーションデザインのブリーフを作成します。被写体、レイアウト、配色、動きの特徴、全体のトーンに焦点を当ててください。環境の確認、不足しているサイドファイル、「これから処理を実行します」といった状況説明にターンを費やさないでください。
ステップ 3 — メディアコントラクトを使って処理を実行する
統一ディスパッチャーを使用してください。プロバイダー API を手動で呼び出してはいけません。
"$OD_NODE_BIN" "$OD_BIN" media generate \
--project "$OD_PROJECT_ID" \
--surface video \
--model "<videoModel from metadata>" \
--aspect "<videoAspect from metadata>" \
--length <videoLength seconds> \
--output "<short-slug>-<seconds>s.mp4" \
--prompt "<assembled shot prompt from Step 2>"
このコマンドは、1 行の JSON を出力します:{"file": {"name": "...", ...}}。ファイルのバイトデータはプロジェクトに保存され、FileViewer で自動的に再生されます。
ステップ 4 — 引き渡す
ショットの概要、ディスパッチャーが返したファイル名、ユーザーがバリエーションを希望する場合に試すことを 1 文で返信してください。
hyperframes-html の場合は、返信を特に短くします。レンダリングした内容、ファイル名、具体的なバリエーション案を 1 つ伝えてください。
厳守事項
- 1 ターンにつき 1 ショットです。複数ショットのタイムラインは、ここではなく hyperframes/インタラクティブ動画スキルの対象です。
videoAspectに正確に合わせてください。再レンダリングには時間がかかります。- ファイルを保存せずに動画を渡してはいけません。ユーザーはファイルビューアーで再生できるものを期待しています。
- 基盤となるモデルが失敗した場合(NSFW フィルター、コンテンツポリシー、タイムアウト)は、エラーをそのまま報告してください。黙って再試行しないでください。
"$OD_NODE_BIN" "$OD_BIN" media generateをすでに呼び出していない限り、レンダリングが「送信済み」「開始済み」「実行中」と主張してはいけません。