Communitygithub.com

NPCTalk(NPC会話クリップ作成)

実際のゲームプレイのように見えるNPC会話の短いクリップを録画し、すぐに投稿できるようにします。スクリプト化されたやり取り、固定カメラ、字幕表示、タイムライン同期などをサポート。

NPCTalk(NPC会話クリップ作成) とは?

NPCTalk は、GTA V などのゲーム内でNPC同士やプレイヤーとNPCの会話を、あたかも実際のプレイ動画のように撮影・編集するためのAIエージェントスキルです。ユーザーは `clip:`, `at:`, `time:`, `a:`, `b:`, `line:`, `reply:` などのシンプルな記法で脚本を記述でき、LLMが自動で返答文を生成します。事前に音声をレンダリングしてからクリップを開始するため、カメラ前で待つことがありません。録画は `shoot.ps1` で画面とシステム音声を別々にキャプチャし、ホワイトフラッシュとビープ音で同期。`edit.ts` が各クリップを最大10秒にカットし、途切れる台詞がないかチェックします。対応プラットフォームは主にWindows上のGTA V(Script Hook V .NET)で、ffmpegとTypeScriptベースのツールチェーンで動作します。このスキルは、デモ動画、クリップ集、NPCが会話するモンタージュを作りたいユーザーに最適です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/christos-antono/NPCTalk/tree/HEAD/.agents/skills/npc-showcase-clips

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ゲームプレイ風のNPC会話クリップ

20本のGTA Vクリップで実績のある手法(examples/gta-v、DirectorClips.cs、tools/shoot.ps1、tools/edit.ts): クリップは1回のやり取り、5~10秒で、誰かの普段のプレイの一場面になり得るもの。

脚本を書く

clip: 水鉄砲
at: grove                         通り、家、または "x, y, z, heading"
time: 21                          時刻(時)
a: player                         最初に話す人: player(プレイヤー)、character(キャラクター)、または声付きpedモデル
b: LamarDavis
line: ラマー、銃をしまえ。水鉄砲だ。
reply: それでも怖いと言い張り、グローブ街で最も恐れられる男だと言う(LLMがその場で生成)
# または承認済みの台詞を固定:
say: [叫び] 水鉄砲が怖いだって?これこそグローブ街で最も恐れられるもんだ!
do: none                          再生するアクション(アクション名、またはnone)

NPCのみのクリップ(警官と田舎者、海兵隊員と観光客)は最高の仕上がりになることも:プレイヤーを隠して二人のNPCにやらせよう。

ゲームプレイらしく見せる

  • 固定されたゲームプレイカメラ: 毎フレーム、追従カメラのビューモード、プレイヤーに対するヘディングとピッチを設定し、ルック入力を無効にする。固定で十分。シネマティックカメラはトレーラーっぽく見えてしまう。
  • 相手をフレームに収める: プレイヤーの前で少し横に立たせる(前方2m、右1m)。プレイヤーが隠れないように。スポットの周囲をレイキャストし、壁、キオスク、玄関から離れた向きにする。
  • 地面に接地: 舗装面にスナップさせ、下方向にレイキャストして地面を検出(日よけや屋根で高さ検索が狂うため)。
  • 画面をクリーンに: ゲームのHUDと字幕は表示、MODの表示は一切なし(通知、開発パネル、ヘルプテキストなし)。撮影中は電話とヘルプテキストを抑制。
  • 先にレンダリング、その後ロール: 返答を書き、アクションを選び、クリップ開始前に両方の音声をレンダリングしてから、連続して再生する。カメラ前でGPU待ちが発生しない。

録画、同期、編集

  • shoot.ps1:ゲームを前面に持ってきてMODをリロードし、画面(ffmpeg ddagrab)とPC音声(WASAPIループバック)を別ファイルで録画、スクリプトを開始、フォーカスが失われたらキャプチャを再開(ゲームが一時停止するため)。
  • 同期: 各キャプチャセグメントの開始時にホワイトフラッシュと1kHzビープ音を出力し、タイムスタンプとともに記録。MODは clip_start/clip_end と各行の audio_on/audio_off をタイムラインに記録。
  • edit.ts --clips <take>:クリップごとに1つのMP4を生成。clip_start の0.2秒前から最後の台詞またはアクションまで。ゲームウィンドウにクロップ、幅1920、ラウドネス正規化。クリップは最大10秒に制限し、途切れる可能性のある行を報告(切ることはしない)。
  • 台詞を切らずに再撮影: 長くなったクリップは再撮影(新しいレンダリングは長さが変わる)するか、台詞を数語詰める。say:/do: で承認済みの返答を固定しておけば、再撮影でもジョークがそのまま残る。
  • 投稿前に確認: クリップ1コマのコンタクトシート(ffmpeg -ss 5 ... tile=5x4)で、隠れた相方や壁が写っていないかを数秒で確認できる。

注意点

  1. 何も起こらない / MODがリロード後に戻らない。 Windows Smart App Controlが新しいDLLを拒否した(Code Integrityイベント3077)。最初に新しいビルドをテストロードし、最後にロードできたものを残しておく。
  2. テイクのログにビデオ開始が記録されていない。 別のプロセスがログファイルを開いたままにしていた(Windowsで tail -F すると書き込みがブロックされる)。別のスクリプトが追記しているファイルを見ないようにする。別のファイルを監視する。
  3. クリップ途中で電話やヘルプテキストが表示される。 クリップ再生中は毎フレームそれらを抑制する。
  4. クリップ内の音声は合成音声である。 クリップをどこかに投稿する前に、人間が判断すること。AIによるものであることを明記する。

関連スキル