Community编程与开发github.com

showcase-video

Record and cut a short showcase video of a game mod, or a compilation of clips, ready to post on X/YouTube. Records the game window with only the game

showcase-video 是什么?

showcase-video is a Cursor agent skill that record and cut a short showcase video of a game mod, or a compilation of clips, ready to post on X/YouTube. Records the game window with only the game.

兼容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/rehan-remade/universal-modder/tree/main/skills/showcase-video

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Showcase video

A mod isn't finished until you can show it in 30 seconds. The toolchain is um win record (capture), um video contact (look), um video compile (edit), all ffmpeg + Pillow.

1. Make the take repeatable

  • Script the action. Use a mod-side timeline or command sequence (spawn enemies, fire the weapon, cue the boss), a scenario with triggers and camera moves, or a WinDrive command list. The first clean take should be reproducible exactly, so you can reshoot after a fix.
  • Restore the world before each take. Explosions crater worlds; units die. Keep a pristine copy with um backup and restore it every take.
  • Clean frame. Hide debug text, fix the camera zoom (the Terraria showcase used 1.5x so 1080p frames read like a 720p cut), run at full speed when unfocused, and hide the cursor (capture uses capture_cursor=0).

2. Record the window + the game's own audio

um win record --exe Game.exe --out C:\caps\take1 --seconds 40      # -> take1.mkv, take1.audio.raw, take1.json
um video first-frame C:/caps/take1.mkv                              # where gameplay starts (skips loading screens)
um video mux C:/caps/take1.mkv C:/caps/take1.audio.raw C:/caps/take1.json take1.mp4 [--offset 0.25]
  • Video: ffmpeg gfxcapture of that window only (GPU frames, no desktop). It encodes with NVENC, AMF or QSV when available. NVENC H.264 maxes out at 4096 px wide, so the recorder scales above that; for 32:9 screens, crop to the centre 16:9 with --crop.
  • Audio: WASAPI process loopback of the game's PID (um/ps1/ProcLoopback.ps1). Only the game is recorded; no Spotify, no notifications. It's timestamped so the file position is wall time. Muxing uses the recorded offset. Fine-tune with a visual/audio sync event (a flash vs its boom) and pass --offset.
  • Inside a mod (optional): start and stop recording from the mod for frame-exact takes. Never block the game's main thread while stopping ffmpeg: send q, then wait off-thread. Write .mkv so a killed recorder still leaves a playable file (see examples/terraria-tmodloader/reference/InModRecorder.cs).

3. Look before you cut

um video probe clip.mp4
um video contact clip.mp4 sheet.png --every 1.5 --cols 6     # a timestamped grid; read it, pick in/out points
um video contact clip.mp4 zoom.png --start 20 --end 30 --every 0.5

Pick the peak moments: the explosion, the boss reveal, the unit in formation. Write in/out times into the EDL.

4. Edit with an EDL

um video compile edl.json out.mp4 (--preview renders half size and fast). The full format is in um video --help.

{
  "size": [1920, 1080], "fps": 30,
  "theme": {"accent": "#B6FF3B"},
  "transition": {"type": "fade", "duration": 0.3},
  "clip_volume": 0.8,
  "music": {"path": "music.mp3", "volume": 0.5},
  "watermark": {"path": "logo.png", "height": 54, "corner": "br"},
  "segments": [
    {"clip": "take1.mp4", "in": 9.0, "dur": 3.0, "hook": "Terraria, but with a tactical nuke."},
    {"clip": "take1.mp4", "in": 24.2, "dur": 4.5, "title": "Tactical Nuke", "transition": {"type": "pixelize"}},
    {"clip": "take2.mp4", "in": 3.0, "dur": 5.0, "title": "Drone Mothership boss"},
    {"card": {"title": "Fal Arsenal", "sub": "a Terraria mod"}, "dur": 2.5}
  ]
}
  • Transitions: any ffmpeg xfade type (fade, pixelize, slideleft, smoothleft, circleopen, zoomin, radial...) or cut.
  • Fills: for non-16:9 clips, fill: blur (blurred backdrop), crop or pad.
  • Per clip: speed and volume, zoom to punch in past UI, crop [x, y, w, h] to reframe.
  • Music: um fal music "..." --seconds 60 makes a bed. Set bpm and use beats instead of dur to cut on the beat; um video beats music.mp3 estimates tempo and first beat.

Style that works (from real feedback)

  • Titles: one line naming what's on screen ("Wonder: the Transamerica Pyramid", "Robotaxis and Delivery Drones"). No small explanatory captions about how it was made; that goes in the post text.
  • Pace: get into gameplay within 2-3 s; menus and setup stay under 3 s. Clips run 3-5 s each. End on the mod name or URL and fade out.
  • Sound: keep the game's audio. It sells impacts. Music under a compilation, clip audio around 0.5-0.8.
  • Compilations of other people's clips: credit every creator on screen (credit: "@handle") and in the post, and ask permission when it's promotional. Don't imply their clips were made with your tool. Download only public posts, and only what you'll use.
  • Last step: look at a contact sheet of the finished video before sharing it.

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

asset-pipeline

Turn generated or hand-made art into exactly what a game engine loads. Covers sprite cutout, trim and nearest-neighbour fitting to frame sizes, pixelation to a palette, sprite sheets and strips, player/team-colour masks, seamless textures, and rendering a 3D model into sprite frames from the game

fal-assets

Generate game assets with fal (fal.ai) through the fal MCP server, the `um fal` CLI (REST) or `fal api`. Covers sprites and icons with transparent backgrounds, consistent variants and animation frames, pixel art, seamless textures, PBR material maps, image-to-3D models, remeshing, auto-rigging, sound effects, music, voice lines, and trailer or cutscene video. Use whenever a mod needs new art, audio or 3D models, or the user mentions fal, generating sprites, textures, models, SFX or music for a game.

game-automation

Launch, see and drive a real game so an agent can test its own mods. Covers launching via Steam or the exe, windowed mode at a fixed size, screenshots of the game window (GPU-safe capture), clicking and typing into menus, holding keys, relative mouse, crash-reporter cleanup, killing by PID, reading logs, scripted test scenes, and an in-game JSON bridge that lets an agent observe and act. Windows-first (also from WSL), with notes for Linux and macOS. Use when a mod must be verified in game, when navigating menus automatically, or when building a repeatable test or demo scene.

game-recon

Figure out how a specific installed game can be modded, before writing any mod code. Covers where it

game-research-websearch

Research a game, engine or modding technique on the open web with archive-aware, rate-limit-safe searches — Wayback Machine/archive.today for dead forums (XeNTaX, Zenhax, old threads), GitHub code/repo search, Nexus/Steam Workshop/Thunderstore APIs, Reddit JSON, YouTube transcripts, plus archive snapshots as evidence. Use when starting work on a game (

mashup-mods

Build cross-game mashups and total conversions, the

mod-any-game

Mod a PC game the user owns, taking an idea to working in the real game and recorded. It covers new items, weapons, enemies, bosses, units, civilizations, mechanics, art, sound, VR and cross-game mashups. Use when the user wants to mod, extend, hack on, reverse engineer or mash up a game (

port-a-mod

Port an existing mod to a newer game version or another mod loader while keeping its behaviour, values and quirks. Typical cases are an old Forge 1.7.10 or 1.12 Minecraft mod moving to modern Fabric or NeoForge, a Skyrim LE plugin moving to SE/AE, or a tModLoader 1.3 mod moving to 1.4. It covers pinning one source version, a private decompiled reference, an adaptation matrix, extracting the mod

publish-mod

Package and release a finished game mod. Covers the pre-release lint (no game files, decompiled code or leaked keys), README and install steps, credits and AI disclosure, versioning, where to upload (Nexus Mods, Steam Workshop, Thunderstore, mod.io, GitHub releases), and the post with a video. Use when the user wants to ship, share, upload, release or post a mod.

reverse-engineering

Read how a game actually works so a mod can hook it. Decompile .NET/Mono (ILSpy), IL2CPP (Cpp2IL, Il2CppDumper), Java (Vineflower) and native code (Ghidra, IDA, via MCP servers); dump data and asset formats; reverse-engineer a binary file format and prove it with a round trip; read live memory (Cheat Engine, Frida, x64dbg); find render passes (RenderDoc). Use when a mod needs game internals, e.g.

share-field-notes

Search and contribute to the shared AI-modding knowledge base, where field notes record how specific games were modded, decompiled or reverse-engineered (exact versions, route, engine facts, verification, gotchas). Use before starting work on a game (

相关技能