Finance Video Script
エージェント(あなた)が台本を執筆します。スクリプト scripts/vengine_cli.py はビートの枠組みを準備し、ビートごとのシーンを受け付け、スタイルガイドに基づくリンティングを実行します。
範囲
- 含まれるもの: ブリーフ(ビジュアル
styleの選択を含む)→ ビートシート → ビートごとの台本(scenes.json)→ リント → ビジュアルページマッピング(map-pages)→ エクスポート(naskah.md、prompts.json、naskah.srt)→ AIフルスクリーン画像アセット生成(generate-images)→ インドネシア語TTS付きシネマティックMP4動画レンダリング(render)。 - 含まれないもの: プラットフォームへの自動アップロード。
準備
- Python 3.10+ で
pip install pydantic pyyaml pillow edge-tts imageio-ffmpegを実行するか、uv runを使用してください(依存関係は自動解決されます)。 <skill-dir>= このSKILL.mdが置かれているフォルダ。すべてのコマンドは:python <skill-dir>/scripts/vengine_cli.py <command> ...と実行します(Windows ではpythonの代わりにpyを使用できます)。- スキルフォルダ内ではなく、ユーザーの作業ディレクトリから実行してください。プロジェクトは
./video-projects/<slug>/に保存されます(--home DIRまたは環境変数VENGINE_HOMEで変更可能)。
ワークフロー
- ブリーフを収集する。 不明な点を質問: トピック、フォーマット(A = ストーリー、B = ステップバイステップガイド、S = 30〜60秒のショートフォーム)、尺、ビジュアル
style(プリセット:claymation、flat-vector、3d-pixar、anime-ghibli、cinematic-realistic、watercolor、comic-book、dark-moody、または自由なカスタム記述)、対象視聴者、angka_kunci(キーナンバー)、フォーマットA の場合は登場人物(主人公、対比役、端役)も質問します。また、コメント/チャンネル登録を促す呼びかけや、言及してよい金融商品についても質問します。キーナンバーをでっち上げないでください。 数字はユーザーから得るか、自分で計算式を書いて算出するものです。 - 何かを書く前に
references/panduan-naskah.mdを読んでください。 それがスタイル、テクニック、数字/主張に関するルールの正本です。 - プロジェクトを作成する。
init <slug> --topic "..." --format A|B|S --minutes N --style <style>を実行し、ユーザーと一緒にbrief.yamlを記入します。その後build <slug>を実行し、ストーリーバイブルとビートシートを作成します。 - ビートごとに執筆する(すべてのビートが完了するまで繰り返し):
beat <slug>で次のビートのタスクを表示: ブリーフ、登場人物、前3シーン、内容ポイント、シーンあたりの目標文字数、タグ条件。- JSONシーンを
video-projects/<slug>/draft/<beat>.jsonに書き込みます。image_promptは各シーン(すべてのシーンがフルスクリーンでレンダリングされるため)に英語で記述します。 add <slug> --beat <id> --file video-projects/<slug>/draft/<id>.jsonを実行します。- エラーがある場合、ビートは保存されません。エラーメッセージに従ってJSONを修正し、再度
addを実行します。保存後にビートを書き直す必要がある場合は、--replaceフラグを追加します。ユーザーが明示的に要求しない限り、--forceは使用しないでください。
- 確認する。
status <slug>で進捗を確認し、lint <slug>で完全なチェックを実行します。台本を最終版として提示する前に、エラーはゼロでなければなりません。警告はユーザーと一緒に確認し、対応を決定します。 - ビジュアルページをマッピングする。
map-pages <slug>を実行し、references/design-video.mdのカタログに従ってpage_typeとpropsを自動的にマッピングします。 - エクスポートする。
export <slug>で次を生成:video-projects/<slug>/out/naskah.md(幕ごとの正典台本)video-projects/<slug>/out/prompts.json(全シーンのフルスクリーンイラスト用プロンプト、キャラクターとスタイル情報を含む)video-projects/<slug>/out/naskah.srt(タイムスタンプ付き字幕)
- AIフルスクリーン画像アセットを生成する。
generate-images <slug>を実行し(オプションで--style <style>、--scene <number>で1シーンの再生成、--forceですべてを上書き可能)、Pollinations Flux からフルスクリーンAI画像をvideo-projects/<slug>/out/images/scene_XXX.pngにダウンロードします。 - MP4動画をレンダリングする(オプション、要求された場合のみ)。
render <slug>を実行し(オプションで--voice id-ID-ArdiNeuralまたはid-ID-GadisNeural、ストップモーション風claymationスタイルの場合は--fps 12も指定可能)、フルスクリーンの背景画像(ストップモーション / Ken Burns 効果、ビネット、数字/パンチラインのグラスモーフィズムオーバーレイ、カラオケ字幕)、インドネシア語ナレーション音声を合成してvideo-projects/<slug>/out/video.mp4を生成します。
JSONシーンフォーマット
{"scenes": [
{"narration": "戦略その一、お金は最初に分けておくこと。",
"tags": ["SECTION"], "image_prompt": "clean modern workspace with warm morning sunlight beams", "characters": [], "mood": "warm", "notes": ""},
{"narration": "毎日2万円を貯金すれば、1ヶ月で60万円が貯まります。",
"tags": ["CALC"], "image_prompt": "neatly stacked glass savings jars with glowing coins on wooden desk",
"motion_prompt": "Stop-motion claymation, slow subtle push-in camera, soft ambient light flicker", "characters": [], "mood": "neutral",
"notes": "20.000 x 30 = 600.000"}
]}
narration: 読み上げ可能な形で、15~35語。PUNCHとSECTIONシーンは最大14語で、単独で成立すること。tags:PUNCH、BRIDGE、SECTION、CTA、NUMBER、CALC。ビートごとの条件はbeatコマンドのタスクに記載。image_prompt: 英語で記述。画像内にテキストや数字を入れないこと。各シーンに記述することを推奨(nullの場合はエンジンが自動生成)。end_image_prompt(オプション): シーン内で物体や照明が変化する場合(例:電灯スイッチを押して暗→明)、その End Frame 用に英語で記述(同じシードで生成)。motion_prompt(オプション): シーンごとの動きの指示(例:zoom_flicker、bobbing、switch_lightなどストップモーションクレイアニメーション向け)。characters: ストーリーバイブル内のキャラクターID(例:protagonis)、名前ではない。mood:tense、neutral、warm、uplift、melancholy。notes:CALC/NUMBERシーンの場合はA x B = C形式の計算式が必須。主張の出典も記述すること。
絶対に破ってはいけないルール
- オリジナルで書くこと。参考動画やトランスクリプトのコピーやパラフレーズは禁止。構造とテクニックのみを利用すること。
- すべての数字を再計算すること。目標額へのタイムラインは明示的かつ正直にすること。
- 出典のない統計(「90%の人が...」)や結果の約束は禁止。金融商品はあくまで例示とし、必ず免責文を添えること。
- フィクションコンテンツ(フォーマットA)には「これはフィクションです」というラベルを付けること。
beats.jsonやscenes.jsonを手動で編集しないこと。addコマンドを使用し、バリデーションとシーン番号の自動再割り当てを確実に行うこと。
トラブルシューティング
Modul 'pydantic' belum terpasang→pip install pydantic pyyamlまたはuv runを使用。Proyek ... tidak ditemukan→ 作業ディレクトリを確認。プロジェクトはコマンドを実行したフォルダ内の./video-projects/にあるか、--homeで指定された場所にある。- リント
mirip_referensi→ 参照トランスクリプトを.txtファイルとして./references/(または--refs DIR)に配置し、指摘された部分を自分の言葉で書き直す。 - リント
total_kata→ 目標から大きく外れているビートでシーンを追加または削減し(statusで確認)、add --replaceを実行する。