world-cup-anime について
ユーザーの写真、チーム、対戦相手をもとに、3シーンの日本アニメ風サッカー短編を作るクリエイティブスキルです。キャラクターシート、演出プロンプト、動画生成、約45秒の編集までを案内します。
主な機能
- 01写真からアニメのキャラクターシートを作成
- 023シーンの試合展開を設計
- 03日本語の台詞入りプロンプトを作成
- 0415秒の動画を3本生成
- 05音声を保ってシーンを結合
活用シーン
- 01個人向けサッカー短編の制作
- 02三幕構成のアニメ試合シーン作成
- 03生成シーンを完成動画に編集
MCP 対応
画像生成、参照動画生成、クリップ結合のツールを使うワークフローですが、入力にはMCPサーバーのインターフェースについて記載がありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pika-labs/ pika-plugins --skill world-cup-animeインストール後、Claude Code で/world-cup-animeを入力して読み込まれたか確認します。
詳細
内部リリース用スキル — 社内テスト用に提出されました。
/creative-growth-internal-releasing:world-cup-animeとして読み込まれます。
world-cup-anime
ユーザーを主人公にした3シーン(約45秒)の日本のアニメ風サッカーショート動画を作成します。2026年ワールドカップに向けて @stevenwommack / @leonrdewa が広めた形式ですが、主役は実行する本人です。各シーンは15秒のセルシェーディングアニメ風の一場面で、名前を大文字で表記したユーザーと日本語の台詞が登場します。ユーザーの写真から作成したアニメキャラクターシートをもとに、Seedanceで生成し、その後つなぎ合わせます。
実証済みのパイプライン(順序を変えないでください):
ユーザーの写真 → アニメキャラクターシート(nano-banana-pro)→ ドラマチックな試合を設計し、3×15秒のシーン用プロンプトを作成(Claude として実行)→ シートをもとに Seedance で各シーンを生成 → つなぎ合わせる
重要なのは次の3点です。この順番で行います。(1)すべてのシーンでユーザーのアニメ風の容姿を一貫させるためのキャラクターシート。(2)ユーザーのために設計した具体的でドラマチックな試合(ユーザーのチーム対相手チーム、実際のユニフォームの色、各シーンに具体的なゴールの仕組みを設定。「彼が得点する」のような一般的な内容は避けます)。(3)シーン用プロンプトの定型(セルシェーディングのスタイルタグ+大文字表記のヒーロー名+カメラ/アニメ技法+日本語のボイスオーバー)。
Stage 0 — 情報収集
一度に、ユーザーごとに変わる情報だけを収集します。
- ユーザーの写真(必須)— 顔がはっきり写った写真。アニメのヒーローになります。ローカルパスまたは URL を指定します。容姿はこの写真をもとにします。ローカルファイルは
upload_assetでアップロードし、public_urlを使用します。(画像を貼り付けても MCP に届かない Claude Desktop を使用している場合は、URL または.zipを一度だけ尋ねます。) - 画面に表示するヒーロー名(任意)— プロンプトと日本語のボイスオーバーで大文字表記する名前です(例:「MATAN」)。既定ではファーストネームを使います。名前を使いたくない場合は「THE STRIKER」とします。
- ユーザーのチーム(必須)— ヒーロー側のチームです。ユニフォームの色/ストライプ模様を確認します(例:「スカイブルーと白の縦縞」)。エンブレムやスポンサーは含めません(商標ではなく色を描写してください。失敗例のブランド除去を参照)。
- 対戦相手(必須)— 対戦する相手です。相手のユニフォームの色も確認します。相手チームの選手(ゴールキーパー、ディフェンダー)は、名前を付けず、ユニフォームの色で描写する汎用キャラクターにします。
「あなたをアニメの試合に登場させます — [TEAM] 対 [OPPONENT]、あなたが決勝点を決めます……」のように一文で確認したら、パイプラインを実行します。それ以上、実行してよいかどうかの確認は行いません。
Stage 1 — アニメキャラクターシート(generate_image、nano-banana-pro)
ユーザーの写真をもとに、アニメ風のキャラクターシートを1枚生成します。シート(複数のアングル+全身+クローズアップ)によって、3つすべてのシーンで顔の一貫性を保ちます。
次の内容で generate_image を呼び出します。
provider:nano-banana-pro(必須の既定値)。実在の人物の顔を、本人だとわかる特徴を保ったまま、きれいにアニメ風に変換できます。ここではgpt-image-2は使用しないでください。OpenAI の安全システムは、本人を特定できる人物の実写写真をアニメ風に編集することを拒否します(content_policy/image_generation_user_error)。reference_images:[<ユーザーの写真の URL>]aspect_ratio:16:9·quality:high·output_format:pngprompt(以下の定型をそのまま使い、{NAME}を入力して、本人をチームのユニフォーム姿にします):Create a character sheet of this football player named {NAME} in a {TEAM kit colors} kit, with close-ups and full body shots from different angles in Japanese anime style.
返された URL を state.sheets[HERO] として保存します。シートを確認してください。本人だとはっきりわかるアニメ風の画像で、使える全身像と顔のアングルが含まれている必要があります。ずれている場合は再生成してください。(実在の顔がわかる状態で、名前付きのチームメイト/ライバルも画面に登場させたい場合は、同じ方法でキャラクターごとにシートを作成します。それ以外の場合、相手チームの選手は汎用キャラクターのままにします。)
ステージ 2 — 試合を設計し、3つのシーンのプロンプトを書く(あなた=「Claude」)
これはクリエイターが Claude で行ったステップです。あなたが直接行ってください。調査する実際の試合はありません。ユーザーのためにドラマチックで具体的な試合を設計し、それを定型に沿って書きます。売りになるのは具体性です。各シーンで「ゴールを決める」ではなく、実際のゴールの決め方を選んでください。
-
試合を設計する:ユーザーのチーム([TEAM])対 [OPPONENT]、大きなナイトスタジアムが舞台です。展開を決めます。ヒーローはチームがリードを許している状況で途中出場し、同点に追いついた後、劇的な終盤の決勝ゴールを決めます。各ゴールについて、具体的な決め方(ボレー、クロスからのヘディング、ターンしてシュート、独走、フリーキックなど)と、スコア+分数を決めてください。試合を通じて両チームのユニフォームの色を使い、相手のキーパー/ディフェンダーは色だけで表現してください。
-
各15秒のシーンを、正確に3つ書く。定番の三幕構成に沿ってください。
- **シーン1 — 「THE CALL」:**ヒーローが出場する/[TEAM] のキックオフ。緊張感が高まり、観客が沸き、チームメイトまたはベンチがヒーローを鼓舞します。
- **シーン2 — 「THE EQUALIZER」:**ヒーローが選んだ決め方で [OPPONENT] から同点ゴールを奪います(実際のアシストからの組み立て、シュート、キーパーを破る場面)。例:1-1。
- **シーン3 — 「THE WINNER」:**アディショナルタイムにヒーローが決定的なゴールを決め、勝利と画面上の最終スコアカードで締めくくります。
-
シーンプロンプトの定型(この構成に正確に合わせてください。これが効果を生みます):
- スタイルタグから始めます:
Japanese anime action style, cel-shaded, high contrast, [color grade e.g. cold desaturated → blazing gold], [intensity], [setting: packed night stadium, the minute + scoreline]. - ビートごとのアクションでは、ヒーローの名前を大文字にし、ユニフォームの色、正確なゴールの決め方、アニメのカメラ/エフェクト表現を含めます。例:目の極端なクローズアップ、英雄的なローアングルからせり上がるカメラ、ゆっくりとしたドリーイン、アニメのスメアフレーム、シュートの瞬間のバレットタイム、インパクトフレームで画面が純白にフラッシュしてから一気にフルスピードに戻る、ネットが揺れる、金色の粒子が弾ける、モーションブラーの軌跡、飛び込む途中で静止したキーパー。
- **ムードの一行:**例:
陰鬱/決意 → 電撃的/歓喜 → 高揚/爆発的。 - 日本語のVO/字幕のセリフで締めくくります。各話者につき1行で、キャラクター名を先頭に付け、解説者のセリフも入れます。短いセリフとヒーローの心の声を含めてください。形式:
VO/subtitle (JP): {NAME}「…」 / {NAME} (inner)「…」 / commentator「…」 - シーン3には最後に画面上のカードも付けます:
Final on-screen card: {TEAM} {SCORE}.
(定番の構成を示す参考例 — この形式の元になった Undav/Germany の編集です。この構成をそのまま踏襲し、ヒーローの名前+あなたのチーム+相手チームに置き換えてください:シーン1は寒色系のクローズアップから始まり、照明に照らされたピッチに踏み出す。チームメイトが叫び、ヒーローの心の声が入る。シーン2はクロスが上がり、HERO がボレーを決める。バレットタイム+白いインパクトフラッシュ、1-1、キーパーは凍りついたように動かない。シーン3はアディショナルタイム。HERO がターンして回転し、ディフェンダーをかわしてシュート。膝で滑り、金色の紙吹雪が舞い、カードに「[TEAM] 2-1」と表示される。それぞれのシーンはセルシェーディングのスタイルタグで始め、日本語のセリフ+心の声+解説者のセリフで締めくくります。この構成を再利用し、ヒーロー+両チーム+設計したゴールの決め方に置き換えてください。)
- スタイルタグから始めます:
Stage 3 — 各シーンを生成する(generate_reference_video、seedance)
シーンごとに1回呼び出します。キャラクターシートを参照画像として使用し、ヒーロー名を画像に対応付けます(Higgsfield の「@image」テクニック → Seedance の @Image1 トークン)。
generate_reference_video を次の設定で呼び出します。
provider:seedance·seedance_backend:arkreference_images:ヒーローのシート(そのシーンで使う追加のキャラクターシートがあればそれも含めます)— 例:[sheets[HERO]]aspect_ratio:16:9·resolution:1080p·duration:15·sound:true(日本語のセリフとドラマチックな効果音が重要です。この形式では生成された音声が保持されます)prompt:名前→画像の対応付け行に続けて、シーンのプロンプトを記述します。例:
ヒーローが最初に登場する箇所では、その{HERO} is @Image1. <full Scene 1 prompt from Stage 2>@ImageNトークンで参照し、Seedance が顔立ちを反映できるようにします。
3つすべてを並列で実行し(background: true)、完了を確認します。次の場合はシーンを再生成します。ゴールのメカニクスが誤っている、顔立ちがシートと一致しない、タイトルやスコアカードの文字が崩れる。シーンで OutputAudioSensitiveContentDetected が発生した場合は、新しいシードで再生成します(最後の手段として、そのシーンのみ sound: false にして、セリフをオーバーレイとして追加します)。
Stage 4 — 連結
シーン1 → 2 → 3の順に連結し、約45秒、16:9、1080pの最終カットを作成します(edit_concat、または正規化したクリップを ffmpeg で連結します)。各シーンで生成された音声を保持します。ユーザーが希望する場合は、控えめな壮大なアニメ風の音楽を下に重ねてもかまいません(後処理のみ)。連結したMP4と、3つのシーンクリップを納品します。
設定のクイックリファレンス
| ステップ | ツール | 主な設定 |
|---|---|---|
| キャラクターシート | generate_image | nano-banana-pro(gpt-image-2 は実在人物の写真を受け付けません)、参照画像=ユーザーの写真、チームキットを着たヒーロー、16:9 |
| デザインとプロンプト | あなた(Claude として動作) | 上記の定型に沿った、具体的でドラマチックな試合 → 15秒のシーンを3本 |
| シーン動画 | generate_reference_video | seedance/ark、シートを参照画像として使用、名前→@ImageN の対応付け、16:9、1080p、15s、sound:true |
| 連結 | edit_concat / ffmpeg | シーンを順番に並べ、音声を保持、約45秒 |
任意:seedance-anime(プロンプトの文体調整)と seedance-director を使ってショットの表現を調整できます。ただし、上記の定型だけですでに目標のルックを再現できます。
失敗しやすいポイント
| 症状 | 対処法 |
|---|---|
| シーンごとに顔が変わる | すべてのシーンで参照画像として必ずキャラクターシート(元の写真ではなく)を渡します。別人のように変化したものは再生成し、主人公を対応する@ImageNに割り当てます。 |
| ゴールがありきたり/迫力がない | デザインの手順を省略しています。具体的なプレー(ボレー/ヘディング/ターンからのフィニッシュ)、スコア、ユニフォームの色を選び、シュートまでの流れを一つずつ書きます。 |
| 主人公の名前がない/日本語のセリフがない | 次の形式は必須です。主人公の名前を大文字で指定し、すべてのシーンの最後にVO/subtitle (JP): …ブロックを付けます。 |
| スコア/タイトルカードの文字が崩れる | カードの文字を短くします(「[TEAM] 2-1」)。再生成するか、後処理でクリーンなオーバーレイとして重ねます。 |
音声のセンシティブコンテンツ検出(OutputAudioSensitiveContentDetected) | シードを変更して再生成します。最終手段として、そのシーンでは sound:falseを指定し、日本語のセリフをオーバーレイします。 |
VIDEO の著作権/センシティブコンテンツ検出(OutputVideoSensitiveContentDetected) | シードを変えるだけでは解決しません。原因はコンテンツです。入場/式典/放送風のシーンで特に検出されやすくなります。**プロンプトからブランド要素を外します。**大会名を指定しない(「World Cup」→「巨大なナイトスタジアム」)、実在クラブのエンブレムやスポンサーのロゴを使わない、画面上にスコアボード/ローワーサード/放送用グラフィックを表示しない、キャプテンマークを付けないようにします。ユニフォームの色だけを描写し、ピッチ上のプレーだけに限定します(オープンプレーからのゴールシーンは初回で通過します)。 |
ジョブの途中で一時的にinvalid_input/"Unknown provider: seedance-assets"/skill_crashedが発生する | Pika 側バックエンドの一時的な不具合であり、入力の問題ではありません。シードを変えて同じ呼び出しを再実行します。失敗までに約4分を超えていた場合は、コンテンツはすでに安全性チェックを通過しています。 |
キャラクターシートでcontent_policy/image_generation_user_errorが発生する | gpt-image-2(OpenAI)は、実在の人物の写真をアニメ風に編集することをブロックします。シートの作成には**nano-banana-pro**(デフォルト)を使います。同じ写真でgpt-image-2を再試行しないでください。 |
メモ
- 出典:@stevenwommack(チュートリアル動画)が紹介し、@leonrdewaに着想を得たワークフロー(画像シート → Claude プロンプト → Seedance の15秒シーン → 結合)を、Pika MCP 上で一から再構築し、ユーザー自身が主人公(ユーザーの写真+チーム+対戦相手)になるよう汎用化しています。
- デフォルトの出力:3シーン × 15秒 = 約45秒、16:9、1080p、アニメ調のセルシェーディング、日本語のナレーション。ユーザーの希望があれば、アスペクト比や長さを変更できます(例:リール用の9:16)。