subject-compositing について
実写素材を使った合成のためのvideo-studioスキルです。撮影条件、被写体や小道具のレイヤー構成、指差しイベントの確認方法を扱い、ショット確定前の素材確認を重視します。
主な機能
- 01セグメンター向け撮影のガイド
- 02被写体、小道具、背景の合成
- 03腕を小道具の前に出す処理
- 04指差しイベントの解析
活用シーン
- 01合成前の撮影素材の評価
- 02前景の小道具を使った構図設計
- 03検出された指差し時刻の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scrollmark/ social-skills --skill subject-compositingインストール後、Claude Code で/subject-compositingを入力して読み込まれたか確認します。
詳細
被写体の合成
撮影できず、どの生成器でも説得力を持たせられないショット向けです。彼が宇宙船の中にいる、ピエロの車に乗っている、月面にいる、といったショットです。実際のテイクを本来の背景から切り抜き、置き換え用の映像に重ね、さらに小道具を手前に配置します。この手法の成否は元のテイクにかかっています。ショットを約束する前に、素材を確定してください。
必要なもの
pip install 'video-studio-engine[vision] @ https://github.com/scrollmark/social-skills/archive/refs/heads/master.tar.gz'を実行し、続けてvideo-studio composite_subject …と
video-studio track_pointing …を実行します。どちらもここにはバンドルされていません。MediaPipe、
NumPy、OpenCVをインポートし、初回実行時にモデルファイルをダウンロードするため、スキル内の通常の
ファイルとして同梱できません。[vision]はパッケージ内で最も大きな追加機能です。これがなければ、ここに記載された機能は何も実行できません。マットも、ぼかしたオクルージョンの継ぎ目も、腕の突き抜けも、ジェスチャーのタイミング調整もできません。それでも、以下の映像に関するガイダンスは役立ちます。ユーザーに何を撮影すべきか伝えるものであり、撮影前に知らせておく価値があります。指差しの文法についてはvideo-formatsを参照してください。
セグメンターがテイクに求めるもの
ショットがうまくいくかどうかはこれで決まり、編集時ではなく撮影現場で決まります。このモデルはセルフィー用セグメンターです。会話する距離にいる、正面を向いた上半身の人物が1人いることを前提としています。セグメンターが苦手とすることは、すべてここから生じます。
- **人物は1人で、近い側の腕が見えること。**姿勢ランドマークは、セグメンターが確認できるほうの手首を選びます。フレーム内に2人目がいる、または腕がフレーム外に伸びていると、フリーアームが機能しなくなります。
- **背景と色調が分離していること。**髪、暗い壁に対する暗い服、または背後のものと明度が同じ被写体は、シルエットが削られるマットになります。エラーにはなりませんが、安っぽく見えます。
- **均一で平坦な光を当て、モーションブラーを避けること。**速いパンやくっきりした影の境界があると、フレームごとにマットがちらつき、すぐに偽物だとわかります。カメラを固定し、被写体を動かしてください。
- 切り抜きに十分な広さでフレーミングすること。
--occlude-belowは小道具の上端で被写体を切り、ぼかした継ぎ目を作ります。「中にいる」ように見せ、座っていた実際の椅子を隠せますが、機能させるには切断線より下に体が写っている必要があります。 - **短いテイクにすること。**各フレームを1枚ずつセグメンターに通すため、数秒が実用的な単位です。これはショットであり、シーケンスではありません。
合成
video-studio composite_subject out.mp4 --in take.mp4 --ss 39.9 --t 2.5 \
--bg crowd.webm --bg-crop 405:600:430:15 --bg-eq eq=contrast=1.9:saturation=0 \
--fg art/car.png --occlude-below 1215 --free-arm --travel -330 430 --flip-h
レイヤーの順序は、背景 → 被写体 → 小道具 → 小道具を突き抜けて前面に出すジェスチャー中の前腕です。--free-armは、肘・手首・手の周りに作るカプセルを実際のマスクと交差させるため、体のピクセルだけが前面に出ます。この交差処理がないと、推定姿勢がずれた際に、人物の形をした背景の穴が小道具に開きます。--travel、--flip-h、--flip-vは、静止した背景上で被写体と小道具を1つのオブジェクトとして移動します。反転は移動の前に行われるため、移動後に反転すると移動方向も逆になります。--scaleの基準になるのはフレームの原点ではなく、被写体です。
**アルファチャンネル付きで、小道具を大まかに描いてください。**手描きの不揃いなアートならマットの柔らかい端が目立ちませんが、きれいなベクターアートはその横で不自然に見えます。アルファチャンネルのないPNGは、そのまま拒否されます。また、**合成する前に背景のクロップを確認してください。**古い柔らかな映像を狭くクロップすると灰色の塊になり、スタジアムの映像には、ブランド動画に入れてしまう判読可能な第三者の広告が大量に映っています。
指差し
video-studio track_pointing analyze はイベントを出力します。これは、伸ばした人差し指が安定した位置を保つ区間で、指先の先まで外挿した指差し先の位置をキャンバス上の割合で示します。layers はそれらをストーリーボードのレイヤーに変換し、フレームの中央方向にオフセットするため、ポップアップが手に重なることはありません。ここでは映像がレイアウトを決め、ストーリーボードが決めるわけではないため、構成を作成する前に、イベント一覧をユーザーと照合してください。各タイムスタンプのフレームを取得し、件数を確認します。意図的に、0.5 秒未満の保持はジッターとして除外され、追跡される手も片手だけです。そのため、素早くタップする人や両手で説明する人の場合、どちらも結果が少なくなり、しきい値が機能しているというより、トラッカーが壊れているように見えてしまいます。
アンチパターン
- 映像を確認する前にショットを約束すること。 背景とのコントラストやカメラの動きが結果を左右し、どちらも後処理では修正できません。
- 整いすぎたベクター素材。 マットが壊れているように見えてしまいます。粗いアートのほうが、それを目立たなくします。
- イベント一覧を鵜呑みにすること。 フレームを抽出し、件数をユーザーと照合してください。