UPDATE------------------
There's a new script available from @gurkesaft - which more closely represents Head Physics. It's great and has a few different settings you can tweak for driver preference. There is no lock to horizon vs car. You always move with the car and head physics are applied to stabilize the track/view.
---------------------------------
If like me you loved RHM but found it performing increasingly more poorly as CSP evolved, then you were likely excited when NeckFX came along... but alas, nothing I tried seemed to work for VR. Lock to Horizon get's us most of the way there, but I always feel a bit odd on elevation changes and banking.
So, with the aid of chatGPT, I made a NeckFX LUA script focused on VR, trying to replicate what I had with RealHeadMotion. It could likely be improved, but for now it does exactly what I've been looking for.
The script aims to mix lock to horizon and lock to car while removing sudden bumps. No G-Force influence or any of that nonsense.
There are minimal configuration options. There is a settings.ini file that doesn't appear to do anything, so just adjust the config at the top of the cockpit.lua script to your liking.
Roll and Pitch calculations get really small - down to 6 decimals. I found diminishing returns after about 4 decimal places.
Installation:
1. Download and Unzip to Assetto Corsa
(assettocorsa\extension\lua\cockpit-camera\vr-stabilize)
2. Navigate in Content Manager to CM>Settings>Custom Shader Patch>NeckFX
3. Enable and select the script.
My settings:
ROLL_LOCK = 0.8, -- Higher gives more car lock; lower for more horizon lock;
PITCH_LOCK = 0.9, -- Higher gives more car lock; lower for more horizon lock;
HEAD_LAG = 0.75, -- Max change per frame, lower to follow car pitch/roll more slowly. Also can effect bump and camera response if very low;
BUMP_MULTIPLIER = 0.025 -- Lower value to filter bumps, slowing camera response. Very low values will be look like lock to horizon;
Settings guide:
All settings are multipliers of each other - so you'll need to adjust to your liking. 0 roll or pitch lock will lock that axis to horizon, the more you increase car lock the more bumps are introduced. The head lag and bump multiplier work together to slow down the camera's movements during pitch and roll events - too much and it smooths the camera movements so much it may as well be lock to horizon.
As of writing, I'm running latest CSP preview 0.2.1preview2 (not sure if that makes a difference)
Make sure you are on the most recent Content Manager which exposes the script settings options.
DEMO!!
There's a new script available from @gurkesaft - which more closely represents Head Physics. It's great and has a few different settings you can tweak for driver preference. There is no lock to horizon vs car. You always move with the car and head physics are applied to stabilize the track/view.
AC Head Physics
INTRODUCTION 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...
www.overtake.gg
---------------------------------
If like me you loved RHM but found it performing increasingly more poorly as CSP evolved, then you were likely excited when NeckFX came along... but alas, nothing I tried seemed to work for VR. Lock to Horizon get's us most of the way there, but I always feel a bit odd on elevation changes and banking.
So, with the aid of chatGPT, I made a NeckFX LUA script focused on VR, trying to replicate what I had with RealHeadMotion. It could likely be improved, but for now it does exactly what I've been looking for.
The script aims to mix lock to horizon and lock to car while removing sudden bumps. No G-Force influence or any of that nonsense.
There are minimal configuration options. There is a settings.ini file that doesn't appear to do anything, so just adjust the config at the top of the cockpit.lua script to your liking.
Roll and Pitch calculations get really small - down to 6 decimals. I found diminishing returns after about 4 decimal places.
Installation:
1. Download and Unzip to Assetto Corsa
(assettocorsa\extension\lua\cockpit-camera\vr-stabilize)
2. Navigate in Content Manager to CM>Settings>Custom Shader Patch>NeckFX
3. Enable and select the script.
My settings:
ROLL_LOCK = 0.8, -- Higher gives more car lock; lower for more horizon lock;
PITCH_LOCK = 0.9, -- Higher gives more car lock; lower for more horizon lock;
HEAD_LAG = 0.75, -- Max change per frame, lower to follow car pitch/roll more slowly. Also can effect bump and camera response if very low;
BUMP_MULTIPLIER = 0.025 -- Lower value to filter bumps, slowing camera response. Very low values will be look like lock to horizon;
Settings guide:
All settings are multipliers of each other - so you'll need to adjust to your liking. 0 roll or pitch lock will lock that axis to horizon, the more you increase car lock the more bumps are introduced. The head lag and bump multiplier work together to slow down the camera's movements during pitch and roll events - too much and it smooths the camera movements so much it may as well be lock to horizon.
As of writing, I'm running latest CSP preview 0.2.1preview2 (not sure if that makes a difference)
Make sure you are on the most recent Content Manager which exposes the script settings options.
DEMO!!