Your head, neck, body, inner ear, brain, and eyes together provide phenomenal vibration isolation and image stabilization. This is the one thing I have felt was missing from Assetto since day 1, especially in VR. I was thrilled to learn that CSP v0.2.0 provides full control over the head motion in Assetto Corsa, allowing me to finally create this.
AC Head Physics is a scratch-written physics engine that transfers g-forces and torques from the car to your head through a "neck", including all 6 degrees of freedom (3 displacement and 3 rotation axes). Each axis is characterized by an adjustable stiffness (i.e., how strong your neck is) and damping (how fast head movement slows down), and can be enabled or disabled. Rotations include optional additional stabilization to somewhat compensate for the lack of inner ear feedback from the game (we aren't in the matrix yet). Everything works identically with flat screens and VR.
For me, this enhances immersion, conveys acceleration, and reduces nausea (especially in VR), but it also allows my eyes to better follow the track so I can identify apices like a mf tryhard nerd. Compared to default behavior, the car will feel like it's "floating and rattling underneath you", not unlike the sensation in a real car (try watching with your periphery next time you're driving ).
Note the default settings are tuned to something like a GT3 car. For something more intense, you may want to increase the stiffness, e.g., by increasing the global stiffness modifier. If you mouse over each parameter, you will see documentation in Content Manager.
INSTALLATION (NOT STANDARD!)
- This physics engine requires CSP v0.2.0 or later.
- You cannot just drag this zip file onto Content Manager.
- Extract the "ac-head-physics" folder into ...\assettocorsa\extension\lua\cockpit-camera so that the "ac-head-physics" folder is sitting next to the "default" folder.
- Enable it in Content Manager by navigating to: Settings -> Custom Shaders Patch -> NeckFX, activating "Replace original CSP behavior", then selecting the script "ac-head-physics" at the end.
- If you want access to all the settings within Content Manager (note you can adjust these while the game is running!), you may need to get the latest untested Content Manager version by enabling Settings -> Content Manager -> Testing access.
ROADMAP
The basic physics engine is in place, but for completeness (i.e., for other people ) I would like this to eventually include the following:
- Option to link steering wheel to head turn.
- Option to look in the direction the car is drifting.
- Option to look ahead at the track as it turns.
NOTE
Please don't review bomb to try and get what you want. I made this for me but thought others might benefit from it. If something is confusing, you find a bug, or want to discuss ideas, the best way to get in the discussion is to join https://discord.me/LoPeN and navigate to #dev-corner. You can also use the discussion tab of this website (though I check that less frequently).
CREDITS
Jack: Physics nurd. Code nurd. Verbal punching bag at the League of Perpetual Novices.
Jordash: Wrote the original VR stabilization script that got my foot in the door. He also gave all kinds of technical help and troubleshooting with AC (and video editing! ).
Rowin & his distinctive Duca shoes: Extremely fast driver with real-life track experience, gave lots of useful feedback about what default settings feel the most realistic (on a flat screen).
Damgam: Uncanny ability to break the physics engine. Provided valuable testing, videos and feedback that helped solve the problem.
The League of Perpetual Novices: Lots of testing and feedback. Lots of laughs and good times (now for more than 20 years!). Join https://discord.me/LoPeN for fun-focused, inclusive racing and more. Newbies and fasties welcome!
CHANGE LOG
v1.3.4b: Low-FPS stabilization
- Spring-inertia physics now uses RK4 solver. This is more accurate than the original method, and is more stable at low frame rate.
- Coded a hard ceiling on the damping of 1 (i.e., critically damped, no oscillations) for all 6 DOF. This will be imposed even if you set the damping higher in Content Manager.
- Adjusted the "soft" limits in Content Manager sliders.
- Added advanced option to limit the per-frame step size.
- Minor code clarity improvements.