Repository navigation
feat: camera paths that circle the player, for HLAE (Stage 4 M6) - #64
Merged
Merged
Conversation
lib/campath.py turns the player's positions at a kill into an orbit (behind them, swinging 140 degrees around, aimed at the head) and writes it as mirv_campath XML in the demo's game time, with guard keys and the yaw unwrapped. Nothing uses it in a film yet: the M6 spike renders it first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stage 4 M6, part J: the camera path for the user's idea "film so we see the whole character", as an orbit around the player at the climax kill. With #60 (a clip's
cfg), a clip can load the path:lib/campath.py:orbit_samples(demo, steamid, ticks)gets the player's position andgame_timeat a few ticks from demoparser2, plus their view yaw at the first.game_timeis the time basemirv_campathuses. The tick isn't.server_start_tickto work out: the demo header doesn't have it.orbit_keysplaces the camera:campath_xmlwrites whatmirv_campath savewrites:<campath><points><p t x y z fov rx ry rz/>, where rx is roll, ry pitch and rz yaw. It adds a guard key one tick outside each end so the path eases in and out, and unwraps the yaw so the spline doesn't spin a full turn at ±180°.The format and the two traps come from cs2cinema's notes, which were tested with HLAE 2.192 in October 2026. Only the facts are used; that repo has no license.
Nothing uses this in a film yet. The M6 spike renders it first, with the user: one job of the Stage 4 climax clip four ways (POV,
spec_mode 3in the cfg,spec_mode 3throughmirv_cmd, and this orbit). It needs the newworker.pyon the render PC (already copied) and a restart. The spike answers whether the camera goes through walls, whether the timing is right, and whether it looks good enough to become a feature.How it was tested
tests/test_campath.py(new):look_atin Source's conventionA path made from the real demo: 13 keys around the climax kill at game time ~1290.0 s, following the player as they run.
🤖 Generated with Claude Code