I'm playing around with Godot and I want to have a 3D character with multiple animations so I can learn how the whole playing and blending of animations work. Since I am no 3D artist, nor animator, some googling led me to Mixamo where I got some characters and some animations to work with. I've been following the process described in this YouTube video for "fixing" the Mixamo files and combining multiple animations into one: https://www.youtube.com/watch?v=3Hk9ljcS1Ro.
Doing this manually in Blender sort of works, but is error prone and time consuming, so I found this script https://github.com/Johngoss725/Mixamo-To-Godot/blob/main/Mixamo_RM_Godot.py which I further modified and adapted to my needs. Now I can basically run this script and have it combine 150 different animations without skins and a single character with skin in a minute or two. Great success!
Except it only works with the XBot or YBot characters, all other characters I've tried this with results in a weirdly mangled character and I cannot figure out why...
Steps to reproduce:
New blender file -> Delete everything
Import XBot.fbx (I choose Automatic bone orientation and Ignore leaf bones)
Apply all transforms
Select the Hips bone
In Graph Editor select the Location keyframes -> Scale, Z, .01
Rename the action to T-Pose
Import Walking.fbx (I choose Automatic bone orientation and Ignore leaf bones)
Apply all transforms
Select the Hips bone
In Graph Editor select the Location keyframes -> Scale, Z, .01
Rename the action to Walking and stash it
Delete the animation armature
Back in the original XBot armature I open the NLA editor and select the stashed Walking action
Success!
Repeat the same steps for pretty much any other character (for example Dreyar) and you end up with a mangled animation...
I've messed around with various scripts and tools that all purport to handle this process automatically (i.e Mixamo -> Blender -> Godot) and they all have the same problem (in addition to many other problems) where they work with the XBot and YBot charachters, but none of the others.
Blender files, models and animations
Maybe it's my whole mental picture of how this should work that is wrong...
The way I understand it an animation is just a set of keyframes along a timeline, each representing the location and rotation of a given bone at a given point in time, along with some settings for how to interpolate between each keyframe.
Based on this it would seem logical that as long as my characters share the same skeleton with the same bones I should be able to apply the same animation to them with the same result. I understand there is a little more to it than that, but that is the basic concept, right?
But it seems that Mixamo does some "magic" when retargeting animations that I don't understand. The "easy" solution would be to download each animation for each character from Mixamo, but this is slow and tedious. It works for the XBot and YBot without downloading separate animations for each, so it should be possible to retarget them to other characters as well, right?