Bone Driven Controller for tank wheel and tracks


Even through my profile is quite old on this forum, I’m quite new to the usage of UE4.

I’m currently trying to setup physics for a tank and I struggle getting the Bone Driven Controllers to do what I want. Perhaps someone can help me out on this.

My tank is setup using wheel joints and suspension joints. The wheel joints have the wheels rigged to them (WL_x with x=1-7). The suspension joints are located at the exact same spot to the corresponding wheel joint (LT_x with x=1-7). In the image shown below, WL_3 and LT_3 are in the same spot (before the physics simulation). The suspension joints have parts of the track mesh rigged to them.

This way, I can freely rotate the wheel and move the suspension joint to move the track part. I’ve tested this is in the skeleton view with disabled animation blueprint.

Now, I have created the physics part which uses capsules on each wheel joint to detect interaction with the underground. I’ve created the contraints and when I move my tank onto an obstacle, the wheel rotates accordingly to the movement and moves up/down accordingly to the physics collision. In the image below, you can see that the wheel reacts accordingly to the obstacle touched.

Because I want to bend the tracks, I want to move the LT_3 to the same spot than the WL_3. Given that the suspension only alters the position in the Z-axis, I’ve created an animation blueprint using bone driven controllers to copy the z translation of WL_3 to LT_3. The setup is show below.

The thing is, it doesn’t work. I’ve assigned the animation blueprint to the pawn blueprint but the LT_x parts won’t move.

Can anyone point me to the right direction to fix this issue? Do I have to tick one or another checkbox to make this work?

Also, when the animation blueprint is linked to the pawn blueprint and when I’m in the skeletal view, I cannot move the WL_x bones. I have to disable the animation blueprint to be able to do so. Any idea why this is happening? Given that I do not animate WL_x but simply copy its z translation, I thought I should be able to move it.

Thanks for pointing me into the right direction :slight_smile: