Communitygithub.com

christos-antono/NPCTalk

Zeichne kurze Clips von NPC-Gesprächen auf, die wie echtes Gameplay aussehen und bereit zum Posten sind. Deckt skriptierte Dialoge an gewählten Orten und Zeiten ab, mit ruhiger Kamera, synchronisierten Tonspuren und HUD-Elementen ohne Mod-Overlays.

Was ist NPCTalk?

NPCTalk ist ein Skill zur Erstellung von Gameplay-ähnlichen Clips, in denen NPCs miteinander oder mit dem Spieler sprechen. Er eignet sich besonders für Demo-Videos, Montagen oder kurze Szenen in 5–10 Sekunden Länge (16:9 oder 9:16). Der Skill unterstützt die Aufnahme von zwei Dialogzeilen hintereinander, wobei die Kamera ruhig hinter dem Spieler bleibt und das Spiel-HUD sowie Untertitel sichtbar sind – die Mod selbst ist unsichtbar. Zu den Hauptfunktionen gehören das Skripten von Dialogen mit Orten, Uhrzeiten und Stimmen, das Rendern beider Zeilen vor dem Clipstart (damit keine Wartezeiten entstehen) sowie die Aufnahme mit ffmpeg und WASAPI-Loopback für Bild- und Ton-Synchronisation. Der Skill bietet außerdem Timeline-Marker zum Schneiden, eine Funktion zum erneuten Aufnehmen von zu langen Clips und eine Kontaktübersicht aller Clips zur schnellen Qualitätskontrolle. Er wurde für GTA V entwickelt, aber die Konzepte sind auf andere Spiele übertragbar. Wichtig: Der Skill unterdrückt während der Aufnahme Telefonanrufe und Hilfetexte, und die Stimmen in den Clips sind KI-generiert – dies sollte vor dem Posten deutlich gemacht werden.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Gameplay-ähnliche Clips von sprechenden NPCs

Was bei 20 GTA V-Clips funktioniert hat (examples/gta-v, DirectorClips.cs, tools/shoot.ps1, tools/edit.ts): Ein Clip ist ein einziger Dialog, 5–10 s lang, der wie ein Moment aus dem normalen Spiel eines Spielers wirken könnte.

Skript erstellen

clip: Wasserpistole
at: grove                         ein Straßenort, ein Haus oder "x, y, z, heading"
time: 21                          Tageszeit
A: spieler                        wer zuerst spricht: der Spieler, ein Charakter oder ein Ped-Modell mit einer Stimme
B: LamarDavis
line: Lamar, leg die Waffe weg. Es ist eine Wasserpistole.
reply: bestehe darauf, dass sie immer noch gruselig ist und er der gefürchtetste Mann auf Grove Street ist    (das LLM schreibt es live)
# Oder genehmigte Antwort festlegen:
say: [schreiend] Angst vor einer Wasserpistole? Das ist der gefürchtetste Scheiß auf Grove Street!
do: keine                          die auszuführende Aktion (ein Aktionsname oder keine)

Reine NPC-Clips (ein Polizist und ein Hillbilly, ein Marine und ein Tourist) gehören zu den besten: Verstecke den Spieler und lass zwei NPCs aufeinander losgehen.

Wie Gameplay aussehen

  • Die Gameplay-Kamera, ruhig gehalten: Setze bei jedem Frame den Blickmodus der Folgekamera sowie ihre Richtung und Neigung relativ zum Spieler und deaktiviere die Eingabe fürs Umschauen. Fest ist in Ordnung; filmische Kameras wirken wie ein Trailer.
  • Den Partner einrahmen: Stelle sie vor und etwas zur Seite (2 m nach vorne, 1 m nach rechts), damit der Spieler sie nicht verdeckt; taste mit Raycasts um den Spot herum und drehe dich von Wänden, Kiosken und Türen weg.
  • Auf dem Boden verankern: Auf den Bürgersteig setzen und mit Raycast nach unten zum Boden (Markisen und Dächer täuschen Höhenabfragen).
  • Sauberer Bildschirm: Das Spiel-HUD und die Untertitel sind eingeschaltet, nichts von der Mod (keine Benachrichtigungen, Entwicklertafeln oder Hilfetexte). Unterdrücke während einer Aufnahme Telefonanrufe und Hilfetexte.
  • Erst rendern, dann abspielen: Schreibe die Antwort, wähle die Aktion aus und rendere beide Stimmen, bevor der Clip startet; spiele sie dann nacheinander ab. Niemand wartet auf die Kamera für eine GPU.

Aufnehmen, synchronisieren, schneiden

  • shoot.ps1: Bringt das Spiel in den Vordergrund, lädt die Mod neu, nimmt den Bildschirm (ffmpeg ddagrab) und die PC-Audio (WASAPI-Loopback) als separate Dateien auf, startet das Skript und startet die Aufnahme neu, wenn der Fokus verloren geht (das Spiel pausiert).
  • Synchronisation: Jeder Aufnahmeabschnitt beginnt mit einem weißen Blitz und einem 1-kHz-Piepton, der mit einem Zeitstempel protokolliert wird; die Mod protokolliert clip_start/clip_end sowie jedes audio_on/audio_off jeder Zeile in einer Timeline.
  • edit.ts --clips <take>: Ein MP4 pro Clip, von 0,2 s vor clip_start bis zum letzten Wort oder zur letzten Aktion, auf das Spielfenster zugeschnitten, 1920 Pixel breit, lautstärkenormalisiert. Es begrenzt Clips auf 10 s und meldet jede Zeile, die abgeschnitten würde, anstatt sie zu schneiden.
  • Neu aufnehmen, keine Wörter schneiden: Ein Clip, der zu lang wird, wird neu gedreht (neue Renderings haben unterschiedliche Längen) oder seine Zeile um ein paar Wörter gekürzt. Hefte genehmigte Antworten mit say:/do: an, damit ein Neudreh den Witz bewahrt.
  • Vor dem Versenden prüfen: Ein Kontaktblatt mit einem Frame pro Clip (ffmpeg -ss 5 ... tile=5x4) erkennt einen versteckten Partner oder eine Wand im Bild in Sekundenschnelle.

Fallstricke

  1. Nichts passiert / die Mod kam nach einem Neuladen nicht zurück. Die Windows Smart App Control hat die neue DLL abgelehnt (Code Integrity-Ereignis 3077). Teste zuerst einen neuen Build; behalte den letzten, der geladen wurde.
  2. Die Aufnahme hat keinen Videostart im Log. Ein anderer Prozess hielt die Logdatei offen (tail -F unter Windows blockiert den Schreiber). Schaue keine Datei an, an die ein anderes Skript anhängt; schaue eine andere an.
  3. Ein Telefonanruf oder Hilfetext landet mitten im Clip. Unterdrücke sie während eines laufenden Clips in jedem Frame.
  4. Stimmen in Clips sind Klone. Bevor du einen Clip irgendwo postest, entscheidet der Mensch; sage, dass es KI ist.

Verwandte Skills