What is True Motion? (Patreon)
Content
True Motion is a custom script for NeckFX that uses advanced physics based on calculations of G-Force, head mass, inertia, and damping, thanks to the latest achievements in reverse engineering the source code in CSP.
This opens up many possibilities for various mechanics.
I didn't stop at the calculations mentioned above, and at the moment the script calculates camera movements based on G-Force, head weight, inertia, damping, spring mechanics (to simulate body muscles and resistance to movement), longitudinal and lateral body roll, vehicle weight, suspension compression speed for each wheel, as well as impact loads on the wheels, which makes this camera probably the most realistic in the racing segment of the gaming industry.
At the same time, regular NeckFX doesn't use any of the above. It is simply a smoothing system used to simulate camera physics, and it was a pretty good temporary solution. However, some functions work very well, so some NeckFX mechanics are present in the script.
🟣No Hesi
At the moment, there is no support for cars with arcade physics from No Hesi. The camera will work worse than shown in the video. The gameplay was recorded using cars with realistic physics.
🖥️ Triple Screen & Drift Support
It's also worth mentioning that the script supports Triple Screen monitors (where head turns to the right and left are disabled) and drifting.
You can switch between their versions in the content manager without leaving the game, or through the free in-game NeckFX application by Garry Real.
⚙️ Technical Nuances of the Script
The camera fully reveals itself on standard laser-scanned tracks and tracks with lots of surface irregularities, which regular modded maps usually don't have.
However, I take this into account while working on the script and run many tests on different maps. Overall, the script performs quite well on modded maps, which can be seen in the video.
Another huge downside for the camera is replays.
Physics in real time is generated at a frequency of 333 Hz, while in replays the maximum physics frequency currently reaches only 64 Hz. Because of this, most camera movements are simply cut off, and this cannot be compensated for.
So if you want to edit the camera settings, do it in real time.
You can configure the camera without leaving the game, since AC loads the code on the fly after saving changes with the Ctrl + S combination.
I use Visual Studio Code.
🚀 Future Plans
I'm gradually reaching the limits of what can currently be done with the existing code, and in the future I will move toward movement simulation, because right now it is only an imitation — movement along the axes from point A to point B in a line.
There are also plans for a UI that will allow you to configure the camera without messing around with the code.
However, I will start implementing it once I decide on the list of mechanics that I still want to introduce, because CSP still doesn't provide access to the code required to implement certain mechanics.
⚠️ Important Clarification
I mentioned realism, but my goal is to make the camera not only realistic, but also comfortable, responsive, and most importantly — playable.
🔵 Discord
Also, don't forget to visit my Discord to stay up to date on the latest news
🧩 Current List of Mechanics
And finally, I'll leave a list of the mechanics that are currently present in the script:
1. Dynamic FOV / GT7 FOV
Dynamically changes FOV based on speed and G-Force.
2. Direction Look / Drift Look / Velocity Align
Turns the camera view in the direction of movement, sliding, and drifting. This also includes SLIDE_FOLLOWING, VELOCITY_ALIGN, drift zone, and head limiter.
3. Steering Align
Adds camera reaction to steering wheel movement.
4. XYZ Core Dynamics
Basic physical camera displacement along the X/Y/Z axes from acceleration, suspension, and G-Forces. This is the foundation of head movement in space.
5. Head Physics / Spring-Damper
General head physics: spring, damper, inertia, and displacement limits.
6. Impulse Mass-Suspension Layer
An additional layer of sharp impulses along X/Y/Z from G-Forces and suspension. Needed for impacts, collisions, and fast physical inputs.
7. Road Noise
Road noise from per-wheel suspension changes. Adds small movements from the road surface, joints, and irregularities.
8. Downshift Vibration
Vibration during downshifts at the moment of a sharp increase in engine RPM.
9. Y Road Reaction
A separate vertical camera reaction along the Y axis from the road and suspension. Makes the camera feel more alive on uneven surfaces.
10. Y Road Ignore
Ignores irregularities along the vertical axis. Needed to slightly detach the camera from the car, redirecting excess dynamics from the camera to the movement of the car body.
11. Y Road Pitch Ignore
A separate ignore mechanic for the longitudinal camera tilt. Simply put, it detaches camera pitch from body pitch. It can be noticed during acceleration or smooth road irregularities.
12. Road Roll
Camera roll in corners with a slight delay.
13. Road Roll Bump
Micro-roll from bumps and vertical impacts during long corners.
14. Wobble
Slight rocking, roll wobble from road noise, suspension slam, bump wave, and suspension dynamics. Adds a bit of dynamics to camera movement. The higher the speed, the more dynamics.
15. Bump Oscillation
Oscillation from per-wheel suspension impacts. The camera reacts with vertical displacement to smooth, large irregularities on the road.
16. Yaw Lag
Delayed view/head movement along yaw (movement to the right and left). Used to create the feeling of head inertia in corners.
17. Dynamic Pitch
The main camera pitch. Calculates tilt from longitudinal acceleration, suspension, suspension compression speed, angular velocity, wheel loads, and road micro and macro signals.
18. Pitch Long
Separate pitch from longitudinal acceleration/braking. Needed to keep acceleration and braking responsive even if the overall pitch is heavily damped.
19. Pitch Land
A separate pitch impact system for jumps and sharp loads on the wheels.
20. Pitch To Z Link
Links pitch with the Z axis (longitudinal movement). Slightly synchronizes head tilt and longitudinal camera displacement on long, smooth irregularities.
21. Shift Jolt
A separate soft block for a head nod and slight vibration during gear shifts, only on H-shifters.
22. Compact Z Dynamics
A separate longitudinal block along the Z axis. Needed to create the feeling of a sharp vehicle launch, when the car feels like it is being pulled out from under the camera.
23. Z Revcut
Camera jerking along Z at the rev limiter when there are real longitudinal jerks of the vehicle. Also synchronized with pitch.
24. Z Seat Hit
Simulates the head/body hitting the seat along the Z axis when the camera reaches its displacement limit.
25. Suspension Differential Ignore
An ignore/displacement system based on suspension differences between the wheels, for longitudinal body roll on small bumps.
26. Replay / DT Stabilization
Stabilizes the camera in replays to prevent sharp camera jumps.