Faceless Shorts
あなたはトピックから完成された縦型ショート動画(スクリプト、音声、単語同期キャプション、アニメーションショット、効果音とBGM、MP4レンダリング)を作成します。すべてがコードです:キャンバス描画、ヘッドレスChromeキャプチャ、ffmpeg、ローカルのKokoro音声、ローカルのWhisper単語タイミング、numpyサウンド。AI画像や動画、APIキー、クレジットは一切不要です。
SKILL = このファイルがあるフォルダです。プロジェクトは ~/faceless-shorts/<短い名前>/ に作成されます。
| スタイル | 作成内容 | 長さ · アスペクト比 |
|---|---|---|
Deep Dive 3D deep-dive | フラッグシップ、Zack D. Films風:彫刻された3D人物が日差しの当たるセットの中に、光るX線の身体、血管を通るカメラの旅、浅い被写界深度。「〜するとどうなる?」系の身体と科学 | 30-45秒 · 9:16 |
Night File 3D night-file | 未解決事件/犯罪:暗い3D空間に一つの光源、顔のない人物(対象は赤く光る)、タイプライター風の日付、事件ファイルの挿入 | 30-45秒 · 9:16 |
Inside Out inside-out | フラット2D「〜するとどうなる?」解説:シンプルな主人公、X線断面図、太字1〜3単語のキャプション、テンポの良いカット | 25-40秒 · 9:16 |
Stick Story stick-story | 「こんな時どうする?」生存手順:表情豊かな目を持つ棒人間、昼/夜のフラットな部屋、金のステップカード | 30-45秒 · 9:16 |
Paper Atlas paper-atlas | 切り絵の歴史:羊皮紙の地図、深紅の航路、金の日付リボン、歴史上の人物 | 30-45秒 · 9:16 |
Tall Tale 3D tall-tale | 面白い実話:フラット2Dの漫画風人物(大きな丸い頭、インクの輪郭)が陽気な3Dの小さな町の世界で演技、カメラは常に移動、一字キャプション | 40-60秒 · 9:16 |
スタイルの選び方:身体/健康/科学「〜するとどうなる?」→ Deep Dive 3D(または軽くて速い2Dなら Inside Out)· 不気味、未解決、犯罪、「1971年に起こったこと」→ Night File 3D · サバイバル、ライフハック、「こんな時はこうする」→ Stick Story · 歴史的な出来事、「Xはこうして起こった」→ Paper Atlas · 面白い機知に富んだ実話、詐欺、抜け穴、「この男はXをやった」→ Tall Tale 3D。明確でなければ、一度尋ねてください。
各スタイル = styles/<スタイル>/style-sheet.png(そのスタイル独自のコードで描かれた、一目でわかるルックの画像)+ STYLE.md(ルール + エンジンマニュアル)+ example/(そのままレンダリング可能な完全なプロジェクト)。計画を立てる前に、スタイルのSTYLE.mdを完全に読んでください。
0. コンピュータでの初回使用
bash SKILL/scripts/setup.sh を実行し、All set と表示されるまで待ちます(Node 22+、ffmpeg、Chromeをチェック;~/.faceless-shorts/venvを構築;Kokoro音声〜340 MBとWhisper small.en〜0.5 GBをダウンロード)。不足しているものは無料の公式方法でインストールし、パスワードが必要なものは事前に確認してください。その後、bash SKILL/scripts/selftest.sh で SELFTEST PASSED と表示されることを確認します:コンタクトシートを開き、その名前と見た目を確認してください。
1. 情報収集(1メッセージで、デフォルト値は埋められている)
不明な点だけを一度に尋ねます:トピック(または「あなたが3つのアイデアを選んで」)、気に入ったショート動画のフォーマットへのリンク(任意)、長さ(デフォルト〜30秒)、音声(SKILL/scripts/py SKILL/scripts/voice.py --list;デフォルト am_michael)、ナレーションモード:AI音声(デフォルト)· 自分の録音(スクリプトを見てから録音;words.py --audio)· キャプションのみ(まだ音声なし;estimate.py)、BGM(内蔵 · なし · 自分のロイヤリティフリーファイル)、エンドライン/ハンドル。「お任せ」= デフォルト。
2. 計画(1画面で、その後待機)
表示:タイトル · カットごとに1行の完全なナレーションとそのキャプションチャンク(もしも *ガムを | 飲み込んだら?)· ショットリスト(それぞれ1行:何が見えるか、何が動くか、どの単語に合わせるか)· 必要ならキットに追加する新しいコンポーネント · 事実とその出典。「作成しますか?」 と尋ね、待機します。
スクリプトのルール。 人が実際に友人に話すように書きます:「そうですね」「つまり」「しかし」「だから」「ということは」などの接続語を使った、完全で流れるような文章。短いキャプションのようなリストではありません。35秒あたり約90〜110語。1行 = 1カットであり、1文ではありません:各文を自然な区切り(コンマ、「そして」「つまり」)で1〜3行に分割し、声は流れ続けている間に1.5〜3.5秒ごとに映像が変わります(voice.pyは各完全な文を一気に読み上げます)。構成:フックとなる質問、エスカレーション、神話や驚き、ひねり(「しかし、もしあなたが…」)、ループするパンチライン。数字は発音通りに書きます(「なな」)。頭の中で音読します:キャプションのように聞こえたら書き直します。オリジナルのみ:気に入ったフォーマットを参考にしても、他のクリエイターのスクリプトやショットをコピーしないでください。すべての事実は信頼できる情報源と照合します(script.jsonの「sources」にリストします)。健康関連のトピック:正確であり、グロテスクな表現や誤った怖がらせる情報を含めないでください。
3. 作成
bash SKILL/scripts/new_video.sh <スタイル> <短い名前>で、exampleを~/faceless-shorts/<短い名前>/にコピーします。script.jsonを書きます(行 + キャプション + ギャップ;STYLE.md参照)。- タイミング:
SKILL/scripts/py SKILL/scripts/voice.py <プロジェクト>を実行し、次にSKILL/scripts/py SKILL/scripts/words.py <プロジェクト>(自分の録音の場合:words.py <プロジェクト> --audio 自分の.m4a;キャプションのみの場合:estimate.py <プロジェクト>)。 src/shots.jsを書き換えます:1行に1ショット(または長い行は2ショット)、各ショットはcut(i)で配置し、重要な瞬間はWd('単語', 行)で単語に合わせます。キット(src/core/kit.js)を再利用し、新しいコンポーネントはそのスタイルのルックでそこに追加します。- プロジェクト内で:
node tools/capture.mjs check(CHECK OKと表示される必要があります)→node tools/capture.mjs cues→SKILL/scripts/py tools/mix.py .→ QA(セクション4)→node tools/capture.mjs video renders/<名前>.mp4。1ショットの反復:`node tools/capture.mjs frames review/f