stagefight について
stagefightは、指定された対戦カードから短いステージファイト映像を作るクリエイティブスキルです。対戦者に合わせて舞台やコスプレ、舞台効果を考案し、静止画を起点に動画を生成します。
主な機能
- 01選んだ対戦カードからプロンプトを作成
- 02テーマに沿った舞台の静止画を生成
- 0310秒の画像から動画を生成
- 04観客がスマートフォンで撮る構図
- 05舞台演出として効果を表現
活用シーン
- 01指定した2人のコスプレ対決映像を作成
- 02オリジナルの対戦を舞台パフォーマンスにする
MCP 対応
Pika MCPのgenerate_image、generate_video、task_statusなどを使い、静止画と動画の生成・状態確認を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pika-labs/ pika-plugins --skill stagefightインストール後、Claude Code で/stagefightを入力して読み込まれたか確認します。
詳細
stagefight
2 回の呼び出しで実行する pika パイプライン:ステージの静止画(generate_image、gpt-image-2)→ 格闘クリップ(generate_video、画像から動画を生成、約10秒、16:9)。クリップは、テーマのあるステージで行われる振り付けされたコスプレパフォーマンスを、観客が撮影したスマートフォン映像の POV です。2人のパフォーマーがぶつかり合い、ライブステージの効果が炸裂し、観客が反応します。1回の実行で、1つの対戦のクリップを1本生成します。
このスキルの主な役割は、誰が戦うのかを決めることです(ユーザーに尋ねるか、対戦の組み合わせを提案します)。次に、同梱の例と同じ構成で新しいプロンプトを作成し、新しい動画を生成します。 examples/ の例は従うべきパターンであり、固定カタログではありません。毎回の実行で、同じ構成の新しい対戦の組み合わせを作成してください。見た目は調整済みで、安全性を確保するための構成が重要です。2つのテンプレートにある固定文はすべてそのまま維持し、指定された [SLOTS] のみを埋めてください。
★ 効果がある理由 — 手法(これは実際の調査結果です。どれも省略しないでください)
単に「2人が戦う」と書いたプロンプトはモデレーションでブロックされます。次の4つの工夫によって格闘コンテンツを安定して生成でき、これらが組み合わさってトレンドの美学を形作ります。
- 健全な演劇パフォーマンスとして表現します。 すべてのクリップ用プロンプトは、必ずそのまま次の文で始めます。"健全な演劇ステージパフォーマンス、振り付けされたコスプレ、広告掲載に適した内容です。" そして、"本物らしいライブステージ効果。漫画のような魔法ではありません。" で締めくくります。これにより、戦闘をスタントショーとして捉え直し、安全審査を通過しやすくなります。負傷、血、実際の武器が命中する様子、「漫画のような魔法」は決して描写しないでください。振り付け、小道具、ステージの火工効果を描写してください。
- 観客の視点で撮影した映像にします。 *「観客席から、ほかの人の頭越しにステージを撮影する、手持ちスマートフォン映像の POV」と、「手前には大勢の観客がいる。暗いシルエットの頭が並び、多くの人が録画のためにスマートフォンを掲げている。」*を使います。これはバイラルな「自分もそこにいた」という美学であると同時に、安全性を確保する要素でもあります(実際の暴力ではなく、パフォーマンスの記録として受け取られます)。
- 衣装を着たオリジナルキャラクターを使います。実在の人物も、名前のある IP も使いません。 「麦わら帽子をかぶった痩せ型の侍」「黒いローブをまとった角のある悪魔」「オレンジのトラックスーツを着た、金髪のツンツン頭の忍者」のような典型的な人物像を使います。実在の人物の顔は両方のバックエンドでモデレーションにブロックされます。商標登録されたキャラクター名を使うと、内容が意図から外れ、フラグが立ちます。ブランド名ではなく、コスプレ(髪型、衣装、小道具)を描写してください。
- ライブステージの効果は、現実味のあるものにします。 「見せ場」は、ステージの煙がぱっと噴き出す様子、緑色のステージ炎と火花、水の壁/間欠泉といった、現実味のある実用的な効果です。2人のパフォーマーは大きくのけぞる/身構えるだけで、誰も傷つきません。
モデレーション対応: ブロックされた場合は、同じ呼び出しを再試行してください(すぐにプロバイダーを切り替えないでください)。動画生成が失敗するまでに約4分を超えて実行された場合、コンテンツはすでに安全審査を通過しています。失敗はインフラ上の問題なので、再試行してください。reference_audio を使って音楽を組み込まないでください。この方法はモデレーションに引っかかるため、音楽/SFX は後処理で追加してください。再試行が必要な場合、Seedance のバックエンド(ark / fal)ごとにモデレーションのパイプラインが異なります。
前提条件
pika MCP が利用できること。ツールのプレフィックスはホストによって異なるため、公開されているものを使用してください。ツール:generate_image、generate_video、task_status。仕上げには、オプションで generate_music / SFX と edit_concat / edit_audio_mix を使用できます。
ステージ 0 — 誰が戦う?(まずここを決める)— 対戦カード 1 つにつき、クリップ 1 本です。
-
ユーザーがすでに 2 人のファイターを指定している場合 —
/stagefightの引数やメッセージ内(例:「氷の魔術師 vs 炎の騎士」、「うちの猫 vs ドラゴン」、「ロボット 2 体」)にある場合 — その 2 人を使い、メニューをスキップして、そのままプロンプトの作成に進みます。 再度尋ねないでください。 -
それ以外の場合は、
AskUserQuestionを 1 回だけ使って尋ねます(ヘッダー:Matchup)。ユーザーが独自のキャラクターを入力できる選択肢を必ず用意し、それを最初の選択肢にします。さらに、テンプレートの対戦カードをちょうど 3 つ用意します。- 「自分で 2 人のファイターを選ぶ」 — 名前を入力します → 選ばれたら「2 人のファイターは誰ですか?」と尋ね、回答を使います。(自動で追加される Other フィールドからも、対戦カードをそのまま入力できます。)
- 忍者 vs 忍者 — 煙
- 侍 vs 鬼 — 緑の炎
- 女魔術師 vs 吸血鬼(水のステージ) — 間欠泉 テンプレートを自動選択してはいけません。 大切なのは、ユーザーが選ぶか、自分で入力することです。3 つの候補を文章で提示してそのまま進めるのではなく、実際の 4 択メニューを表示し、回答を待ちます。
-
アスペクト比: デフォルトは
16:9とし、確認せずに使います(トレンドの見た目です)。ユーザーが縦型/TikTok/Reels に言及した場合に限り、9:16について尋ねます。
対戦カードが決まったら、プロンプトを自分で作成し(次のセクション)、1 行で確認して(「ステージバトルのクリップを生成します — 氷の魔術師 vs 炎の騎士…」)、最初から最後まで実行します。以降、はい/いいえの確認は不要です。
プロンプトを作成する(執筆ステップ。絶対に省略しないでください)
ユーザーが選んだ 2 人のファイターを題材に作成します。2 人から始め、ほかのすべてをそこから導き出してください。 忍者/侍/女魔術師の例は作成手順の例であり、出力内容ではありません。ユーザーが「X vs Y」と言ったら、動画は X vs Y を題材にします。例の対戦カードを黙ってデフォルトにしたり、選ばれた対戦とは別の戦いに差し替えたりしてはいけません。 ユーザーが別のものを指定したのに、忍者/侍/水をデフォルトにするのは、このスキルで最も多い失敗です。
選ばれたファイターをもとに、次の 4 つの要素をそれぞれ導き出します。
- ステージ = 2 人が自然に決闘しそうなテーマのセット — 彼らはどの世界の住人か? — +具体的な小道具 2〜4 個+背景+時間帯/照明。(魔法使い → 石造りの闘技場、メカ → ネオンのドーム、カウボーイ → サルーンの通り。寺院のキャラクターでない限り、寺院にはしません。)
- パフォーマー A(左)/パフォーマー B(右) = それぞれを実写のコスプレとして描写します。髪型、衣装、小道具、構えを含めます。類型的な描写にとどめ、実在の人物は使いません。名前の付いたキャラクターや商標登録されたキャラクターは、描写可能な衣装に置き換えます(プロンプトにブランド名は入れません)。
- シグネチャー効果 = この戦いに合った、舞台で実現可能な決めの演出を 1 つ選びます(煙/色付きの炎+火花/水の間欠泉/砂ぼこり+ランタンの光/氷の破片/燃えさし/紙吹雪キャノンなど)。両方のパフォーマーがその演出に反応します。
導出例(手順を示すための任意の対戦カード): ユーザーが*「ロボットボクサー vs 力士」と尋ねた場合。 → ステージ: ホログラムのバナー、リングロープ、スポンサーのランタンを備えた、ネオンに照らされた夜のアリーナ。背後には街のスカイライン。→ 左: 赤いボクシンググローブを着け、関節が光る、背の高いクロム製の人型ロボット。ガードを構えている。→ 右: 儀式用のまわしを着け、低く踏み込む、巨体の力士。→ 効果: グローブと掌がぶつかった瞬間に起こる、砂ぼこりと火花の衝撃波。→ これらを 2 つのテンプレートに当てはめます。(忍者/寺院/水が何も出てこないことに注目してください。各要素はすべて、実際に選ばれたファイターをもとにしています。ユーザーが何を選んでも、この手順を行ってください。)*
ステップ 1 — ステージ静止画(generate_image、gpt-image-2)
ステージ、両パフォーマー、撮影する観客をフレーム 0 に焼き込み、ステップ 2 では対決のアニメーションだけを行えるようにします。テンプレート — 固定文はすべてそのままにして、[SLOTS] を埋めます:
A recording from the audience at an outdoor theater performance at [TIME-OF-DAY/SETTING]. [STAGE: a wooden stage recreating <themed set> — <2-4 concrete set pieces, lanterns/gate/fog/water/etc>, <backdrop>]. On stage, two performers in high-quality live-action cosplay face off several meters apart: on the LEFT, [PERFORMER A — cosplay: hair, costume, prop, stance]; on the RIGHT, [PERFORMER B — cosplay: hair, costume, prop, stance]. A large audience fills the foreground — dark silhouetted heads, many holding up phones recording with glowing screens. The camera films from far back in the crowd, slightly off-center, performers small on the wide stage, slight handheld tilt. Realistic phone-camera look, faint digital noise, [natural light note]. High resolution, no text, no UI.
generate_image を呼び出します。 呼び出しパラメーター: provider: gpt-image-2 · aspect_ratio: 16:9(デフォルト。縦向きの場合は 9:16)· quality: medium(high はプロキシのタイムアウトを超過します)· output_format: png。ユーザーが特定のキャラクターシートや衣装を基準として指定した場合を除き、入力画像は使用しません。その場合は、シートを images として渡して generate_image_edit を呼び出し、名前ではなく コスプレ だけを説明するテキストにします。moderation_blocked が発生した場合は再生成します。それでも続く場合は、衣装の表現を和らげます(「悪魔/爪」より「パフォーマー/スタント」を強調)。返された URL を state.still_<n>_url に保存します。セルフチェック:衣装を着た 2 人のパフォーマーが明確に向かい合い、前景に観客とスマートフォンがあり、テキストがないこと。満たさない場合は再生成します。
ステップ 2 — ファイトクリップ(generate_video、画像→動画、10s)
静止画を開始フレームとして固定し、対決をアニメーション化します。10s なら、より展開のある演技ができます。[ACTION] には、単発の攻撃ではなく、小さな流れ(対峙 → 激突 → ライブステージの演出 → 反動/二度目の応酬 → 観客が沸き立つ)を指定します。テンプレート — 外枠は一字一句そのままにし、[ACTION + EFFECT] だけを埋めます:
Wholesome theatrical stage performance, choreographed cosplay, advertiser-safe. POV handheld phone footage from the audience, frame slightly unsteady, raised above other people's heads filming the stage. [ACTION: the two performers <sprint/dash in> and <clash — martial choreography or props>, <a believable live-stage effect: stage smoke / green fire + sparks / a wall of water erupts>, then <both recoil / leap apart / brace>]. The crowd in the foreground reacts, phones held up recording. Believable live-stage effects, not cartoon magic. Realistic smartphone recording, slight digital noise, continuous handheld shot, no subtitles, no UI.
generate_video を呼び出します。 呼び出しパラメーター: image:(または reference_images:)= state.still_<n>_url(開始フレーム)· duration: 10 · aspect_ratio: 16:9(ステップ 1 に合わせます)· sound はデフォルトのままにします(音楽を強制しません)。タスク ID が返された場合は、task_status をポーリングします。約 4 分後に失敗した場合はモデレーションを通過済みなので、再試行するだけです。すぐに失敗する場合は、アクションの表現を和らげて再生成します。
ステップ 3 — 仕上げ(任意)
- 効果音/音楽は後処理でのみ追加します。 観客のざわめきに、対決時のヒュッという音や衝撃音を加えると、臨場感が出ます。音声を生成または取得して
edit_audio_mixでミックスします。動画生成に音楽をreference_audioとして渡すことは絶対にしないでください(モデレーションに引っかかります)。
分解例(参考のみ — ユーザーの対戦カードの代わりに使わないでください)
これらを読んで、対戦カードを 4 つの変数にどう分解するかを把握し、そのうえでユーザーが選んだ内容に合わせて独自に作成します。ユーザーがまさにその戦いを選んだのでない限り、これらの例を貼り付けないでください。生成済みの静止画は examples/(ex1_ninja、ex2_samurai、ex3_snake、hero_pika + _contact_sheet.png)にあります。ステップ 1 の優れた静止画のビジュアルターゲットとして開いてください。
| 対戦カード | ステージ(小道具、照明) | 左のパフォーマー | 右のパフォーマー | 代表的な演出 |
|---|---|---|---|---|
| 忍者の対決 | 夕暮れの忍者の里の門。岩の地形、彩色された扉、紙の提灯、森 | 金髪の逆立った髪の忍者、葉の紋章の額当て、オレンジ色のトラックスーツ | 黒髪の逆立った髪の忍者、濃紺のシャツ | 砂ぼこり + 舞台用スモークの噴出 |
| 侍 vs 悪魔 | 夜の寺の中庭。石灯籠、鳥居、緑の霧 | 細身の侍、菅笠、黒い甲冑、刀 | 巨大な角のある悪魔、黒いローブ、爪 | 緑の舞台用炎 + 火花 |
| 水上ステージの決闘 | 夕暮れの湖上ステージ。中国風の東屋、赤い柱、提灯、霧に包まれた山々 | 白いローブの魔術師、長い黒髪、腕を上げている | 青白い吸血鬼、黒いローブ、牙、赤い目 | 水の壁 → 間欠泉 |
| ヒーロー/マスコット | 夕暮れの木製ステージ。岩の地形、提灯、森 | 小さくてふわふわした「Pika」マスコット、ミニチュアの道着姿 | 巨大な角付きの甲冑の戦士、はるかに大きい | 舞台用の火花が噴き出す |
各行は [STAGE] · [PERFORMER A] · [PERFORMER B] · [ACTION effect] に対応します。上の行から選ぶのではなく、ユーザーのキャラクターをもとに同じ 4 つのスロットを埋めてください。
ひとことでまとめ
衣装を着たパフォーマー + テーマに沿ったステージ + 撮影する観客 + 「これはスタントショーにすぎない」という設定 = 実際に生成できるファイト映像。1 つの対戦カード → ステージ静止画 1 枚 → 10s の画像→動画 1 本(16:9)。音楽/効果音は後処理で追加し、reference_audio は使用しません。