Animations get screwed when importing from Blender
Asked Answered
L

4

0

I'm trying to import some animations made in Blender using armatures, but they glitch out badly once they make it into Godot.

For example, in this one I moved one leg upwards and I rotated the arms up and down. The leg works fine, but the hands stretch instead of moving with the arms:

This other one is an idle loop with the character bouncing very slightly up and down. But once in Godot, the arms twist badly, the body collapses into the legs, the legs themselves float above the floor...

I have an animation which is just the character in a T-Pose and there everything looks fine, there is no distortion at all:

I'm exporting from Blender to glb, I've tried tweaking some of the export and import settings like disabling the optimizer, but nothing seems to work. I've spent the whole day with this and am running out of things to try.

I'm using Blender 4.0 and Godot 4.1.1

Lotuseater answered 24/2 at 0:47 Comment(0)
L
0

Looks like the problem is with the bonemap. If I don't use a bonemap then the animations work as expected, though then I can't share them through different characters ๐Ÿ™

I'm using rigify to generate the control armature in Blender, I export only the deformation bones but when I try to map them to the Godot skeleton it seems like it doesn't like any bones; After I select all bones manually, only the spine bones are marked in green, the rest are marked in red to signify an error, but I don't get any more information:

Lotuseater answered 24/2 at 9:3 Comment(0)
O
1

Lotuseater I've spent the whole day with this

Just one day trying to figure out animation? You're at the beginning of your journey.

It's a very interesting question. Can you share the sources โ€” Animation in Blender and a minimal project from the engine?

Oven answered 24/2 at 12:28 Comment(0)
L
1

Oven
I figured it out: The armature that Rigify creates and the one Godot for humans just aren't compatible, the number of bones and relations are just too different. But there's a workaround: There's a Blender add-on (Rigodotify: https://github.com/catprisbrey/Rigodotify) that generates a special skeleton that is compatible with Godot AND can be used to generate a Rigify control armature as well. So, you create a Rigodotify armature in Blender, create the Rigify control armature from it, press a button to "godotify" it and then when you import your skeleton in Godot it's immediately recognized, you don't even have to change anything in the skeleton settings, all bones are mapped automatically ๐Ÿ™‚

This way I can use some mixamo animations as placeholders and later replace them with my own as I create them. And I can also share my created animations between characters.

Lotuseater answered 24/2 at 18:7 Comment(0)
O
0

Lotuseater But there's a workaround: There's a Blender add-on (Rigodotify: https://github.com/catprisbrey/Rigodotify) that generates a special skeleton that is compatible with Godot AND can be used to generate a Rigify control armature as well.

That's an interesting solution. Thanks for the information. I'll have to try it out. I did it a little differently.

Oven answered 24/2 at 19:36 Comment(0)

© 2022 - 2024 โ€” McMap. All rights reserved.