My animations work great on my inital model but transfering it to my other model (same model) breaks it

Godot Version

4.4

Question

Imported some animations from mixamo as fbx files, used this character combiner and saved them as resources, but when i try using them on my character model it’s arms and legs are bent backwards? So i tried saving the original bonemap and then using it on my characer model but that didn’t work either. I’m following this guide and he doesn’t encounter this so idk where to go from here I’ve spent hours trying to figure out the problem

If y’all have the time I have a short two minute vid where i show my process and where i encounter the problem.

this is the result of the end animation and the initial animation


common problem.
your character skeleton and the one used by the animations are different.

make sure the character is in t-pose and the bones are the same and in the same direction.

1 - you need to create a new bonemap for each file with a different skeleton, you can’t just reuse it.
2 - stop saving the animations. any changes must be done in the 3D software like blender.
3 - you renamed the global. create a new one instead and add the animations there.
4 - you need your animations in an ANIMATION LIBRARY and then to load them from the AnimationPlayer. do not save characters with animations.
animations must go in an animation library, character on its own with no animations.
you can’t do retargeting from a character to another character.
5 - your character is in A-POSE. it must be in T-POSE to use mixamo animations.

  1. got it :+1:
  2. So I should just add them to an animation library but not save the animations as resources? I think this is what you mean but I’m not sure.
  3. :+1:
  4. should i download the animations as fbx files with no skin then? Most of the guides online just combined it into one glb file with all of them under one armature in the nla track and separated it later. Or should i just import the animation fbx files in, then add them to an animation library?
  5. the model is one i found online, should I just go into blender than make the t-pose the default pose? Will that fix the issue of the model not being in a t pose?

5 is solved, found a guide online of how to permanently change pose without just moving the armature using skkeeper

there is no reason to save the animations as resources.
maybe to add custom keys, but that is a lot of work so should only be done when it’s needed.
In my case I run a script on the AnimationTree playback to check the name of the current animation and the time and execute code between a two times that match the animation. for example, when the attack animation connects, I go out of the attack animation, or deal damage, or play a sound.
that way I don’t have to save and edit an animation.

@onready var state : AnimationNodeStateMachinePlayback = get("parameters/Movement/playback")
var ppos : float = 0.0

func _physics_process(delta) -> void:
	ppos = state.get_current_play_position()
	match state.get_current_node():
		"Axe":
			canJump = true
		"Walk":
			canJump = true
		"Freelook":
			canJump = true
		"Melee Attack Horizontal":
			if ppos > 0.6 and ppos < 0.7:
				Attack()

yes. you don’t need skins.
you only need skins if you are exporting the file in fbx, because unused bones are deleted. that is not a problem with glb.
download the fbx from mixamo without skin, import them in blender and export a bunch of animations to a single glb file.

that is the correct way to do it, the last part “separated it later” is confusing me a bit.
if you need the animations in different files, import and export them to different files. for this, you save the fbx to different folders, work on different blends, and export to different glbs.

mixamo animations tend to be in T-POSE. if the animations where it the same pose as your model, there would be no problem.
you have two options:
1 - edit the skeleton in blender to make it T-POSE. this could have some problems because it would not be perfectly aligned and there are differences in bone rotation and roll, and the positions of the legs, but it would make it look much better.
2 - load your model into mixamo and then download it (with skin), this will convert it to T-POSE.
before doing that you need to rename all the bones to mixamorig:etc, like mixamorig:chest or mixamorig:LeftArm and make sure the bones are the same and there is no Root bone. the first bone should be Hips.
after this, if there are no big name and skeleton differences, the animations should play correctly.

here’s the workflow from mixamo to godot, it is very similar to what you would find in some tutorials:

sorry for replying so late, I was a bit busy. I just didn’t understand this step

put your animation files in a folder in your godot project.
go to each and in import (over the tree) set them to AnimationLibrary, this is very much important.

I don’t understand how to import my animation glb files as an animation library but i think ive misunderstood. Sorry to bother you again.

Figured it out, now i feel like an idiot for missing it for that long. It’s a bit hastily put together but it’ll work for this project. Thanks for the help!