scenario-fan-cam について
scenario-fan-camは、承認済み写真から放送中継風のファンリアクション動画を作るScenarioスキルです。人物の同一性を保った静止画の作成・確認と動画化を分け、その後のグラフィック合成やSNS向け派生版作成も案内します。
主な機能
- 01写真から16:9の観客席静止画を作成
- 02動画化前に人物の類似性を確認
- 03承認済み静止画をリアクション動画化
- 04抽出フレームで同一性の変化を確認
- 05動画生成後にグラフィックを合成
- 069:16と1:1の派生版を作成
活用シーン
- 01許可を得た写真からスタジアムのファン動画を作成
- 02動画生成前に合成静止画を承認
- 03生成フレーム間の人物の一貫性を確認
- 04スコア表示やチャンネルグラフィックを追加
MCP 対応
recommend、model_schema_get、model_run、jobs_wait、アセット分析、動画合成、フォーマット処理などのScenarioツールとスキルを連携します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scenario-labs/ skills --skill scenario-fan-camインストール後、Claude Code で/scenario-fan-camを入力して読み込まれたか確認します。
詳細
シナリオ:ファンカム
概要
ファンカムは2段階の制作です。まず、本人の特徴を保った画像編集で人物を16:9の中継映像の静止画に合成し、その後、画像から動画を生成して、承認済みの静止画をリアクション動画にします。アップロードされた写真は本人確認用の参照画像であり、開始フレームではありません。写真をそのまま動画モデルに入力すると、中継映像ではなくポートレートがアニメーションします。第1段階は低コストですが、第2段階はそうではないため、承認に値する判断はすべて静止画の段階で行います。
ユーザー本人、または使用許可を得た人の写真だけを使用してください。有名人や見知らぬ人を合成する依頼は拒否してください。実在の人物の顔は、ほとんどの被写体よりプロバイダーのフィルターに引っかかりやすいため、ブロックされた場合は scenario-moderation を参照してください。接続方法と基本的な流れについては、このリポジトリの scenario スキルを参照してください。ここで名前が挙がっている関連スキルが利用可能なスキルに見つからない場合は、ユーザーにインストールを依頼してください(npx skills add scenario-labs/skills --skill <name>)。無人で処理を進める場合は、ツールのスキーマに基づいて続行し、不足しているスキルを明記してください。
クイックリファレンス
メンバーを見つけるには、各段階の機能とユーザー自身の言葉を渡して recommend を使います。測定済みのコストとレイテンシに基づいて順位付けし、目的に特化した候補を提示します。一方、機能名を指定した search では、選択の手がかりがないキーワード検索結果が何百件も返されます。候補を選ぶ前に、scenario スキルの指示に従って next_step を確認してください。すでに名前がわかっているメンバーを探す場合に限り、search を使ってください。生成モデルの ID を定数として決め打ちしないでください。Scenario 独自の単一用途ツールモデルは以下に明記しています。それぞれ1つしかないため、検出しても定数を再確認するだけです。
| 段階 | 内容 | 詳細 |
|---|---|---|
| 1. 本人確認用静止画 | 画像編集メンバー(img2img)が人物を16:9の観客フレームに合成します | scenario-image、scenario-consistency |
| 2. 静止画の確認 | 動画生成に費用をかける前に、写真と見比べて似ているか確認します | scenario-asset-analysis |
| 3. アニメーション | 承認済みの静止画から動画を生成し、リアクションの動きとカメラ移動を1つ加えます | scenario-kling、scenario-video |
| 4. 本人確認 | クリップからフレームを抽出し、承認済みの静止画と比較します | scenario-asset-analysis |
| 5. オーバーレイ | スコア表示、チャンネルロゴ、下部テロップを後処理レイヤーとして合成し、生成はさせません | scenario-text-overlay、scenario-video-assembly |
| 6. 派生版 | 16:9のマスターから、SNS向けの9:16版と1:1版を作成します | scenario-formats |
中継映像らしさがショットの決め手になるため、両方の段階でプロンプトに明示してください。前景と背景の観客をぼかす望遠レンズの圧縮効果、強烈なスタジアムの照明またはアリーナのストロボ、わずかなモーションブラー、被写体を見つけるためにカメラが探りながらフレーミングを調整する動きを指定します。人物はほかのファンに囲まれた中景に配置し、中央から外し、中継カメラの高さに合わせてください。中央に配置された、明るく照らされた目線の高さの人物は、中継映像のカットアウェイではなく、スタジアムで撮影した記念写真のように見えます。
リアクションは一つの状態ではなく、展開として指定してください。何も気づいていない状態から、カメラやスクリーンに気づき、最後にユーザーが希望したリアクション(歓声を上げる、笑う、信じられないといった表情をする、落胆する)へと進めます。動画ファミリーの仕様に従って複数の動きを指定すれば、1本のクリップの中にこの変化を収められます。
作業例:スタジアムのスクリーンに映った、8 秒間
- 写真、スポーツまたはイベント、会場の雰囲気、衣装、求めるリアクションを集めます。
写真を一度だけ
upload_assetし、返された asset id を再利用します。 - 最初の生成前に今回の実行用コレクションを作成し(カタログ書き込みレーンで
collection_createを使用し、指定するのはnameのみ)、採用した画像ができるたびにcollection_add_assetsで追加します。返されるitemCountが受領確認になります。 capability="img2img"を指定してrecommendを実行し、配置を言葉で説明します。複数の参照画像を受け取るランク上位の候補を優先し、それらの入力についてmodel_schema_getを確認します(レーンにはscenario-image、参照画像の扱いにはscenario-consistencyを使用)。- プロンプトを編集します:「参照画像の人物が、照明に照らされたサッカースタジアムの大観衆の中に座っている。テレビ中継のカットアウェイ映像、16:9、望遠レンズによる観客の圧縮効果、画面内に文字、ロゴ、グラフィックなし」。プレートには文字を入れません。オーバーレイは後から追加します。
- 静止画をゲート審査します。承認用に
asset_displayで表示し、scenario-asset-analysisの分析レーンを使って、維持すべき人物の特徴(顔の形、髪の生え際、肌の色、衣装)を一覧にします。一覧にある特徴のいずれかが変われば不合格です。無人で処理する場合、この一覧をユーザーの承認に代えます。 capability="img2video"を指定してrecommendを実行し、リアクションを言葉で説明してから、候補をscenario-klingまたはscenario-videoに照らして確認します。ブリーフの長さが候補を絞り込みます。durationは通常、候補ごとに対応できるかどうかが分かれる固定 enum で、対応できる価格帯には大きな差があるため、候補ごとにmodel_schema_getを実行し、model_runのdry_run=trueで比較します。- 承認済みの静止画を開始画像に指定し、「彼女は気づかずにおしゃべりしている」、続いて「スタジアムのスクリーンに自分が映っているのに気づき、立ち上がって歓声を上げる」という 2 つのビートと、ゆっくりとしたリフレーミングの動き 1 つで実行します。
wait=falseを指定し、タイムアウトした場合はpending_job_idsを指定してjobs_waitを再度呼び出します。2 回目のmodel_runは決して実行しません。 - プラットフォームが生成したフレームを使い、クリップを承認済みの静止画と照合します。まず
asset_getから取得できる無料のfirstFrameとlastFrameを確認し、次にクリップ中盤のフレームとしてmodel_scenario-video-to-image-seqを使います(scenario-video-editingによるツールとモデルのレーン)。ローカルでフレームを抽出しても代用にはなりません。どの予算でも、ファイル化や監査ができるアセットが得られず、ゲートの追跡可能性が失われるためです。一覧にある特徴のいずれかが変わればクリップは不合格です。また、判読可能な生成文字が入っていても不合格です。文字なしのプロンプトでも電光掲示板やジャンボトロンの文字が紛れ込み、特にクリップ後半で顕著になります。再試行は同じ静止画から始め、変化してしまった出力から始めてはいけません。 - オンラインで
model_scenario-compose-videoを使って組み立てます(scenario-video-assemblyによるツールとモデルのレーン)。scenario-text-overlayのスコアストリップとチャンネルロゴを安全な隅に重ねます。ローカルエディターは不適切なレーンです。オーバーレイの各レイヤーに明示的なwidthとheightを指定します。空欄のままではネイティブサイズになると文書化されていますが、期待どおりには機能しません。また、画像レイヤーがクリップより長く合成を引き延ばさないよう、durationMode: "custom"をクリップの長さに合わせて固定します。合成ジョブが成功しても、レイヤーが描画された証明にはなりません。合成結果からフレーム(無料のfirstFrame)を取得し、すべてのレイヤーが表示され、配置されていることを納品前に確認します。その後、scenario-formatsに従って 9:16 にします。これはリフレーミングではなくリサイズであり、動画の候補はフレームを切り取る代わりに、より広いフレームをアウトペイントします。coverモードは中央からクロップするため、被写体が中央から外れている場合は、代わりにマスターを 9:16 のコンポジターキャンバスに配置し、被写体が収まるようにします。両方をasset_displayします。
よくある間違い
- アップロードされた写真をそのままアニメーション化すること:必須の工程は放送用の静止画です。ユーザーから承認済みの16:9フレームが渡された場合に限り、省略します。
- 画像モデルや動画モデルに、スコアボード、チャンネルロゴ、ジャージのスポンサー名を描かせること:生成された文字はフレームごとにずれていきます。文字のない素材に、後処理でグラフィックを合成してください。
- ポートレートのような演出にすること:被写体を中央に配置し、見栄えのよい照明を当て、周囲の座席を空けておくと、ドキュメンタリーらしさが損なわれます。反応する観客の中に埋もれさせてください。
- 動画を一度見ただけで似ているかを判断すること:目を離した隙にずれが隠れます。フレーム抽出の検査工程を実行してください。
- 承認済みの静止画ではなく、ずれた動画から再試行すること:誤差が積み重なります。
- マスターを9:16で構成すること:放送用は16:9です。縦型は派生版です。
- 動画全体を通して感情の起伏がないこと:「気づいてから反応する」という転換がなければ、ファンカムではなく、繰り返し再生されるポートレートになってしまいます。
- 複合的なカメラ移動:必要なのは1回のフレーミング変更だけです。動きを生み出すのは、観客とリアクションです。