agentsclimarketplace

Camera system

Skill Firzus/agent-skills/skills/game/camera-system

Agent Skills for AI coding assistants

Install
npx -y skills add Firzus/agent-skills --skill camera-system

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Architecture blueprint for game cameras across genres: virtual-camera stacks, blending brains, orbit/follow rigs, collision and occlusion, combat lock-on, genre-specific cameras, damping math, shake, FOV, photo mode, and comfort. Use when designing or building game cameras, dynamic framing, camera collision, lock-on, shake, split-screen, VR comfort, or when the camera jitters, fights the player, or causes motion sickness.

SKILL.md

6.4 KB, as published. Nobody here has run it

Camera System

Build the camera of a game — the third pillar of feel alongside character-controller and combat-system. References: John Nesky's 50 Game Camera Mistakes, God of War's one-shot camera, Itay Keren's Scroll Back (2D cameras), the Toric-space camera-control research, and Cinemachine as the reference implementation. Excluded: authored cutscene cameras on a timeline (cinematic-system).

The architecture rule

A stack of declarative virtual cameras + one brain that blends. Gameplay never writes the final camera transform.

vcams (one per context: explore / combat / aim / dialogue / photo)
  = declarative configs {follow target, look target, distance, offsets,
    damping, FOV, noise}
brain = picks the live vcam by priority, blends via a per-pair blend table
camera state = a data struct (pos, rot, FOV, lens) — blending = interpolating
pipeline per vcam: composition → collision/occlusion → noise/shake
volumes = the designer override layer (level-placed, blend in/out)

Gameplay talks to the system through states and events only — the same router/stack discipline as menu-ui-manager.

Nesky's law (the input contract)

Never fight the player's input. Every automatic behavior (recentering, auto-framing, soft-lock bias) suspends the instant the player touches the camera stick and resumes only after an idle delay. Manual input always wins. And cut — don't blend — when passing through opaque geometry (unless you've signed up for the one-shot constraint).

Reference map

FileCovers
rig-collision.mdThe virtual-camera model, the orbit/follow rig (composition dead/soft zones, recentering, pitch coupling), collision vs occlusion (whiskers, asymmetric resolve, fades, the camera-only layer)
combat-contexts.mdSoft-lock and hard lock-on, group and big-enemy framing, contextual vcams and designer volumes, the one-shot constraint (GoW), procedural dialogue cameras
genres.mdGenre-specific cameras: FPS (view models, head-bob, recoil, ADS), racing (speed-FOV, look-to-apex), RTS (edge-pan, strategic zoom), fighting (both-fighters framing), platformer (the Keren taxonomy, look-ahead), VR (comfort-first rules), MOBA, isometric ARPG, fixed-cam horror
cinematography.mdShot vocabulary, framing fundamentals (rule of thirds, look-room, 180°/30° rules), camera-movement language and the dolly-zoom, procedural cinematography systems (Virtual Cinematographer, Toric space), lens/FOV emotional language, letterboxing/aspect, spectator/auto-director cameras
math-tech.mdFrame-rate-independent damping and the critically-damped spring (SmoothDamp), the update-order/jitter problem, collision/occlusion math, look-at and quaternion math, FOV/projection and the dolly-zoom formula, networked/split-screen cameras, performance
feel-accessibility.mdThe trauma shake model, impulses, FOV as feel, the motion-sickness accessibility baseline, photo mode
pitfalls.md16 failure modes (symptom → cause → prevention) with debugging order and ship checklist

Build order (4 shippable tiers)

Tier 1 — A camera that doesn't hurt
- [ ] Brain + vcam stack + blend table; explore vcam (orbit + follow, composition)
- [ ] ONE CLOCK: camera updates after the interpolated character (the #1 jitter)
- [ ] Pitch clamps (~±85°); sensitivity curves + invert; recentering that yields
Tier 2 — Collision & occlusion
- [ ] Sphere/frustum cast; asymmetric resolve (snap in, smooth out); hysteresis
- [ ] Whiskers; camera-only collision layer; min distance + character fade
Tier 3 — Combat & contexts
- [ ] Soft-lock bias (toggleable); hard lock-on (frame both, angular speed cap)
- [ ] Group + big-enemy framing; context vcams; designer volumes
- [ ] Shake layer: trauma model + impulse bus, one application point
Tier 4 — Polish & cinematics
- [ ] Procedural dialogue cameras (shot-reverse-shot, 180° rule, validation)
- [ ] Cinematic takeover = push/pop with snapshot/restore; FOV-as-feel
- [ ] Photo mode; accessibility baseline (FOV slider, shake/bob/blur toggles)

Key numbers (starting points — tune by playtest)

ParameterValueAnchor
3P distance~2–4 m explore (CM 2 m, UE 3 m)engine docs
FOV~60° vertical console; sprint +5–10° (in ~0.15 s, out ~0.3 s)convention
Dampingper-axis: lateral 0.1 s, vertical 0.5 s, depth 0.3 s (CM)engine docs
Trauma shake+0.2 small / +0.5 big, decay ~1.5/s, shake = trauma², Perlin 0.1–4 HzEiserloh GDC
Exp dampingx = b + (a−b)·exp(−λ·dt) (fps-independent); SmoothDamp = critically-damped springHolmér/GPG4
SpherecastUE SpringArm ProbeSize 12 uu; min radius = near-plane corner radiusUE source
FPS FOVworld 80–110 HFOV; viewmodel ~70–75; ADS sway −50–80%MoCap Online
Platformer look-ahead80–120 px; Celeste 100→150 px on dashKeren / Celeste src
VRsnap-turn 30/40°; constant velocity only; never control the cameraMeta/USI

Full sourced tables (with the "undocumented — don't invent" list) in each file.

Engine mapping (summary)

Generic blockUnity 6 (Cinemachine 3.x)UE5 (5.4+)
Brain + stackCinemachineBrain + CinemachineCamera prioritiesAPlayerCameraManager + Lyra camera-mode stack; Gameplay Camera System (experimental 5.7)
Orbit rigOrbitalFollow vs ThirdPersonFollowSpringArm or GPC Boom nodes
CollisionDeoccluder + DecolliderSpringArm spherecast (no hysteresis — roll your own)
DampingSmoothDamp / Composer damping (per-axis)CameraLagSpeed + lag sub-stepping
UpdateBrain LateUpdate/SmartUpdate + Rigidbody InterpolateTG_PostPhysics tick group
ShakeImpulse Source/ListenerUCameraShakeBase + PerlinNoise pattern

Full detail in math-tech.md.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.