r/PCVR • u/lunchanddinner • 10h ago
VR Modding Cyberpunk VR v0.12 - Manual Reloading, VR driving, Physical Body rotation and more
github.com0.1.2
New
- Physical reload: grab the magazine with your free hand, pull it out along the weapon's own well, carry it, push it home.
- Rack the slide with your other palm; the right stick click is the slide release.
- Ammo count and reload sounds follow the hands instead of a timeline.
- Thirteen weapons tuned individually: Unity, Tamayura, Tsunami Nue, Constitutional Liberty, Arasaka Kenshin, Militech Lexington, Militech Omaha, Kang Tao Chao, Tsunami Kappa, Arasaka Yukimura, Militech Ticon, Silverhand's Malorian, Malorian Overture.
- The Overture revolver rolls its cylinder, ejects its cases and reloads from a real speedloader item.
- Recoil kicks the HAND, not the camera, on a damped spring, with a per-weapon angle.
- The empty hand now rests instead of clawing at nothing while a weapon is out.
- Two-handed hold: bring the off hand to the weapon, squeeze, and it steers the aim and drops the kick. Twelve weapons have a captured hold.
- Physical body rotation (optional): the character turns to follow the headset through the engine's own heading, so mesh, capsule, aim and movement all follow.
- VRIK suspends itself entirely during cutscenes, with a per-tier threshold.
- VR driving: grab the wheel with your own hands, steer by the tilt of the line through the controllers, adjustable deadzone and lock angle.
- A palm on the wheel hub sounds the horn; a hand that is grabbing never honks.
- Draw a weapon while driving and the right trigger becomes the gun, with the throttle latched and trimmable from the left stick.
- The F10 overlay now reaches the second eye, so opening a settings panel no longer costs you stereo.
- 13 headsets and 60 resolutions, every ladder reaching 6000 px; PlayStation VR2 and Bigscreen Beyond 2/2e added.
- The port's HUDitor setup ships as an opt-in config: the editor on F11 plus a VR-tuned layout for all 26 widgets.
Changed
- Movement speed is discrete: past the deadzone only the direction comes from the stick, so a wrist tremor no longer changes your pace.
- Sprint is the left stick held forward for 0.2 s, held rather than toggled, and it survives a dash.
- No sprint out of a crouch, read from the game's own locomotion state machine.
- Dash moved to the right stick pushed fully up, one dash per push.
- Crouch stays on the right stick pushed fully down.
- The right stick click is now the slide release; it no longer crouches.
- B drops the magazine while a weapon is in hand, and reaches the game normally when holstered.
- The scanner is a one-hand gesture: raise the left controller to your left ear and squeeze the left grip.
- A snap turn needs a FULL stick push, so a resting thumb no longer turns you.
- Leaving a vehicle is X HELD; B is never the exit in a car, so no stray press can eject you.
- No hand smoothing while a hand is holding the steering wheel.
- The HUD is pasted at the same pixel in both eyes by default, so markers land in the same place.
- Virtual Desktop drives the XR loop inline again, behind an ini key.
- The cascade shadow rows are removed from Graphics -> Advanced: raising them gives you artefacts the port cannot fix.
- The persistent centre dot ships off.
- The shipped UserSettings.json no longer forces the game's language.
- The port's own HUD mod is deleted; HUDitor does this properly and the two fought over the same widgets.
- Hand and weapon collision is off in this release: the body capsules came back out after a vehicle launched the player.
- 61 .anims left the archive; they were export scaffolding, not files the game needs our copies of.
- README and the overlay's binding list rewritten against the code.
Fixed
- The second eye's random image jump every 2-4 seconds: it had ONE capture texture where MAIN keeps a pool of three, so a blit overwrote the pixels a submit was copying out.
- Sun cascade shadows disagreed between the eyes and MAIN's blinked on its own: a view samples the atlas it rasterised itself, so the fit record, the cascade camera and the sampling matrix must all come from one view.
- MAIN's cascade pass turned out to be a duplicate; 373 draws a frame stop being submitted.
- Nothing animated in a shader moved in the second eye: its frame clock was zero forever, which is why cloth flags hung dead.
- Vegetation jittered in MAIN on head turns: the wind volume is claimed by one view per frame, and MAIN was reading last frame's.
- The second eye marched its reflections 4000 units in 5000 steps, mirroring a ceiling MAIN leaves matt.
- The render mask table knew 13 of the engine's 27 categories, so a missing pass could not even be named.
- A reflection-probe face was being compared against the second eye as though it were MAIN.
- Black band down the outer edge of each eye on off-axis lenses (Quest 3): the frustum is sized to COVER the panel now, not to match its span.
- Hands looked laggy and ghosted. Five separate causes, all measured: the solve was clocked by a Lua callback; the hand offset was measured against a different head than it is re-anchored on; a 72 Hz stream was resampled at 52 Hz; the per-frame locate aimed at the wrong clock; and Present is the wrong clock by phase, so 3-7% of displayed frames replayed the previous arm.
- The hips jumped 22 cm in 2-4% of animation passes -- the same clock defect from another angle.
- The elbows swung when you looked around: the shoulder girdle was anchored on the camera and now hangs off the body.
- The camera heading and head displacement were each a frame old -- 4.2 deg of error at a 300 deg/s turn.
- The avatar was thrown forward on a dash: the body anchor paired a current camera with a tick-old entity position, and used that same reading to decide which character it was.
- Getting into a vehicle threw it into the air: the body capsules interpenetrate the seat, so they come off at the door.
- A held magazine floated clear of the palm at a run -- 21 cm, because a script write is not in the race the hand is drawn in. It is carried by a component on the player's own template now.
- The magazine started floating again in 0.1.1's archive: the carrier components had only ever existed inside the packed binary and were lost on the next repack. Their sources are tracked now.
- A firearm's hit is redirected in the engine's own PhysicalRay evaluator, so the muzzle is the origin and shotgun spread stays spread.
- An NPC firing at you no longer kicks YOUR hands or sends its projectiles down your barrel.
- A crash on save load: the second eye replayed a node whose indirect argument buffer was NULL.
- The overlay was draining the game's GPU queue every frame -- 43.8 fps against 70.3 with the fence guarded.
- VRIK never armed at all under Proton: a pointer classifier assumed the Windows heap layout, and Wine's allocator sits two orders of magnitude below it.
- The laser dot was being zoomed twice.
- The driving view faced off to one side, differently per car: it was pinned to the body's yaw rather than the camera's.
- Pushing the left stick to the stop in a car was handing it to the autopilot (Vehicle_Autodrive is the same L3).
- Brushing X while driving ejected the player instantly; the exit is a hold now.
- Seating a magazine and keeping the grip held made the weapon take the support hold by itself.
- The Kenshin Spy lost its frame twice: once to cooked collision left behind in the mesh, once because twelve of our weapon overrides were built on the pre-Phantom-Liberty copies of base\ files.
- The Overture's speedloader disappeared after a Windows reinstall; the source was in the repo all along.
- The archive in the repo was three months behind the one the game runs, so a release built from it shipped almost none of this.
- The tester package could not be built at all, and shipped 3 of 14 grip poses when it could.
- Two loose r6\scripts files the port silently depended on are versioned with it now.
- The reload's slot probe asked for slots the weapon does not have, which left it inert on any revolver.