My characters' legs are not bending

Godot Version

3.4

Question

I have a simple pi-shaped character I’m using to learn the workflow from Blender to Godot.


Say hi! pi guy! The blue block indicates his forward vector.

When I play a walk animation in the editor, his knees bend beautifully.


You’ll get that square one day, pi guy.

But when I test the game, his legs get locked straight.


The red ball is his target and the green ball is the cursor.

Sometimes the legs sort of bend, but only ever for a frame.

Originally, pi guy was three blender objects. A cube and two cylinders, controlled by one armature. I was also originally importing using .glb, but thought it might help with this issue to just use the .blend file.

Eventually, I went to a tutorial and found a great suggestion in this video that multiple object animations should be on their own tracks. I tried this, and it did not work (maybe because all my objects were weighed on the armature?). So, I tried joining all the objects into one geometry, added as a child of the armature with automatic weights. This at first caused an issue where godot thought the character was about 3x as wide as normal because of some offsets with the transformation, but the knees were bending!

I went back to blender, fixed the transforms by applying the transforms the cube had attached to it, came back to godot, and the knees were stiff again. I am this close to sending the guy in for surgery. I give up. What’s happening here? How can I fix it?

Things I have also tried

  • Disabling root motion
  • Reparenting the character to the armature in blender and reimporting
  • Baking the animations without IK (which I’m using to control the problematic appendages, this approach is also suboptimal for workflow)
2 Likes

Maybe your guy is getting LOD’d set the mesh’s LOD bias higher

1 Like

This worked for me. Thanks!

There were two issues related to the mesh LODs:

  1. In the .blend import screen, “Generate Mesh LODs” was enabled. This is fine normally, but the LOD generation probably didn’t like a simple cube being attached to such complicated legs. I probably could have adjusted the bias, but I just turned it off since this character is a placeholder.
  2. In the editor viewport, the Perspective menu was set to Display Advanced → Disable Mesh LOD. Not sure if this was default behavior. But that’s why I couldn’t see the legs getting straightened out in the editor.