2d-game
免费窓際族物語の2Dゲームを新規作成し、Seedance(CapCut)で制作した動画をオープニング/イベントのカットシーンとして組み込むワークフロー。ユーザーから2Dゲームの制作を頼まれたとき、添付動画(mp4)をゲームに組み込む・差し替えるよう頼まれたとき、カットシーンの追加・修正を頼まれたときに必ず使用する。
中文简介正在准备中。当前显示原文说明。
窓際族物語の動画を、チャプター毎のキーフレーム画像を作らずに「プロンプト+キャラクターシート+セリフ音声」だけでMiniMax H3(R2V)に生成させるワークフロー。ユーザーから「画像なしで動画を作って」「キーフレームなしで動画を作って」「シートだけで動画を作って」と指示されたときに必ず使用する。
大まかな指示→チャプター分割案→チャプター毎の動きを人間に確認→全チャプター確定→プロンプト作成の順で進め、確定前にプロンプトを書かない。画風の注意文はチャプターに映るものだけを最小限で書き、モブキャラはラン専用のキャラクターシートを作って渡す。
動画生成の実行先は/colab-video(Colab)または/local-videoステップ7(ローカルCUDA)。
中文简介正在准备中。当前显示原文说明。
实测评分 未实测
查看安装方法安装前可以查看交给 AI 代理的指令内容。
実行主体はClaude Code・Cursor・Codexのいずれでもよい(.agents/skills/と.cursor/skills/の両方にsymlinkしてある)。
ユーザーから「画像なしで動画を作って」「キーフレームなしで」「シートだけで」と指示されたら、/seedance・/local-videoではなくこのスキルを使う。
/seedance /local-video /colab-video | 本スキル | |
|---|---|---|
| チャプター(クリップ)毎の画像 | 開始/終了キーフレームをチェーン生成し、動画モデルに渡す | 作らない・渡さない |
| 動画モデルへの入力 | キーフレーム+シート+音声 | プロンプト+キャラクターシート(+物語上重要な小道具の参照画像・場所シート)+セリフ音声だけ |
| 生成モード | セリフなし=I2V / あり=R2V | 全チャプターR2V(シートを渡せる唯一のモード。セリフなしチャプターも音声なしR2V) |
| 画風の指定 | ラン全体で1行の## Style blockを全プロンプトに逐語埋め込み | チャプター毎の最小限のStyle line(そのチャプターに映るキャラ・物だけ) |
| モブキャラ | 文章指定(シート不要) | ラン専用シートMob_<slug>_sheet.pngを必ず作る(キーフレームが無いため、シートが唯一の見た目の拘束) |
| 台本の進め方 | ストーリーから一気にscript.mdを書く | チャプター分割案→各チャプターの動きを人間に確認→確定→プロンプトの段階ゲート |
| つなぎ目 | フレーム共有で消す | 共有フレームが無いので既定はCUT(別ショット) |
画像工程が無いぶん、チャプター毎の動作をプロンプトに具体的に書き切ることと人間による事前確認が品質の要になる。過去にこの方式で「画風の注意文が登場しないキャラや物(パトカー・別キャラ)まで列挙し、肝心の動作(誰がどこから出てきて誰と歩くか)が書かれていない」プロンプトが生成された。本スキルはその再発防止のために、(a) 確定済みチャプター計画からしか本文を書かない、(b) Style lineは映るものだけ、(c) 機械検証で不在キャラへの言及を弾く、の3点を強制する。
作業前に該当セクションを必ず読むこと:
.claude/skills/seedance/SKILL.md ステップ0(ラン専用ディレクトリ・シートの物理同梱・basename参照・全シートをReadで開く)、ステップ1のうち Story Formula・禁止事項 / Prop state ledger・物理整合性 / Scene ledger・昼夜ジャンプ防止 / Camera plan・単調防止 / Fixture layout / 話者分離(1チャプター1話者)/ リップシンク精度 / 言語ルール(script.mdは英語・セリフのみ日本語)/ 画面内テキスト禁止 / 音響設計(Soundscape:・Music:)/ キャラ正典(PRESERVE:)/ 人数固定 / 話者バインディング、ステップ2(音声2テイク→ユーザー確認→確定、Dialogue audio表、VOICEVOXクレジット)。.claude/skills/local-video/SKILL.md ステップ3のうち「チャプターの定義(H3の入力制限)」「Motion promptの内部構造(公式h3-prompt-writing準拠)」、ステップ4の2.0秒パディング、ステップ7〜8(ComfyUI実行・結合)。.claude/skills/colab-video/SKILL.md(Colabで生成する場合のbuild_h3_run_package.py・ノートブック運用)。引き継がないもの: ## Style blockの全プロンプト逐語埋め込み(本スキルはチャプター毎のStyle lineに置き換える)、キーフレーム生成・キーフレーム検証(ステップ5〜6)、I2Vモード、「クリップNの終了フレーム=クリップN+1の開始フレーム」の共有規則。
chapter_plan.md・日本語)→ ユーザー確認(ゲート1)Status: APPROVED(ゲート2)。全チャプターAPPROVEDまでプロンプトを1本も書かないSheet: APPROVED(ゲート3))。物語上重要な小道具があれば小道具参照画像Prop_<slug>.png、舞台の見た目を固定したい場所があれば**場所シートLoc_<slug>_sheet.png**も同梱し、ユーザー確認 → Prop: APPROVED / Loc: APPROVEDscript.md(英語): 台帳+各チャプターのH3 inputs表+Motion promptvalidate_no_image_run_bundle.py)/colab-video)またはローカルCUDA(/local-videoステップ7)/local-videoステップ8)03_SCRIPTS/<NN>_<slug>/を作る(seedanceステップ0と同じ命名)。02_CHARACTERS/<Name>_sheet.pngを物理コピーし、2人以上が同時に映るランはheight_lineup.pngもコピーする。02_CHARACTERS/0N_*.md)の「シート照合チェックリスト」と突き合わせる(CLAUDE.md共通ルール。省略禁止)。本スキルはキーフレームが無いため、シートの正しい理解がそのままPRESERVE:とStyle lineの精度になる。01_WORLD/WORLD_BIBLE.mdの禁止事項(ブラック企業描写・いじめ・パワハラ・鬱展開)は本スキルでも厳守。刑務所・タコ部屋等の題材はコミカルなパロディとして描く。ユーザーの大まかな指示(あらすじ)から、まずチャプター分割と各チャプターのざっくりした内容だけを決め、03_SCRIPTS/<NN>_<slug>/chapter_plan.md(テンプレート: templates/chapter_plan.md。日本語で書く — 人間確認用の文書なので言語ルールの例外)に書き、チャットでも同じ内容を提示してユーザーの確認を待つ。確認前に次のステップへ進まない。
分割の根拠(H3の制約と本スキルの性質):
height_lineup.png+そのチャプターに映る小道具参照画像Prop_<slug>.png+そのチャプターの舞台の場所シートLoc_<slug>_sheet.png)。映るキャラ・小道具が多すぎて入らないなら、画面に映るものを減らすか、チャプターを割る。各チャプターに書く項目(この段階はざっくりでよい): 仮題・尺の目安・場所と時間帯・登場(画面内)・ざっくり内容・セリフ(話者つき)。登場キャラのうち02_CHARACTERS/に無い人物はすべてモブとしてMob:<slug>の名前を与え、文末の「モブキャラクター」欄に列挙する。
チャットでの提示は「チャプター番号・仮題・尺・登場・ざっくり内容・セリフ」の1チャプター数行の一覧にし、「この分割でよいか、増減・順番・尺の希望があるか」を聞く。
ゲート1で分割が固まったら、全チャプターについて次をchapter_plan.mdに追記し、チャットにも同じ内容を提示してユーザーに確認してもらう:
(OFF)。提示は全チャプターまとめて1回でよい(往復を減らす)。ユーザーの修正を反映し、ユーザーが「OK」と言ったチャプターだけ- Status: APPROVEDにする。全チャプターがAPPROVEDになるまでステップ3以降のプロンプト作成へ進まない(モブシート生成・音声生成は、該当チャプターと外見・セリフが確定していれば先行してよい)。確定後にユーザーが内容を変えたら、そのチャプターをDRAFTに戻し、再確認後に該当プロンプトを書き直す。
画面に映るモブ全員(セリフの有無を問わず。通行人・店員・刑務官・記者等)について、ラン専用のモデルシートMob_<slug>_sheet.pngをラン直下に作る。キーフレームが無い本スキルでは、モブの見た目を固定できる入力はシートだけ。文章指定だけで済ませることを禁止する。
Mob_<slug>_sheet.png(slugは小文字・数字・_。例: Mob_guard_a_sheet.png)。同型モブの組(刑務官2人・記者2人等)は1枚の組シートにまとめてよい(例: Mob_guards_sheet.png。2人が横に並んで写った1枚の写真にし、左の人物=A・右の人物=Bとして位置で呼び分ける。文字ラベルは入れない — 崩れた文字が動画へ漏れるため。画像9枚の枠も節約できる)。組シートにした場合、- Cast:にはMob:guardsと書く。chapter_plan.mdのモブ欄(ゲート2で承認済み)を英語に落とし、script.mdの## Character referencesにモブのPRESERVE:列として書く(年齢感・体格・髪・顔立ち・制服/衣装の色と部位・帽子・小物を数えて書く)。正典メンバーに似せない(白い仮面・金髪ロッカー等の正典要素を持たせない)。02_CHARACTERS/*_sheet.png)と同じ register にする。Mob_<slug>_sheet.pngへ改名してラン直下にコピーし、全枚Readで開いてPRESERVE:列を書き起こす(記憶や仕様書だけで書かない)。make_mob_sheet.sh(draw-things-cli + Qwen Image Edit 2511のtext-to-image)では実写の人物シートを作れない。3枚試した結果は、刑務官が3D/ゲームキャラ調、警察官と客が平面的な2Dイラスト調だった。次の対策はいずれも効かなかった:
character model sheet / turnaround / panel / FRONT / SIDE / BACK labels)を排除して「無地の背景の前に立つ全身のスタジオ写真」として記述する — イラスト度は下がるが実写にはならない(最初の版ではさらに悪く、線画調になった上に指定した制帽が片方から丸ごと消え、ラベル文字もBACE等に崩れた)。visible skin pores・NOT a 3D render, NOT CGIまで書く — 変化なし。
正典シートは実写ベースなので、イラスト調のモブシートを渡すと動画の画風がそちらへ引っ張られる。時間の無駄なので、実写向けのモデルがローカルに入っていない限りmake_mob_sheet.shに頼らない(スクリプトは残してあるが、実写でなくてよい企画向け)。neither holds a musical instrumentと書いたら2人ともエレキギターを持って出てきた(no lanyardと書いた青いストラップも付いた)。画像生成では、その場に無い物は否定形で書かずに一切言及しない。否定形が効くのは「崩れやすい既存要素の形を守る」用途(NOT rectangular glasses)に限る。.codex/config.tomlにあるdefault_tools_approval_mode = "writes"をローカルのcodex 0.139.0が受け付けず即時終了し、リポジトリ外で実行してもアカウントの既定モデルにCLIが未対応で失敗した)。使うなら先にcodex execが1回通ることを確認する。PRESERVE:列を1項目ずつPASS/FAIL判定する(4面で同一人物か、制服の色・帽子・小物が仕様どおりか、文字が写り込んでいないか、正典メンバーの要素が混ざっていないか、実写になっているか)。1項目でもFAILなら作り直してもらう。Ollamaがあれば/image-validationのverify_frame.pyでVLM二重チェックしてよい。chapter_plan.mdのモブ欄の該当行をSheet: APPROVEDにする(検証スクリプトがこの行を見る)。Prop_<slug>.png)デザインが決まっていて画面に大きく映る小道具(商品の缶・看板・ポスター・特定の道具等)は、参照画像を1枚添付してよい(2026-10-14追加。「窓際スーパーつらい」の缶のように、文章だけでは再現できない固有デザインのため)。キャラクターシートと同じ「見た目の拘束」として扱う。
Prop_<slug>.pngとして渡してよい。Prop_<slug>.png(slugは小文字・数字・_。例: Prop_super_tsurai_can.png)として物理コピーする(原本は03_SCRIPTS/ref_images/等)。## Prop referencesセクションを作り、各小道具のPRESERVE:(形・色・ロゴの配置・文字の色と位置を数えて書く)とdo NOT carry over:(白背景・商品写真の構図・サイズ感)を書く。- Props: <slug>, ...行を書き、<Picture N> = Prop_<slug>.png — <役割>, design reference only, NOT a composition referenceとして添付する(画像9枚の枠に含める)。映らないチャプターには添付しない・Props:に書かない(検証スクリプトが双方向に照合する)。<Picture N> = Prop_<slug>.pngを再宣言し、PRESERVE:を書く。小道具にロゴや文字がある場合は、文字をそのまま再現させる指示を書き(例: the can's printed label is reproduced from <Picture 3> as-is)、画面内テキスト禁止の定型文にはその小道具のラベルだけ例外と明記する(do NOT render any on-screen text other than the printed label already on the can in <Picture 3>)。崩れた文字が出る可能性は残るので、生成後の確認項目に「小道具のラベルが参照どおりか(クロップして拡大)」を加える。chapter_plan.md末尾の「小道具参照画像」欄に- Prop_<slug>.png — <説明> — Prop: DRAFTを書き、画像をReadで開いてPRESERVE:列を書き起こしたうえでユーザーに見せ、承認後にProp: APPROVEDにする(検証スクリプトがこの行を見る)。Loc_<slug>_sheet.png)舞台(オフィスの机まわり・部屋・店・建物の外観等)の見た目をチャプター間で揃えたいときは、場所シートを添付してよい(2026-10-20追加)。キーフレームが無い本スキルでは、同じ机・同じ部屋が章ごとに別物になりやすいため、キャラクターシートと同じ「見た目の拘束」として扱う。ユーザーが場所・小物のシート(複数アングル・小物の単体パネルを並べた1枚)を提供した場合はこれを使う。
命名・配置: ラン直下にLoc_<slug>_sheet.png(slugは小文字・数字・_。例: Loc_office_desk_sheet.png)として物理コピーする(ユーザー提供の原本名は改名してよい)。
script.md: ## Location referencesセクションを作り、各場所のPRESERVE:(家具・建具・小物の配置と色・窓の位置・照明の種類を数えて書く)とdo NOT carry over:(パネルレイアウト・シートの時間帯や光がチャプターと違う場合はその光・シート内の文字)を書く。シートの時間帯(夜等)とチャプターの時間帯が違う場合は、do NOT carry overに光と窓の外を入れ、時間帯はScene ledgerの句に従わせる。シートとあらすじで物が食い違う場合(シートはデスクトップモニター/台本はノートPC等)は、台本側を正とし、do NOT carry overにその物を書いたうえで正しい物を本文で指定する。
H3 inputs表: その場所が舞台になるチャプターだけ- Locations: <slug>, ...行を書き、<Picture N> = Loc_<slug>_sheet.png — <役割>, location/design reference only, NOT a composition referenceとして添付する(画像9枚の枠に含める)。舞台にならないチャプターには添付しない・Locations:に書かない(検証スクリプトが双方向に照合する)。
人物の映らないチャプター(無人の部屋・画面のアップ等)は- Cast: noneと書き、場所シートか小道具参照を最低1枚添付する。Opening compositionで「人物は映らない」を明記する(Nobody appears in this chapter — EXACTLY ONCE rule: zero people, and nobody enters the frame)。
Motion prompt: 添付宣言で<Picture N> = Loc_<slug>_sheet.pngを再宣言し、PRESERVE:を書く。シートに文字(看板・張り紙等)があっても画面内テキスト禁止は例外にしない。
確認: chapter_plan.md末尾の「場所シート」欄に- Loc_<slug>_sheet.png — <説明> — Loc: DRAFTを書き、画像をReadで開いてPRESERVE:列を書き起こしたうえでユーザーに見せ、承認後にLoc: APPROVEDにする(検証スクリプトがこの行を見る)。
モブの声: 02_CHARACTERS/VOICE_CAST.mdの「ナレーション(窓際メンバー以外の発話全般)」行=Irodori-TTS Narrator_voice.wavが既定。複数モブが話すときはシードを変えて声を分ける。VOICEVOX話者を使う場合はユーザーに確認し、クレジット義務(seedanceステップ2)に従う。H3は添付wavをそのまま使う設計のため、モブのセリフも必ずローカルで生成して添付する(seedanceの「モブはサンプルなし可」の例外は本スキルでは使えない)。
seedanceステップ2と同一(等速+1.5倍速の2テイク→ユーザーが選ぶ→正式ファイル。Dialogue audio表に採用パラメータと実測長を記録)。本スキル固有:
chN_lineM_<char>.wav(モブはchN_lineM_mob_<slug>.wav、ナレーションはchN_nar1.wav)。2.0s (padded from 1.4s)のように併記する。laid over at assemblyと明記し、そのチャプターの音声添付なし・no speech扱いで書く。script.mdとプロンプト作成(全チャプターAPPROVED後)script.mdは英語(セリフ原文のみ日本語)。構成:
No-keyframe production: every chapter is MiniMax H3 R2V driven by character sheets + audio only、生成先、合計尺)## Character references — 同梱シートの一覧と、キャラ(正典・モブ)ごとのPRESERVE: / do NOT carry over:(seedance「キャラ正典ルール」どおり数えて書く)。小道具参照画像を使うランは## Prop references(3b章)、場所シートを使うランは## Location references(3c章)も書く## Scene ledger(列=チャプター境界C1 start | C1 end / C2 start | ...)、## Camera plan(Join列はCUT (new shot)が既定。連続ならCONTINUOUS (matched end/start state))、状態を持つ小道具があれば## Prop state ledger、可動建具があれば## Fixture layout## Dialogue audio## Chapter N — <title> に Cast / Opening composition / Action beats / End state(chapter_plan.mdの承認内容を英語化したもの)を書き、その下に### H3 inputs (Chapter N)## Generation & assembly protocol(下記)、VOICEVOX使用時は## Credits### H3 inputs (Chapter 2)
- Mode: R2V
- Cast: Sobaya, Mob:guards
- Images (connection order = <Picture N> tags; identity/design references ONLY — this run has no keyframes; max 9):
- <Picture 1> = `Sobaya_sheet.png` — Sobaya's character model sheet, identity/design reference only, NOT a composition reference
- <Picture 2> = `Mob_guards_sheet.png` — the two prison guards' model sheet (Guard A left, Guard B right), identity/design reference only, NOT a composition reference
- Audio (max 3 files, each 2-15s, speaking order):
- <Audio 1> = `ch2_line1_mob_guard_a.wav` (2.5s) — spoken by Guard A, use AS-IS as the dialogue audio
- Total input files: 3
- Duration: 6s requested → Frames: 141 (5.875s at 24fps) / Aspect: 16:9 (native 768p — output rounds to 1344x768)
- Motion prompt: <1行・完成形>
- Cast:はそのチャプターの画面内に映るキャラだけ(正典は02_CHARACTERSの英名、モブはMob:<slug>)。画面外の声だけのキャラは書かない。人物が映らないチャプターは- Cast: none(3c章)。添付するシートはCastのキャラのものだけで、Castの全員分を添付する(検証スクリプトが両方向を照合する)。height_lineup.png・小道具参照画像Prop_<slug>.png(3b章)・場所シートLoc_<slug>_sheet.png(3c章)のみ。キーフレーム・雰囲気参照・ポスター等は添付しない。小道具参照を添付するチャプターは- Props:行、場所シートを添付するチャプターは- Locations:行を書く。Required attached input files: <Picture 1> = ファイル名 — 役割(PRESERVE: … ; do NOT carry over: pose, camera angle, sheet background, panel layout, text labels); … <Audio 1> = ファイル名 — 話者の line, use AS-IS. These attachments are REQUIRED inputs. に続けて、必ず None of the attached pictures is a frame of this video: the video does NOT start on, end on or reproduce any sheet — no panels, no white sheet background, no labels or text.(R2Vは開始絵の指定が無いとシートをそのまま第1フレームにしがち)Beat 1 (0–1.5s): … の形で秒数つきに。動作は「前状態→動作→後状態」で書く(seedance物理整合性ルール)(S1)、<d>[Japanese] 原文</d>、lip-syncing to <Audio 1>、開始タイミングと「口は音声の間だけ」、非話者全員の口閉じ、Use <Audio 1> AS-IS as the dialogue audio and do NOT generate any voice。セリフなしチャプターは no speech, no dialogue, no narration を明記locked-off static camera でThe shot ends with …Soundscape: … Music: no background music(既定)分量は350〜550語。長すぎるならチャプターを割る(要約しない)。extract_prompts.pyで逐語抽出できるよう、- Motion prompt:の1行に収める。
そのチャプターの画面に映るものだけを書く。ランに登場する全キャラ・全小道具の一覧を毎チャプターに貼ってはいけない。
Photorealistic live-action cinematography with natural live-action proportions, <Scene ledgerの時間帯・光の句>; <Castにいるキャラのレンダリング句だけ>. NOT flat 2D anime, NOT cartoon lineart.
キャラ別レンダリング句(Castにいるときだけ入れる。表現を揃える):
| キャラ | 句 |
|---|---|
| Sobaya | Sobaya is a live-action man with neutral-gray skin and a hard white mask |
| Fukuchan / Tokun / Yotan / Okayaman / モブ | <Name> is a real photographed person(複数なら "Fukuchan and the two guards are real photographed people") |
| Yametaro | Yametaro alone is a soft matte 3D chibi toy figure standing in the same real space, lit by the same real light |
| Takosan | Takosan is a small matte 3D hooded creature standing in the same real space |
| Yumemin | Yumemin is a small matte 3D floating mascot in the same real space |
validate_no_image_run_bundle.pyは、Motion prompt内にCastにいない正典キャラの名前が出た時点でエラーにする。Required attached input files: <Picture 1> = Sobaya_sheet.png — Sobaya's character model sheet, identity/design reference only, NOT a composition reference (PRESERVE: hard white full-face mask with TWO large black circular eye holes and ONE horizontal black mouth slit, four red vertical markings — two flanking each eye — plus a small black dot centered on the forehead, short spiky black hair above the mask visible from every angle, neutral-gray skin on neck, arms and hands, hulking 180cm/100kg thick build, plain white short-sleeve T-shirt, dark jeans, white sneakers; do NOT carry over: pose, camera angle, sheet background, panel layout, text labels); <Picture 2> = Mob_guards_sheet.png — the two prison guards' model sheet, identity/design reference only, NOT a composition reference (PRESERVE: Guard A on the LEFT half — a stocky Japanese man in his 50s with a gray crew cut and a square jaw; Guard B on the RIGHT half — a tall lean Japanese man in his 30s with short black hair; both in a navy-blue uniform jacket and trousers, white shirt, dark-navy tie, navy peaked cap with a small silver badge, black belt and black leather shoes; do NOT carry over: pose, panel layout, white background, labels); <Audio 1> = ch2_line1_mob_guard_a.wav — Guard A's spoken line, use AS-IS. These attachments are REQUIRED inputs. None of the attached pictures is a frame of this video: the video does NOT start on, end on or reproduce any sheet — no panels, no white sheet background, no labels or text. Photorealistic live-action cinematography with natural live-action proportions in bright midday daylight; Sobaya is a live-action man with neutral-gray skin and a hard white mask, and the two guards are real photographed people. NOT flat 2D anime, NOT cartoon lineart. The shot opens on a locked-off static MEDIUM-WIDE shot at eye level facing the closed gray steel front door of a small prison building: a plain concrete wall, the door hinged on its LEFT edge with a steel lever handle on the RIGHT edge at mid-height, one concrete step below it, an empty sidewalk in the foreground; nobody is visible yet. Exactly three people appear in this chapter — Sobaya, Guard A and Guard B — and each appears EXACTLY ONCE; nobody else enters the frame at any time. Beat 1 (0–1.5s): the door swings open inward, away from camera, pulled from inside; its hinges and handle stay on the same edges throughout. Beat 2 (1.5–3s): Guard A steps out first onto the step, then Sobaya, then Guard B; the three stop side by side just outside the door with Sobaya in the MIDDLE, Guard A at his left shoulder and Guard B at his right shoulder, each guard lightly holding one of Sobaya's upper arms. Sobaya's hands are empty (there is no beer mug in this chapter), his mask faces forward, his posture upright and calm. Beat 3 (3–5.5s): Guard A (S1), the stocky older guard on the LEFT, turns his head toward Sobaya and says <d>[Japanese] 出所おめでとう。もう戻ってくるなよ。</d>, lip-syncing to <Audio 1>; he begins the line almost immediately after they stop, his mouth moves ONLY while <Audio 1> is playing, and then stays CLOSED. Sobaya does NOT speak — his mask's mouth slit never changes — and Guard B does NOT speak, his mouth stays CLOSED. Use <Audio 1> AS-IS as the dialogue audio and do NOT generate any voice. Beat 4 (5.5–6s): the three take one synchronized step forward toward camera, still side by side. The shot ends with the three mid-stride and the open door behind them. The camera stays locked-off for the whole chapter — no push, no pan, no handheld sway. Sobaya moves as ONE continuous person and is never duplicated; in every frame his mask stays a hard white mask with two black eye holes and one mouth slit — NO human eyes, NO eyelids, NO realistic nose or lips — and his exposed skin stays neutral gray. Do NOT render any on-screen text — no subtitles, no captions, no lettering, no Japanese characters; the video must contain no text at all. Soundscape: a heavy steel door creaking open, three sets of footsteps on concrete, faint city traffic in the distance, a light breeze. Music: no background music.
この例の骨格(添付宣言→Style line→開始配置→ビート→セリフ→カメラ→終了状態→ガード→音)を全チャプターで守る。
script.md末尾に英語で必ず記載)## Generation & assembly protocol (REQUIRED — read before generating any chapter)
### Step 1 — Generate ALL chapters in one run, then verify EVERY chapter
Generate every chapter in one batch (one notebook run). After collecting the mp4s, verify ALL of the following on EACH chapter:
- [ ] No attached sheet is reproduced as a frame: no panels, no white sheet background, no labels or text anywhere
- [ ] The opening composition matches this chapter's "Opening composition" (shot size/angle, location, who stands where, held props, door/fixture state)
- [ ] The action beats happen in the written order and the shot ends in the written end state
- [ ] The dialogue is driven by the attached wav (correct voice, no synthesized or doubled voice); the CORRECT character lip-syncs and every non-speaker's mouth stays closed
- [ ] Every canon character matches their `*_sheet.png` item by item (canon checklist); every mob matches their `Mob_*_sheet.png` item by item (the run's mob PRESERVE list). A near-miss is a FAIL
- [ ] Every attached prop reference (`Prop_*.png`) is reproduced item by item (shape, colors, logo placement; crop and zoom the label — garbled lettering is a FAIL)
- [ ] Every attached location sheet (`Loc_*_sheet.png`) is reproduced item by item (furniture/fixture layout and colors), while time of day and light follow the Scene ledger, not the sheet
- [ ] Exactly the listed Cast appears, each EXACTLY ONCE, in EVERY sampled frame (sample at least 3 mid-chapter frames); nobody else enters
- [ ] Style is photorealistic live-action in every sampled frame, with only the exceptions the chapter's style line states
- [ ] Camera matches the Camera plan row; location, time of day and light match the Scene ledger; fixtures stay per the Fixture layout
- [ ] NO on-screen text; Soundscape/Music as written; duration equals the declared frame count (17k+5 grid)
If any check fails on a chapter, fix that chapter's prompt (or split the chapter) and regenerate ONLY the failed chapters (a `--fix` package limited with `--chapters`) until all pass.
### Step 2 — Prompts are verbatim
Copy each chapter's Motion prompt into the workflow JSON EXACTLY as written here (extract_prompts.py). Do NOT
summarize or shorten. If it seems too long, go back to the chapter plan and split the chapter.
### Step 3 — Final audio track (assembly)
DEFAULT: keep H3's embedded audio for every chapter (verified faithful to the attached wavs, 2026-08).
ONLY IF a chapter's audio shows degradation, doubling or a changed voice: strip the embedded audio on that chapter
and lay the original wav over the video, aligned to the frame where the speaker's mouth starts moving.
Play back the assembled video before delivery and confirm every line sounds like the local take.
python3 .claude/skills/no-image-video/validate_no_image_run_bundle.py 03_SCRIPTS/<NN>_<slug>
検証内容: chapter_plan.mdの全チャプターがAPPROVEDで番号がscript.mdと一致 / 使用する全Mob_*_sheet.pngがSheet: APPROVED、全Prop_*.pngがProp: APPROVEDで## Prop referencesに記載 / 全Loc_*_sheet.pngがLoc: APPROVEDで## Location referencesに記載 / script.mdがキーフレーム(chN_start/end.png)やラン外パスを参照していない / ## Character references・## Scene ledger・## Camera planがある / 全チャプターがR2Vで- Cast:がある / 添付画像が全て*_sheet.png・Prop_<slug>.png・Loc_<slug>_sheet.png・height_lineup.pngのいずれかで物理ファイルとして存在し、Cast・Props・Locationsと双方向に一致する(- Cast: noneの章は場所シートか小道具参照が必須) / 画像9・音声3・合計12以内、wavが2.0〜15.0秒 / Frames:が17k+5グリッド / Motion promptが全添付を再宣言し、必須句(Required attached input files:・NOT a composition reference・None of the attached pictures is a frame of this video・カメラ・EXACTLY ONCE・on-screen text・Soundscape:・Music:、セリフ章は(S1)/<d>[Japanese]/AS-IS、無音章はno speech)を含む / Castにいない正典キャラの名前がMotion promptに出ていない。
さらに、ワークフローJSONを作ったあと(ステップ7の2の直後)に台本との突き合わせを必ず通す:
python3 .claude/skills/no-image-video/check_workflows_match_script.py 03_SCRIPTS/<NN>_<slug>
検証内容: 各chN_workflow.jsonの<Picture N>のファイル名と接続順、<Audio N>、フレーム数、プロンプト本文がscript.mdの入力表とchN_prompt.txtに一致している。workflowの生成は手書きのシェルスクリプトになりがちで、シートの取り違えや順序ズレはキーフレームが無い本スキルでは生成物が返ってくるまで気づけない(<Picture N>の順序がプロンプト内のタグの意味を決めるため、入れ替わると全タグが別人を指す)。
検証が失敗したまま生成に進んだり完了報告したりしてはいけない。
python3 .claude/skills/local-video/extract_prompts.py 03_SCRIPTS/<NN>_<slug> でMotion promptを逐語抽出(chN_prompt.txt)。--imageの順序=<Picture N>):python3 .claude/skills/local-video/build_h3_workflow.py --mode r2v \
--out 03_SCRIPTS/<NN>_<slug>/ch2_workflow.json \
--prompt-file 03_SCRIPTS/<NN>_<slug>/ch2_prompt.txt --frames 141 \
--image Sobaya_sheet.png --image Mob_guards_sheet.png \
--audio ch2_line1_mob_guard_a.wav
/colab-videoの2章に従いbuild_h3_run_package.pyでバンドルzip+R2V用ノートブックを作ってユーザーに渡す(本スキルのランはR2Vのみなので<NN>_<slug>_h3_r2v.ipynb1本になる。直しが出たら--fixで修正版パッケージを作り直す=zip・ノートブック・Drive出力先が別名になる。validate_local_run_bundle.pyではなく本スキルの検証スクリプトを使う)。ローカルCUDA機なら/local-videoステップ7のh3_run.pyで回す。build_h3_run_package.pyは--chaptersを付けずに実行し、全チャプター入りのノートブックを渡す。ユーザーが明示的に「パイロットだけ先に」と頼んだときに限り--chapters chNで絞る。--fix --chapters chN,...の修正版パッケージで回し直す。/local-videoステップ8と同一(既定は埋め込み音声をそのまま使い、ffmpeg concat。VOICEVOX使用時はdrawtextでクレジット焼き込み)。つなぎ目はCUTなので絵飛びのチェックは「場所・時間帯・キャラの衣装が章間で変わっていないか」に絞る。
assemble.shはbash 3.2で書く(macOS標準のbashは3.2で、declare -A=連想配列が使えずinvalid optionで落ちる。実測済み)。チャプター→wavの対応はcase文にする。chN.mp4のパケット数がscript.mdのFrames:と一致しているか確認する(ffprobe -count_packets -show_entries stream=nb_read_packets)。ズレていればそのチャプターは生成し直し。ffmpegで各章の中間を抜き、tile=4x4で並べる)。画像なし制作では台本に無い物が湧くのが主な事故なので、章ごとに「指定した人数・車両数・画面内テキストの有無」を見る。実測(2026-09-29)では、1台だけと明示した章に2台目の車が出て読めるナンバープレートまで付き、別の章では指定していないのぼりに崩れた日本語が出た。サムネイルサイズでの判定は誤りやすい(モニター内のキャラを別人と誤認した)。怪しい箇所は必ずクロップして拡大してから判定する。chapter_plan.mdの全チャプターと全モブシートがユーザー承認済み(APPROVED)PRESERVE:を書き起こし、ユーザーが承認したcheck_workflows_match_script.pyがOK(ワークフローJSONと台本の突き合わせ)validate_no_image_run_bundle.pyがOK还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
窓際族物語の2Dゲームを新規作成し、Seedance(CapCut)で制作した動画をオープニング/イベントのカットシーンとして組み込むワークフロー。ユーザーから2Dゲームの制作を頼まれたとき、添付動画(mp4)をゲームに組み込む・差し替えるよう頼まれたとき、カットシーンの追加・修正を頼まれたときに必ず使用する。
中文简介正在准备中。当前显示原文说明。
Turn character reference images into reusable, rigged voxel 3D assets for Blender and Three.js through an imagegen turnaround and user-approval workflow. Use when Codex needs to preserve a character's likeness across front, side, and back views; create or revise Minecraft-like cube-headed models; prevent missing rear hair or clothing; split features between block geometry and face/clothing textures; generate GLB and editable .blend files; add walk/smash-compatible rigid-part pivots; or diagnose why a voxel conversion is not recognizable.
中文简介正在准备中。当前显示原文说明。
窓際族物語の動画生成工程(/local-videoのステップ7)だけをGoogle Colab(CUDA GPU)で実行する派生ワークフロー。ローカルMacにCUDA GPUが無くMiniMax H3を実行できないとき、ユーザーから「Colabで動画を作って」「H3をColabで回して」「LTXで動画を作って」と指示されたときに必ず使用する。台本・音声・キーフレーム生成・画像検証(ステップ1〜6)と最終結合(ステップ8〜9)はローカルで行い、動画生成だけを同梱ノートブック(H3=h3_colab.ipynb / LTX-2.5=ltx25_colab.ipynb)でColabに切り出す。セリフ(wav駆動リップシンク)はH3、セリフなしI2VチャプターはLTX-2.5も選べる。無料T4は配管検証用、本番生成はL4/A100(Pay As You Go / Colab Pro)。
中文简介正在准备中。当前显示原文说明。
動画制作スキル(/seedance・/local-video)で生成されたキーフレーム・参考画像を台本(script.md)と突き合わせて検証するワークフロー。プロンプトどおりの内容になっているか、小道具の状態(ビールの残量等)や機構小物の位置(ドアノブ・蝶番)が物理的に正しいか、場面の時間帯・天気が急変していないか(昼→夜ジャンプ等)をQwen3-VL(Ollama)とClaudeの目視の二重チェックで検証する。ユーザーから「画像を検証して」「キーフレームをチェックして」と指示されたとき、キーフレーム生成後の検証工程を実行するときに必ず使用する。
中文简介正在准备中。当前显示原文说明。
窓際族物語の動画をクラウドを使わずフルローカルで生成するワークフロー(MiniMax H3 + ComfyUI)。ユーザーから「ローカルで動画作成して」「ローカルLLMで動画を作って」と指示されたとき、MiniMax H3での動画生成・修正を頼まれたときに必ず使用する。台本→Irodori-TTS/VOICEVOX音声→draw-things-cliキーフレーム一括生成→Qwen3-VL(Ollama)による画像検証→チャプター毎のH3動画生成→ffmpeg結合まで全工程をローカルで完結させる。
中文简介正在准备中。当前显示原文说明。
Madogiwa StudioのRemote Web MCPを使い、窓際族物語のギャラリー、記事、エピソード、生成バージョン、使用モデル、登場メンバー、Seedanceプロンプト、入力画像・参照音声・資料、YouTube動画IDと公開状態を登録・確認する。ユーザーがMadogiwa Studioへの登録、公式サイトコンテンツ編集、動画アップロード、プロンプト同期、入力素材管理、Studio ID確認、MCP接続や同僚環境への導入を頼んだときに使用する。
中文简介正在准备中。当前显示原文说明。