• Godot Help3D
  • How do I change a skeleton's rest bone's transform while animated?

I have a rigged model where I want to scale parts of the bones and have it animated. Here is my code.

extends Skeleton3D

# Store the default bone transformation.
var default_root_transform : Transform3D

func _ready():
	var root_index := find_bone("root")

	default_root_transform = get_bone_rest(root_index)
	set_bone_rest(root_index, default_root_transform.scaled(Vector3(2, 2, 2)))
	force_update_bone_child_transform(root_index)

The code simply scales up the root bone.

The problem is that it doesn't work when there is an animation and I can clearly see from the print statement that rest pose has been successfully changed.

The only way that the I can see the scaling work is when I enable Show Rest Only in the Skeleton Node.

Am I doing something wrong or are there additional steps to run the animation on top of the bone's new rest transform?