My attempt to create a wheelchair for VR purposes has been plagued by lots of small issues.
It became clear the rigging had to be done exceptionally in order for UE4 to play nice.
We followed this article and used the template sedan for reference.
[TABLE=“border: 0, cellpadding: 10”]
Here is a video demonstrating the issue. The VehicleWheels are set up properly in the *VehicleMovement *(image), although a giveaway, that something might be wrong, is that the wheels didn’t line up with their joints/bones (image). Unlike the template sedan, where the wheels only require a very slight adjustment on the Y-axis.
Here is an image of my vehicle resting on the box collider, with bones debug drawn, along with PXVIS COLLISION enabled, to show the PhysicsWheels (black wireframe).
It is apparent they are shifted upwards slightly. Likely the reason the wheelchair tilts forward when placed on the ground.
An artist has provided me with rig identical to the UE4 Vehicle template sedan. The joint names differ, but I made sure to reference them properly.
As for the PhysicsAsset, I kept it simple and put a single box collider on the second root bone. Once again, simply mimicking the template sedan. Colliders on wheels and additional constraints are unnecessary, as the sedan has proven: you can simply remove all of it and it’ll still work, as the collisions done by the VehicleWheels is sufficient.
Upon closer inspection it seems the *VehicleWheels *are shifted upwards by some form of physics constraints / resolver. However, I had disabled Suspension Max Raise and **Suspension Max Drop **(image), so I’m not sure how to explain this behavior.
Setting negative values to compensate for the raise doesn't work either, it just introduces funky jumping of the vehicle. Have a look: https://youtube.com/watch?v=oEK1fBc4jMI
The only solution I could think of was compensating for the upwards shifting of the PhysicsWheels, so I merely lowered them further, until the mesh would stay above the ground plane
At this point I’m still suspicious of the rigging, as that is the main culprit with these issues. But I don’t want to rule out other possibilities, so I tried to present all the possible variables.
Any help is much appreciated!