2d-game
무료窓際族物語の2Dゲームを新規作成し、Seedance(CapCut)で制作した動画をオープニング/イベントのカットシーンとして組み込むワークフロー。ユーザーから2Dゲームの制作を頼まれたとき、添付動画(mp4)をゲームに組み込む・差し替えるよう頼まれたとき、カットシーンの追加・修正を頼まれたときに必ず使用する。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
窓際族物語のストーリー(あらすじ)からSeedance用の台本・動画生成プロンプト・セリフ音声(VOICEVOX/Irodori-TTSボイスクローン)・Codex参考画像を作成するワークフロー。
ユーザーからストーリーを渡されたとき、台本やSeedanceプロンプトの作成・修正を頼まれたとき、キャラのセリフ音声の生成を頼まれたとき、クリップの参考画像(キーフレーム)生成を頼まれたときに必ず使用する。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
ユーザーからストーリー(あらすじ)を渡されたら、以下の7ステップを一連の流れとして実行する。
script.mdに明記する動画生成はCapCutに統合されたSeedanceを使う。使用するSeedanceのバージョンはユーザーの指定が正(指定がなければ現行既定のSeedance 2.5を使う。使用バージョンはscript.mdのProduction intentに明記する。本スキル内の技法・制約は2.0時代の実測に基づくが、2.5でも同じ前提で運用する)。CapCutは開始フレームだけでなく「開始+終了フレーム(Frame A / Frame B)」入力に対応しており、両端を固定して間を補間させることで、単一フレーム/text-to-videoで起きるキャラのブレ(identity drift)・ちらつき・構図ズレを減らせる。さらに参照画像を多数渡してキャラの同一性を固定できる。本スキルはこの両方を最大限使う設計にする。中間キーフレーム入力は存在しないため、細かい動きの制御はクリップを短く割ることで代替する。
01_WORLD/WORLD_BIBLE.md02_CHARACTERS/*.md(各キャラのNG変更=デザイン上変えてはいけない要素に注意)02_CHARACTERS/VOICE_CAST.md(キャラ→VOICEVOX話者・スタイルIDの正典)03_SCRIPTS/「福ちゃん」は旧名で、現行の表示名は「福ギュン」。script.mdのセリフ・ナレーション・字幕・話者名・名札・画面に出る表記はすべて「福ギュン」で書く(ユーザーの指示に「福ちゃん」と書かれていても読み替える)。英語プロンプト内のキャラ名・ファイル名・参照画像名の Fukuchan / fukuchan は従来どおり維持する。過去ランの03_SCRIPTS/は当時の記録なので遡って直さない。詳細は02_CHARACTERS/05_Fukuchan.md冒頭とCLAUDE.mdを参照。
プロンプト(台本ファイル)と参考画像は、毎回そのラン専用の新しい1つのディレクトリにまとめて出力する。 従来のように台本を03_SCRIPTS/直下、画像を共有のref_images/に分散させない。
03_SCRIPTS/<NN>_<slug>/
<NN> は既存の連番の次の番号(03_SCRIPTS/直下・サブディレクトリの最大番号 + 1、ゼロ埋め2桁)。<slug> は内容が分かる英語の短い識別子(小文字・アンダースコア区切り。例: yametaro_43degrees)。script.md と、全クリップの参考画像 *.png を すべて同じ階層に 置く。画像用のサブディレクトリは作らない。clip1_01_ref.png)で書く。height_lineup.png、小道具・環境参照もすべて含む。 使用する参照画像を02_CHARACTERS/等からラン専用ディレクトリ直下へコピーし、ファイル名を維持する。正典ファイルは変更しない。script.mdでは同梱ファイルをbasenameだけで参照する(例: Sobaya_sheet.png)。../../02_CHARACTERS/Sobaya_sheet.pngのようなラン外への相対パスは禁止する。03_SCRIPTS/直下の古い成果物は移動・改変しない。この新ルールは新規ランから適用する。@ImageN参照するなら対象)。*_sheet.pngをラン専用ディレクトリ直下へコピーする。height_lineup.png等をCapCut入力で使う場合も同じ場所へコピーする。*_sheet.pngを全枚Readで開き、各キャラ設定md(02_CHARACTERS/0N_*.md)の「シート照合チェックリスト」と突き合わせて正典の姿を目に入れる(必須・省略禁止)。 同定句や記憶だけで台本・プロンプト・検証を書かない。シートを開かずに進めたランは未完成とする。script.md冒頭のCharacter referencesには同梱後のbasenameだけを書く。WORLD_BIBLE.mdのStory Formula(変なことを始める→巻き込まれる→少し騒ぎになる→最後は笑顔)と各キャラのNG変更を守りつつ、尺に応じてクリップ分割した台本+Seedanceプロンプトを 03_SCRIPTS/<NN>_<slug>/script.md に作成する。
WORLD_BIBLE.mdの禁止事項(ブラック企業描写、いじめ、パワハラ、鬱展開、グロ描写)を厳守する。
各クリップは開始状態(first frame)と終了状態(last frame)を明確に区別して書く。台本の各クリップに、次の2つを必ず記述する:
開始状態と終了状態だけを書いて間を生成モデルに任せると、両端は正しいのに途中が台本と違う動画になる(人物が勝手に増える、指示していない動作が挟まる、逆に何も起きないまま尺が過ぎる)。これを防ぐため、各クリップの動きを番号付きのビートに分解して書く。
Action beatsを書く。1ビート=1動作で、おおよその秒数を添える。「誰が・どこから・どこへ・どう」を書き、動作は「前状態→動作→後状態」の形にする(物理整合性ルールと同じ)。- Action beats:
1. (0–1.2s) The steel door swings open inward, away from camera.
2. (1.2–3.0s) Guard A steps out first, then Sobaya, then Guard B.
3. (3.0–4.5s) The three stop side by side with Sobaya in the MIDDLE; each guard rests one hand on his upper arm.
Beat 1 (0–1.2s): …の形でそのまま入れる(言い換えない)。validate_run_bundle.pyが各Motion promptに2つ以上の番号付きビートと秒数が入っていることを機械検証する。キーフレーム生成は1枚あたり数分〜十数分かかる(Codex/draw-things いずれも)。動きが違ったまま全クリップ分のキーフレームを作ると、そのまま作り直しになる。 そのため、ステップ3(キーフレーム生成)へ進む前に、全クリップのAction beatsを一覧にしてユーザーに提示し、確認を取る。
さらにつなぎ目を消すため、クリップNの Last frame と クリップN+1の First frame は同一の絵にする(後述のとおり同じ画像ファイルを共有する)。小道具の状態も同様に引き継ぐ(クリップNのLast frameの状態 = クリップN+1のFirst frameの状態。クリップをまたいで勝手に満杯に戻る/空になる等を起こさない)。
script.md の冒頭(クリップ一覧の前)に、状態を持つ小道具すべての通し状態台帳を表で書く。行=小道具、列=キーフレーム境界。クリップNのLastとクリップN+1のFirstは1つの列(セル)を共有させる(2箇所に別々の値を書ける構造にしない。これが食い違いの物理的な防止になる)。
| Prop | C1 start | C1 end = C2 start | C2 end = C3 start | C3 end = C4 start | C4 end |
|----------|----------|-------------------|-------------------|-------------------|--------|
| Beer mug | EMPTY | EMPTY | FULL (foam head) | ONE SIP LOWER | ONE SIP LOWER |
状態の指定がないと、生成モデルは典型絵に寄る(例:「beer glass」→満杯のグラス、「holding a beer bottle」→ラッパ飲み)。その結果「満杯のグラスにさらに注ぐ」「ラッパ飲みした瓶からグラスに注ぐ」のような非常識な動画になる。これを防ぐため:
Seedanceの1クリップは4〜15秒。動きが複雑・カメラワークが多いクリップは短く割る(中間キーフレーム入力が無いため、割ること自体が中間制御になる)。1本のプロンプトに詰め込みすぎない。
時間帯・光の指定がないと、生成モデルは場所の典型絵の時間帯に寄る(「izakaya」→夜の赤提灯、「office」→昼の白い光、「bar」→夜)。その結果、場所が変わった瞬間に時間帯まで勝手に変わる(過去に実際に発生: 昼の明るいオフィスでビールを飲むクリップの直後、場面転換先の居酒屋が夜景で生成され、4秒で昼→夜にジャンプする動画になった)。これを防ぐため:
script.mdの冒頭(Prop state ledgerの近く)に、場面の通し台帳(Scene ledger)を表で書く。 列=キーフレーム境界(Prop state ledgerと同じ列構造。クリップNのLastとクリップN+1のFirstは1つの列を共有)、行=Location / Time of day & light(必要ならWeatherも)。この台帳が場面情報の唯一の正となる。## Scene ledger (location & time of day across ALL clips)
| Scene state | C1 start | C1 end = C2 start | C2 end = C3 start | C3 end |
|---|---|---|---|---|
| Location | Office desk by the window | Office desk by the window | Izakaya entrance (exterior street) | Izakaya counter (interior) |
| Time of day & light | Bright midday daylight | Bright midday daylight | Bright midday daylight, sunlit street | Midday; daylight coming through the entrance |
カメラを設計しないと動画は退屈になる: 全クリップを "locked-off static camera" にすると監視カメラ的な定点映像の連続になり、かといって無指定はモデルが勝手にカメラを動かしてブレる。カメラワークは2層で設計する: (a) クリップ内のカメラムーブ(push-in等。キーフレーム両端に焼き込む)、(b) クリップ間のショット切り替え=カット(つなぎ目のフレーム共有をやめ、同じ瞬間を別アングルから描いた新しい開始フレームを作る)。
script.mdの冒頭(Scene ledgerの近く)に## Camera planセクションを表で書く(必須)。 行=クリップ。この表がカメラ情報の唯一の正であり、各クリップのFirst/Last frame記述・キーフレーム生成プロンプト・Motion promptのカメラ文はすべて該当行と一致させる。## Camera plan (shot list across ALL clips)
| Clip | Shot size & angle | Camera move (type + amplitude + speed) | Join from previous clip |
|------|-------------------|----------------------------------------|-------------------------|
| 1 | WIDE establishing shot, eye level | slow push-in, small amplitude | — (first clip) |
| 2 | MEDIUM two-shot, eye level | locked-off static camera | SHARED FRAME (continuous) |
| 3 | CLOSE-UP on Fukuchan, slight low angle | locked-off static camera | CUT (new angle, same moment) |
| 4 | WIDE shot, high angle | slow pull-back, medium amplitude | CUT (new angle, same moment) |
validate_run_bundle.pyが## Camera planセクションの存在と、各Motion prompt内のカメラ記述を機械検証する。位置の指定がないと、生成モデルはドアノブ・蝶番・取っ手などの動く建具・機構部品の位置を毎フレーム適当に描く。その結果「蝶番側にノブが付く」「ドアを閉めている最中はノブがあるのに、閉まった途端に消える」等の破綻が起きる(過去に実際に発生した)。これを防ぐため:
script.md冒頭(Prop state ledgerの近く)に機構レイアウト台帳(Fixture layout)を書く。 建具ごとに1行: カメラから見た蝶番側(LEFT/RIGHT)、ノブ/取っ手の位置(必ず蝶番と反対側の端・高さ)、開き方向(内開き/外開き・どちらへスイングするか)。この台帳は全クリップを通して不変であり、唯一の正とする。## Fixture layout (constant across ALL clips — hinges and handles never move)
| Fixture | Hinge side (from camera) | Handle | Opens |
|---------|--------------------------|--------|-------|
| Entrance door | LEFT edge | silver lever handle on the RIGHT edge (opposite the hinges), mid-height | inward, swinging toward camera-left |
Seedanceは複数人が映るクリップでのリップシンクの話者割り当てが弱い(2.0時代に公式にも未解決の課題とされ、実際に「福ギュンの音声でやめ太郎の口が動く」取り違えが起きた。2.5でも同じ前提で運用する)。これを防ぐため:
(S1)/(S2))を各話者に振り、Motion prompt内でその話者に言及するたびに同じIDを添える(公式H3ガイドの話者ID記法。@メンション+同定句への追加の保険。クリップ内でIDを振り直さない。例: "Fukuchan (@Image3, the slim stylish black-haired man) (S1) speaks first; Yametaro (@Image4, the chibi man with round glasses) (S2) replies")。それでも取り違えが出たら迷わずクリップを割る。Seedanceは「話す」と指示されたキャラの口をクリップ全体にわたって動かしがちで、クリップ尺が発話の長さより大幅に長いと、発話の前後で無意味な口パクが空回りする。これを防ぐため:
script.md は全文を英語で書く。 Seedanceに渡すプロンプト(コードブロック)だけでなく、見出し・尺やアスペクト比の説明・「画面内容」「カメラ」「音」「生成メモ」などの人間向け解説も含めて、すべて英語で記述する。
例外として英語以外を使ってよいのは次のみ:
"..." で引用して埋め込む(例: shouting "島流し一択やろ!")。ナレーションや画面内の指定文字(温度計の「43℃」など)も同様に、実際に表示・発話される言語のまま引用する。理由: 日本語の説明文はSeedanceでの再現精度が落ちること、および成果物を言語横断で扱いやすくするため。
Seedanceはプロンプト内の日本語セリフ引用や添付音声につられて、指示していない字幕・キャプション・日本語(風)の文字を勝手に画面へ描画することがある。これを防ぐため:
音の指定がないと、生成モデルが環境音・BGMを勝手に選ぶ(場違いな音楽、不自然な無音、セリフに被る劇伴等)。公式MiniMax H3プロンプトガイド(h3-prompt-writing)の「音を2系統に分けて書く」形式を採用し、全クリップのMotion promptの末尾に次の2つを必ず入れる:
Soundscape:(画面内の音): 環境音・動作音を1〜2文の英語で具体的に書く(例: "Soundscape: quiet office room tone, distant keyboard clatter, the soft clink of the glass mug being set down")。セリフはここに再掲しない(セリフは本文の話者バインディングで指定済み)。Music:(劇伴=画面外の音楽): 有無を必ず明示する。BGMは原則Seedanceに生成させず、必要ならCapCutで後載せするため、既定は "Music: no background music"。生成音に劇伴を含めたいクリップだけ、楽器・テンポ・リズム・強弱で具体的に書く(例: "Music: light ukulele and acoustic guitar, medium tempo, playful staccato rhythm, quiet under the dialogue")。"happy vibes"のような抽象的なムード語だけの指定は禁止。validate_run_bundle.pyが各Motion prompt内のSoundscape:とMusic:の記載を機械検証する。
画風は思い込みで決めず、そのランに登場する全キャラの*_sheet.pngと直近ランのキーフレームをReadで開いて確認してから、そのラン全体の画風固定文(Style block)を英語1行で確定する。このIPの確立した画風は「アニメ絵」ではない: 窓際メンバーの多くは実写写真ベースのシートで、実写調の空間にそのまま同居させ、無職やめたろうだけがマットな3Dチビ人形として描かれる。シートが実写写真のキャラにanime illustration/cartoon style等を宣言してはいけない(過去に実際に発生: 参照シートは実写なのに台本冒頭でanime illustration lookと宣言し、かつ各プロンプトに画風の句を入れなかった結果、キーフレームチェーンがアニメ調で始まりシートに引かれて実写調へ18クリップかけてドリフトし、1本の動画の中で画風が変わってしまった)。
script.mdの冒頭(Scene ledgerの近く)に## Style blockセクションを置き、画風固定文を1行で書く(箇条書きにせず地の文1行。逐語一致の機械検証対象になるため改行で分割しない)。validate_run_bundle.pyが## Style blockセクションの存在と、各Motion promptへの画風固定文の逐語埋め込みを機械検証する。キャラの見た目の正は02_CHARACTERS/<キャラ名>_sheet.png(キャラクターシート)であり、記憶でも同定句でもない。 同定句("a white mask with red markings"等)は短い要約にすぎず、これだけでプロンプトを書くとモデルが空白を勝手に埋める(実測: そば屋の仮面が「人間の顔+白い顔ペイント+赤いライン2本」になり、目穴・口のスリット・マーキング本数が全部変わった)。
*_sheet.pngをReadで開く(ステップ0の同梱手順4)。script.mdの## Character referencesに、キャラごとのPRESERVE:列を書く。内容は各キャラ設定mdの「シート照合チェックリスト」からシートで実際に確認した特徴を英語へ落とす(形状・個数・色・配置まで数えて書く。「red markings」ではなく "four red vertical markings, two flanking each eye, plus a small black dot centered on the forehead")。あわせてdo NOT carry over:にシートのポーズ・パネルレイアウト・文字ラベル・背景を書く。PRESERVE:列を入れる。 要約・言い換えは禁止(ステップ3・4の逐語ルールと同じ)。人数の指定がないと、生成モデルは登場・退場・受け渡し・出入りの動作を**「もう1人生やす」ことで補間する**ことがある(過去に実際に発生: 「そば屋がボトルを受け取って土に還る」クリップで、立ったままのそば屋と土に潜るそば屋の2人が同時に生成され、瓶まで増殖した。キーフレーム両端は正しくても、間の補間で複製が起きる)。これを防ぐため:
ステップ2で生成する音声ファイル(キャラごとにVOICEVOXまたはIrodori-TTS。配役はVOICE_CAST.mdが正)は、**Seedanceに渡すボイスサンプル(声質・話し方・セリフ内容の参照)**である。最終動画のセリフ・ナレーション音声はSeedanceが動画と一緒に生成する(口の動きは自身が生成する音声に自然に同期するため、リップシンクのずれが起きにくい)。正典キャラ(VOICE_CAST.mdに配役があるキャラ)のセリフでサンプル音声の生成・添付を省略し、声の指定なしにSeedance任せにすることは禁止(クリップごとに声質がブレるため)。ユーザーから別途音声ファイルが渡された場合は、そのクリップに限りユーザー提供の音声をサンプルとして優先する。
例外 — モブキャラの音声(サンプル添付なしを許可): VOICE_CAST.mdに配役の無いモブキャラ・その場限りのキャラ(通行人・店員・群衆・アナウンス等)のセリフや鳴き声は、ボイスサンプルなしでSeedanceに直接生成させてよい。その場合は次を守る:
No audio file attached; generate speech directly from the Japanese text in the motion prompt。ナレーションも声も無いクリップは No audio file attached; no voice, narration or caption readout)。validate_run_bundle.pyはSeedance-generatedまたはNo audio file attachedで始まるAudio宣言を「添付なしで正」と扱う。VOICE_CAST.mdに配役を追加し、正典キャラと同じサンプル運用に昇格させる。生成したサンプル音声はSeedance(CapCut)生成時に添付ファイルとして渡し、「この声・この話し方でこのセリフを発話させる」よう指示する。
(spoken in the voice of the attached sample @AudioN — Seedance generates the actual voice) を付ける。モデルはキャラ名を知らないため、名前だけ書くと別のキャラの口が動く取り違えが起きる。セリフのあるクリップでは以下を必ず行う:
@Image1/@Audio1のようにプロンプト内で参照し役割を指定できる。Motion promptで音声サンプルと参照画像を明示的に結びつける: "ONLY Fukuchan (@Image3, the stylish man in the ...) speaks, in the voice of the sample @Audio1"。02_CHARACTERS/0N_*.md)の「プロンプト用同定句(英語):」を正典として使い、クリップごとに言い換えない(表記ゆれ自体が取り違えの原因になる)。script.md のCapCut inputs表に Audio 行を追加し、添付する音声ファイル名と「ボイスサンプルとしてSeedance生成の入力に添付する」ことを明記する(記載例は後述)。script.mdに記載する。台本が完成したら、台本中のすべてのセリフ・ナレーションの音声をローカルで生成し、ラン専用ディレクトリに保存する(例外: VOICE_CAST.mdに配役の無いモブキャラのセリフは、ステップ1「セリフ音声の扱い」のモブ例外に従いサンプルなしでSeedance直接生成にしてよい。その場合ローカル生成は不要)。このwavはSeedance(CapCut)生成時にボイスサンプルとして添付し、Seedanceにその声・話し方でセリフ音声を生成させる(最終音声は生成された動画側が正。サンプルとの尺差は許容する)。
音声は2段階で作る: まず各セリフの候補として等速と1.5倍速の2テイクを生成してユーザーに聴いて選んでもらい、採用テイクが確定してから最終ファイル(正式名のwav)を用意する。ユーザーの確認が取れるまで、最終ファイルの作成と以降の工程(キーフレーム生成・CapCut入力表の完成)へ進んではいけない(クリップ尺Durationは採用音声の実測長に依存するため、先に進むと手戻りになる)。
02_CHARACTERS/VOICE_CAST.md が唯一の正。この表にない声を勝手に割り当てない。Yumemin_voice.wav)はIrodori-TTSのボイスクローンで生成する。参照音声は02_CHARACTERS/<キャラ>_voice.wav(各キャラ設定ファイルの「声ファイル:」に記載)。事前学習は不要で、合成のたびに参照音声を渡すゼロショット方式。Yumemin_voice.wav)。1クリップ内のセリフ1つ(1人の連続した発話)につき、まず等速と1.5倍速の2候補を生成する。候補ファイル名はclipN_lineM_<char>_1.0x.wav / clipN_lineM_<char>_1.5x.wav。エンジンに応じて同梱スクリプトを使い分ける:
# Irodori-TTSのキャラ(そば屋・福ギュン・やめたろう・おかやまん・よーたん)
.claude/skills/seedance/irodori_speak.sh "セリフテキスト" 03_SCRIPTS/<NN>_<slug>/clipN_lineM_<char>.wav 02_CHARACTERS/<キャラ>_voice.wav [シード値] [話速倍率]
# そば屋のみ: クローン生成後にモンスターボイス加工を必ずかける(in-place。VOICE_CAST.md参照)
.claude/skills/seedance/sobaya_monsterize.sh 03_SCRIPTS/<NN>_<slug>/clipN_lineM_sobaya.wav
# VOICEVOXのキャラ
.claude/skills/seedance/voicevox_speak.sh "セリフテキスト" 03_SCRIPTS/<NN>_<slug>/clipN_lineM_<char>.wav <スタイルID> [話速]
(等速実測長 − 0.3) ÷ 1.5 + 0.3 秒(トリムが残す前後の無音約0.3秒は速度に関係なく一定なので、発話部分だけを1.5倍速換算する。例: 等速1.22秒 → 0.91秒)。VOICEVOXは第4引数の話速1.5で作る。~/voicevox_engine/)。Irodori-TTSは~/irodori_ttsに設置済みであること(無いマシンではスクリプトのエラーメッセージに従い最新版をセットアップする。1文あたり数十秒〜数分かかる)。irodori_speak.shが実行時に上流(GitHub)を確認し、コードの新バージョンが公開されていれば自動で更新する(チェックは24時間に1回)。使用モデルはプロジェクト正典のAratako/Irodori-TTS-v4-Large(3.29Bパラメータ。2026-09-29にユーザー指定。初回は約12GBダウンロード、MPS/fp32でM4 Max実測1文あたり約25秒)で、スクリプトの既定値として固定している。モデルが変わるとシードによる過去テイクの再現はできなくなるため、過去ランのテイク(v4.1-Small等で生成したもの)を再現したいときはIRODORI_TTS_CHECKPOINT=<当時のモデル>(Dialogue audio表のmodel記録参照)を指定して実行する。自動更新を止めたいときはIRODORI_TTS_NO_UPDATE=1。v4-LargeはGemma Terms of Use(なりすまし・ディープフェイク禁止)が適用されるため、参照音声はVOICE_CAST.mdの本人同意の範囲でのみ使う。clipN_lineM_<char>_1.0x.wav / clipN_lineM_<char>_1.5x.wav、確定後の最終ファイルはclipN_lineM_<char>.wav(N=クリップ番号、M=クリップ内の発話順、char=キャラ名小文字。例: clip1_line2_sobaya.wav)。台本ファイル・画像と同じ階層に置く。script.mdのDialogue audio表に記録しておくと再現できる。infer.pyの--duration-scale=1/倍率に変換され、モデル自体が早口で生成するためピッチは変わらない)。テンポの良い掛け合いは1.2前後が目安。1.5以上は不自然になりやすいので、聴いて確認してから採用する。使った倍率はシードと同様にDialogue audio表へ記録する(例: seed 42, speed 1.2x)。--secondsに渡り、話速倍率より優先。第5引数は""で飛ばす)。指定値は (等速実測長 − 0.3) ÷ 欲しい倍率 + 0.3 秒。例: 等速1.22秒を1.5倍速にする → irodori_speak.sh "セリフ" out.wav ref.wav 7 "" 0.91。使った尺はDialogue audio表へ記録する(例: seed 7, seconds 0.91)。script.mdのDialogue audio表に記録する。クリップ尺はセリフの合計時間より長くしつつ、「音声wavの合計長+約1秒」を目安に詰める(ステップ1「リップシンク精度ルール」参照)。尺に収まらない場合はクリップを延ばすか、話速を上げる(VOICEVOXは第4引数、Irodori-TTSは第5引数)。clipN_lineM_<char>.wav にコピーして最終ファイルとする。Irodori-TTS (Irodori-TTS-v4-Large, ref: Yametaro_voice.wav, seed 7, seconds 0.91)。modelはirodori_speak.shのOK行に出力される。モデルが変わるとシード再現ができないため必ず残す)。_1.0x.wav / _1.5x.wav)はラン専用ディレクトリから削除する(CapCut入力表が参照しないファイルを成果物に残さない)。script.mdの冒頭(Prop state ledgerの近く)に、全セリフの通し表を書く(英語。セリフ本文のみ日本語のまま):
## Dialogue audio (voice SAMPLES pre-generated locally — attach to Seedance, which generates the actual dialogue voice; the video's audio is final)
| File | Clip | Character | Voice (engine) | Line (ja) | Duration |
|------|------|-----------|----------------|-----------|----------|
| clip1_line1_sobaya.wav | 1 | Sobaya | Irodori-TTS (Irodori-TTS-v4-Large, ref: Sobaya_voice.wav, seed 42) + monsterize | 快適です! | 1.8s |
| clip1_line2_yotan.wav | 1 | Yotan | VOICEVOX (style 100) | ロックだぜ。 | 1.5s |
VOICEVOXの利用規約により、VOICEVOXの声を1つでも使った動画には、動画内(画面内)に使用キャラクターのクレジット表記を必ず入れる(概要欄だけで済ませない)。ボイスサンプルとして使った場合も対象とする(最終音声がSeedance生成でも、その声はVOICEVOX話者由来のため)。
script.md末尾に ## Credits セクションを必ず書き、使用したVOICEVOX話者の一覧を記載する(例: VOICEVOX:白上虎太郎 / VOICEVOX:ずんだもん。話者名の対応はVOICE_CAST.md参照。Irodori-TTSのキャラはクレジット不要)。On-screen credit (add in CapCut as end-card/overlay text): VOICEVOX:白上虎太郎 / VOICEVOX:ずんだもん)。Seedance用プロンプトを作成したら、codex CLIの画像生成ツールで各クリップの開始フレームと終了フレームの2枚を生成し、ステップ0で作成したラン専用ディレクトリに保存する。これがSeedanceの First-Last-Frame 入力にそのまま渡る本番アセットになる。
clipN_start.png / clipN_end.png(Nはクリップ番号)。03_SCRIPTS/<NN>_<slug>/ 内。台本ファイルと同じ階層に置く。キーフレーム同士が食い違うとSeedanceの補間がモーフィング崩壊を起こすため、必ず前の絵を種にして次の絵を作る(ゼロから独立生成しない)。
-iで渡して生成する(構図はCamera planの該当行のショットサイズ・アングルで指定する)。-iに加えてimg2img生成する(キャラ参照画像も引き続き渡す)。カメラが静止のクリップは「同じ絵のまま、状態だけ終了状態に変える」。カメラムーブのあるクリップは、構図もムーブ終了位置へ変える(例: push-inなら「同じシーンを一歩寄ったMEDIUM shotで」)— 変えるのは Camera plan が指示する構図差+動きが変える部分だけで、それ以外(キャラ・画風・光・場所・小道具の状態)は維持する。SHARED FRAMEのとき)。ここは新規生成せず同じ画像ファイルをコピー/参照して共有する(つなぎ目消し)。Join列がCUTのクリップは共有せず、前クリップの終了フレームを種に「THE SAME scene at THE SAME moment, rendered from a NEW camera position: <新しいショットサイズ・アングル>」で新規生成する(時間経過ゼロ: 小道具の状態・時間帯・キャラの位置関係は種画像と完全に同一に保つ)。CUTのクリップ)に限り「広い終了フレームを先に生成→開始フレームをクロップで切り出す」が使える。開始フレームが前クリップとの共有で固定済みのpull-backは、広い終了フレームを開始フレーム種のimg2img(引きの構図へ変える編集)で生成する — 種画像に無い周辺を描き足す編集は崩れやすいので、崩れる場合はpull-backをCUT境界に移すか設計を見直す。-iで渡す。各キャラの第一参照はキャラクターシート02_CHARACTERS/<キャラ名>_sheet.png(シートの構成はキャラごとに違うので、何が載っているかは各キャラ設定mdの「キャラクターシート:」行で確認する。多面図+NG要素クローズアップ+表情差分+身長比較+カラーパレットの全部入りもあれば、実写4パネル同定シート(福ギュン)、四面図+口形差分(やめたろう)、基準ポーズ+三面図+クローズアップ(たこさん)のように一部だけのものもある)。多面図は横顔・後ろ姿・振り向きのカットで、クローズアップはNG要素(仮面・触手・ウクレレ等)の維持に、表情差分は演技時の顔崩れ防止に効く。シートに身長比較が無いキャラは02_CHARACTERS/height_lineup.pngで体格差を補う。単体参照画像(「画像ファイル:」記載)は、シートで再現が甘い場合に追加で渡す。codex exec -iにも同梱コピー(03_SCRIPTS/<NN>_<slug>/<Name>_sheet.png)を渡す。正典パスを直接使って同梱確認を迂回しない。開始フレーム:
codex exec -s workspace-write --enable image_generation \
-i 03_SCRIPTS/<NN>_<slug>/Sobaya_sheet.png -i 03_SCRIPTS/<NN>_<slug>/Tokun_sheet.png -i 03_SCRIPTS/<NN>_<slug>/Yotan_sheet.png -i 03_SCRIPTS/<NN>_<slug>/Fukuchan_sheet.png -i 03_SCRIPTS/<NN>_<slug>/Yametaro_sheet.png \
"Use your image generation tool to create the FIRST-FRAME still of a video shot. Input images Image 1..5 are character sheets (front/side/back turnarounds of each character; Sobaya: keep face/mask/build; Tokun: keep aloha/hat/ukulele; Yotan: keep blond/guitar/rock outfit; Fukuchan: keep stylish outfit; Yametaro: keep design) — identity/design references only, keep every face/design and NG-change element consistent. Prompt: <English scene description of the clip's START state, excluding dialogue and camera-work notation>. <the run's Style block line, verbatim from ## Style block>. Single still frame, no text overlay. Save as 03_SCRIPTS/<NN>_<slug>/clip1_start.png."
終了フレーム(開始フレームを種にする):
codex exec -s workspace-write --enable image_generation \
-i 03_SCRIPTS/<NN>_<slug>/clip1_start.png \
-i 03_SCRIPTS/<NN>_<slug>/Sobaya_sheet.png -i 03_SCRIPTS/<NN>_<slug>/Tokun_sheet.png -i 03_SCRIPTS/<NN>_<slug>/Yotan_sheet.png -i 03_SCRIPTS/<NN>_<slug>/Fukuchan_sheet.png -i 03_SCRIPTS/<NN>_<slug>/Yametaro_sheet.png \
"Use your image generation tool to create the LAST-FRAME still of the same shot. Image 1 is this clip's start frame — keep the same characters, art style, lighting and location. <if the Camera plan row is static: 'Keep the framing identical; change ONLY what the motion changes.' / if the camera moves: 'Reframe to the camera's END position per the Camera plan — e.g. the same scene from slightly closer, MEDIUM shot on Sobaya — and change ONLY that framing plus what the motion changes.'> Images 2..6 are character sheets (front/side/back turnarounds) — identity/design references only, keep every face/design and NG-change element consistent. Prompt: <English scene description of the clip's END state>. <the run's Style block line, verbatim from ## Style block>. Single still frame, no text overlay. Save as 03_SCRIPTS/<NN>_<slug>/clip1_end.png."
--enable image_generation と、プロンプト内での明示的な "Use your image generation tool" を必ず両方指定する(省くとPythonの簡易描画にフォールバックすることがある)。-iの先頭に入れ、「framing/lighting/locationは維持、動きが変える部分だけ変更」と指示する。これが崩壊防止の肝。*_sheet.pngをReadで開いた状態でキャラ同一性を照合する(必須・最優先)。 照合項目は各キャラ設定md(02_CHARACTERS/0N_*.md)の「シート照合チェックリスト」の全項目。生成画像を眺めて「だいたい合っている」で通さず、項目を1つずつ読み上げてPASS/FAILを付ける。1項目でもFAILなら、その場でチェーンを止めて再生成する(崩れたフレームを種にすると下流が全部崩れる)。実測の崩れ方(この順で疑う):
## Style blockの1行・逐語)・画面内の人数指定をそのまま含める。生成後は各画像をReadで開き、小道具の状態がProp state ledgerの該当セルと一致しているか、建具の蝶番・ノブがFixture layoutどおりの側にあるか、時間帯・照明がScene ledgerの該当セルと一致しているか、構図(ショットサイズ・アングル)がCamera planの該当行と一致し、ムーブのあるクリップは開始/終了フレームの構図差がムーブどおりか(push-inなのに同一構図になっていないか、逆に振幅が大きすぎて別シーンに見えないか)、人物数が台本と一致し同一キャラが重複していないか、画風がクリップ1の開始フレームと揃っているか目視確認する(例: 開始フレームのグラスが空であるべきなのに満杯で描かれていないか、瓶に口をつけていないか、閉まったドアのノブが蝶番側に付いたり消えたりしていないか、昼の場面なのに夜景・夜空で描かれていないか、アニメ調で始まったチェーンが実写調に変わっていないか)。ズレていたら再生成する。キーフレームが間違っているとSeedanceは間違った状態間を忠実に補間してしまう。03_SCRIPTS/<NN>_<slug>/ 配下。全クリップのキーフレームが出揃ったら、CapCutで1本も動画を生成する前に共通スキル /image-validation(.claude/skills/image-validation/SKILL.md)を実行する。キーフレームの誤りはSeedanceが忠実に補間・増幅するため、ここで潰さないと動画側では直せない。
03_SCRIPTS/<NN>_<slug>/の全clipN_start.png/clipN_end.png。/image-validationのステップ2の全観点に加えて、そのフレームに映る全キャラの「シート照合チェックリスト」(各キャラ設定md)を1項目1行で必ず展開する。「NG要素があるか」という粗い1行にまとめない。fix_list.md確定 → 上流から再生成 → 該当フレームだけ再検証、で閉じる)。/image-validation冒頭の規定と同じ)。動画生成はCapCutに統合されたSeedance(ユーザー指定のバージョン。指定がなければ現行既定の2.5)で行う。CapCutは開始フレーム(Frame A)と終了フレーム(Frame B)のデュアル参照に対応し、参照画像も多数渡せる。script.mdの各クリップに、CapCutの各スロットへ何を渡すかの対応表を必ず書く(ユーザーがそのまま設定できるようにするため)。
各クリップの記載例(英語で書く):
### CapCut inputs (Clip 1)
- Start frame (Frame A): clip1_start.png
- End frame (Frame B): clip1_end.png
- Reference images (identity lock — one line per file so CapCut slot numbers map to characters):
- @Image1 = Sobaya_sheet.png → Sobaya (the hulking 180cm/100kg masked man)
- @Image2 = Tokun_sheet.png → Tokun (the chubby 165cm man in straw hat and aloha shirt)
- @Image3 = Yotan_sheet.png → Yotan (the slim 170cm blond rocker)
- @Image4 = Fukuchan_sheet.png → Fukuchan (the slim stylish 170cm man in a black long coat)
- @Image5 = Yametaro_sheet.png → Yametaro (the chibi cartoon man with round glasses)
- Motion prompt: <the clip's Seedance prompt — describe the motion BETWEEN the two frames as explicit state transitions (e.g. "pours beer into the EMPTY glass until it is full; no one drinks from the bottle"); camera written as type + amplitude + speed (or "locked-off static camera"), matching this clip's Camera plan row; dialogue kept in original language; end with the sound design lines "Soundscape: <ambient/action sounds>" and "Music: no background music">
- Duration: 5s / Aspect: 16:9
script.mdのMotion promptがCapCutに入力される最終文字列そのものであり、生成実行者(人間・エージェント問わず)が独自に圧縮・言い換えしてはならない(過去に要約で開始/終了状態・プロップ・NG変更の制約が欠落し、整合性が崩れた)。プロンプトが長すぎて入らない・守られない場合は、要約するのではなく台本に戻ってクリップを分割し、1本あたりの情報量を減らす。Beat 1 (0–1.2s): …の形で順番どおり入れる(ステップ1「アクションビート」参照)。台本のAction beatsと同じ内容・同じ順序にし、言い換えない。validate_run_bundle.pyが2つ以上の番号付きビートと秒数の記載を機械検証する。validate_run_bundle.pyがこの記載("on-screen text"への言及)を機械検証する。validate_run_bundle.pyが## Scene ledgerセクションの存在と、各Motion prompt内の時間帯語(daylight/daytime/midday/night等)を機械検証する。Soundscape:とMusic:)を必ず入れる(ステップ1「音響設計ルール」参照)。既定は "Music: no background music"。validate_run_bundle.pyが両方の記載を機械検証する。## Style blockの1行)を一字一句同じ文で入れる(ステップ1「画風固定ルール」参照)。validate_run_bundle.pyが逐語一致を機械検証する。## Camera planの該当行と一致させる(記法は公式H3プロンプトガイド由来): 例 "the camera pushes in with small amplitude at slow speed"、"slow lateral tracking shot, small amplitude"。使える種類の語彙: push in / pull back / pan left・right / tilt up・down / lateral tracking / orbit (arc) / crane up・down / subtle handheld sway。"dynamic camera"のような曖昧語だけの指定はしない。カメラを動かさないクリップは "locked-off static camera" と明示する(無指定だとモデルが勝手にカメラを動かす)。全クリップをlocked-off staticにしない(ステップ1「カメラワーク設計ルール」の単調防止原則)。カメラ文はキーフレーム両端の構図差と必ず一致させる(両端が同一構図なのにpush-inを書かない、構図が違うのにstaticを書かない)。validate_run_bundle.pyが各Motion prompt内のカメラ記述を機械検証する。02_CHARACTERS/<キャラ名>_sheet.pngを第一に使う(複数アングル+NG要素クローズアップ+表情/口形差分を1枚で渡せるため、横顔・後ろ姿・演技でのidentity driftに強い。収録内容はキャラごとに違うので各キャラ設定mdの「キャラクターシート:」行で確認する)。プロンプトには "Image N: <name>'s character model sheet — turnaround, detail close-ups and expressions of the SAME character, identity/design reference only, NOT a composition reference" のように役割を明記する。参照は画風の揃ったものだけを混ぜる(実写写真とアニメ調シートを同時に渡すと折衷して顔が変わるため、原則シート側に統一する)。02_CHARACTERS/0N_*.md)の「プロンプト用同定句(英語):」が正典。年齢・身長・体格などの設定はシート画像に文字で書き込まず、この同定句としてプロンプト側で渡す(画像内の文字は動画に漏れて崩れるリスクがあり、モデルも文章仕様を確実には読まないため)。@ImageNを列挙する:Required attached reference files: @Image1 = Sobaya_sheet.png — Sobaya's character model sheet, identity/design reference only, NOT a composition reference; @Image2 = Yotan_sheet.png — Yotan's character model sheet, identity/design reference only, NOT a composition reference. These reference attachments are REQUIRED inputs and must remain attached for this generation.
@ImageNを使う場合、その同じプロンプト内のRequired attached reference files:行に、@ImageN = 実ファイル名と役割が必ず存在しなければならない。名前+外見同定句だけでは添付宣言の代用にならない。02_CHARACTERS/height_lineup.png(全キャラ横並び・文字なし)をスケール参照として追加で渡してよい。プロンプトに "@ImageN is the height/scale reference for relative body sizes — NOT a composition reference" と役割を明記する。04_GAME_ASSETS/voxelの該当キャラGLBをThree.jsで動かして書き出した短い動画(webm/mp4、合計15秒以内)をモーション参照として追加で渡す(Seedanceは動画参照に対応)。構図とキャラはキーフレームで固定したまま、動きだけ正確になぞらせられる。この参考動画をCodexに作らせることは禁止(Codexの担当は静止画キーフレームのみ)。ユーザーから明示的に依頼されたときに限り、Codex以外の手段(Three.jsレンダリング等)で作成する。Audio 行を追加し(ステップ2で生成したサンプル音声ファイルをクリップ内の発話順に列挙)、ボイスサンプルとしてSeedance生成の入力に添付する。Motion promptにサンプル参照の指示(声・話し方をサンプルに合わせて生成させる)を含める:- Audio: `clip1_line1_fukuchan.wav` (@Audio1 — Fukuchan's voice sample) — attach to Seedance as a VOICE SAMPLE; Seedance generates the dialogue voice to match this sample
- Motion prompt: <... ONLY Fukuchan (@Image3, the stylish man in the green jacket) speaks the line, in the voice of the attached sample @Audio1 — match its voice, tone and speaking style; he begins the line almost immediately, and his mouth moves ONLY while delivering the line; once the line ends his mouth stays CLOSED for the rest of the clip; Yametaro (@Image4) does NOT speak — his mouth stays CLOSED, he only listens; @Audio1 is a VOICE SAMPLE (reference for the voice), not the final audio track — no narration, no other voices>
話者バインディング(@メンション+見た目の同定句+非話者の口閉じ指示)はステップ1「話者バインディング」のルールに従い、セリフのある全クリップのMotion promptに必ず入れる。1クリップ1話者の原則(話者交代でクリップを割る)もここで守られていること。
VOICEVOXの声を使ったランでは、対応表の末尾(全クリップの後)に動画内クレジットの指示を必ず書く(ステップ2の「VOICEVOXクレジット表記」参照)。CapCutでの最終組み立て時に、エンドカードまたはテキストオーバーレイで VOICEVOX:話者名 を動画内に表示させる:
### Credits (REQUIRED — add in CapCut before export)
- On-screen credit text (end-card or overlay on the final clip): VOICEVOX:白上虎太郎 / VOICEVOX:ずんだもん
- Add this with CapCut's text tool — do NOT render it via Seedance/keyframe images.
過去のランで「12本を一括生成して尺・音声の検証を挟めない」「プロンプトの要約で制約が欠落する」「クリップ尺が発話より大幅に長く、発話の前後で口パクが空回りする」失敗が起きた。再発防止のため、script.mdの末尾(Creditsの前)に以下のプロトコルをそのまま(英語で)記載する。CapCutで生成・編集する実行者(ユーザー・エージェント問わず)はこれに従う。
## Generation & assembly protocol (REQUIRED — read before generating anything in CapCut)
### Step 1 — Pilot clip first (batch generation is FORBIDDEN until the pilot passes)
Generate ONLY Clip 1, then verify ALL of the following before touching any other clip:
- [ ] The dialogue voice is generated by Seedance and matches the attached voice sample (same character voice and speaking style; no doubled voices, no second voice track)
- [ ] The CORRECT character speaks each line (the speaker named in the prompt moves their mouth; every non-speaker's mouth stays closed)
- [ ] Mouth motion starts and ends WITH the generated speech: no lip-flap before the line starts or after it ends
- [ ] EVERY character matches their character model sheet in EVERY frame — open the `*_sheet.png` files alongside the clip and check the `PRESERVE:` list item by item (mask construction and marking count, hair present from every angle including the back of the head, skin tone, body build and height ratio, exact outfit, signature prop). A near-miss is a FAIL: masks must not turn into painted human faces, and NG-change elements must not vanish in profile, rear or wide shots
- [ ] Motion, poses and prop states match the Motion prompt and the Prop state ledger
- [ ] Camera work matches the clip's Camera plan row: a static clip stays locked-off (no drift, no spontaneous camera motion), a moving clip actually performs the specified move at the specified amplitude and speed, and the final framing lands on the end keyframe
- [ ] Location, time of day and lighting match the Scene ledger in EVERY frame — no unexplained day-to-night (or night-to-day) jump anywhere in the clip, including during location transitions
- [ ] NO on-screen text appears that the script did not explicitly call for — no spontaneous subtitles, captions, or Japanese lettering anywhere in the clip
- [ ] Ambient sound and music match the prompt's Soundscape/Music lines — no unrequested background music, no out-of-place ambience
- [ ] Hinges, handles and other fixture hardware stay on the edges given in the Fixture layout table in EVERY frame (handles never disappear, jump to the hinge side, or duplicate — especially when a door finishes closing)
- [ ] Every named character appears EXACTLY ONCE in EVERY frame — no duplicated characters and no extra copies of props, especially during appear/disappear/handoff actions (correct keyframes do NOT guarantee this; duplicates can appear mid-interpolation)
- [ ] The art style matches the run's Style block and both keyframes, and stays consistent through the whole clip (no drift between anime-illustration and photoreal/live-action)
- [ ] The clip duration equals the Duration specified in the CapCut inputs table (NOT the ~8s default). The generated speech may run shorter or longer than the sample wav's duration — that is acceptable; the VIDEO is the source of truth for audio timing.
If any check fails, fix the inputs/prompt and regenerate Clip 1 until all pass.
Only then generate the remaining clips, and re-run at least the voice + duration checks on every clip.
### Step 2 — Prompts are verbatim
Paste each clip's Motion prompt into CapCut EXACTLY as written in this file.
Do NOT summarize, shorten, or paraphrase it. If it seems too long, do not compress it —
go back to the script and split the clip instead.
### Step 3 — Final audio track (assembly)
The audio embedded in the generated clips IS the final dialogue audio. The local wav
files in the Dialogue audio table are VOICE SAMPLES used at generation time — reference
only, NOT the final track. When assembling the final video on the CapCut timeline:
1. Keep each generated clip's embedded audio as-is — do NOT mute it, and do NOT lay the
sample wavs over or in place of it (that would double the voices or desync the lips).
2. If a generated line runs shorter or longer than the sample wav's duration, accept the
video as-is — the VIDEO is the source of truth; never re-time or regenerate a clip
just to match the sample's length.
3. Play back the full timeline before export and confirm every line is intelligible,
each character's voice stays consistent with their voice sample across clips, and no
line is doubled. If a voice is wrong or unintelligible, regenerate that clip — do NOT
patch it with the sample wav.
次を実行し、成功するまで成果物を完了扱いにしない:
python3 .claude/skills/seedance/validate_run_bundle.py 03_SCRIPTS/<NN>_<slug>
検証は次を強制する:
script.mdが../../02_CHARACTERS/等の外部パスを参照していないRequired attached reference files:があり、対応表の全@ImageN = filenameがファイル名ごと再宣言されているあわせて、次を人手(実行エージェント)で確認する。1つでも欠けていたら完了報告してはいけない:
*_sheet.pngをReadで開き、正典の姿を確認した/image-validationを実行し、キャラ同一性のFAILが残っていない(実施していない検証を「問題なし」と報告しない)## Scene ledgerセクションが存在し、各Motion promptに時間帯・光の語(daylight/daytime/midday/evening/night等)が含まれている## Camera planセクションが存在し、各Motion promptにカメラ記述("camera"への言及)が含まれているSoundscape:とMusic:)が含まれている## Style blockセクションが存在し、各Motion promptに画風固定文(Style blockの1行)が一字一句そのまま含まれている検証失敗時は不足ファイルをコピーするかプロンプトを修正し、再実行する。失敗したままユーザーへ完了報告してはいけない。
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
窓際族物語の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接続や同僚環境への導入を頼んだときに使用する。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.