In the past I worked on UE4 vehicle components. I even extended the UWheeledVehicleMovementComponent to support manual transmission. Now I want fully custom vehicles, so I started my PhysX vehicle implementation. Looking deep in the engine code, vehicles are so much integrated into the engine. I wrote the classes required (AnimNode, AnimNodeGraph, AnimInstance, etc…), but I could not get a fully working vehicle. I want to know if it is possible? If not, I will stop the research.
There is a change in 4.15 that the vehicles were moved to a separate plugin so you can have a better look at the system it no longer merged with the engine code.
Some code was changed in 4.14. I believe it is due to PhysX SDK updgrade. For example: UPhysicalMaterial has properties related to TireFriction. I think this is nonsense, it can be moved to UTireType since UPhysicalMaterial is a very core component of the engine. Also FPhysXVehicleManager is referenced in so many places. I’m happy to hear that vehicle API was separated from the engine.
Also I wonder why TireForceShaderFunction is overriden? Why not the default? Camber angles are not supported, Roll axis of the wheel is always 0. Is it on the plan?
I have been trying to decide what to do about vehicles as well but everything I read about phsyx Vehicles everyone says they are fundamentally broken due to wheel collision handling.
I think PhysX vehicles are satisfactory. There are some good examples out there. Fully implementing without PhysX will be a hard challenge. What I’m trying is to tweak my vehicles when I need it. For example, manual transmission or do not auto reverse when pressing brake. I just don’t like the UE4 way. Btw, I worked in a simulation company and implemented some weird vehicles.