fix: use raw integer 1 for TYPE_ROTATION and remove unused param
- Animation.TYPE_ROTATION doesn't exist as enum in Godot 4.2.1 - Use raw integer: add_track(1) for ROTATION - Remove unused 'length' parameter from _add_rot_track - Rename 'name' to 'anim_name' to avoid shadowing Node.name - Remove all extra parameters from _add_rot_track calls
This commit is contained in:
@@ -153,11 +153,11 @@ func _ensure_locomotion_animations(ap: AnimationPlayer) -> void:
|
||||
_create_and_play_anim(ap, "Jump", _create_jump_anim())
|
||||
_create_and_play_anim(ap, "Idle", _create_idle_anim())
|
||||
|
||||
func _create_and_play_anim(ap: AnimationPlayer, name: String, anim: Animation) -> void:
|
||||
func _create_and_play_anim(ap: AnimationPlayer, anim_name: String, anim: Animation) -> void:
|
||||
var lib = ap.get_animation_library("")
|
||||
if lib.has_animation(name):
|
||||
lib.remove_animation(name)
|
||||
lib.add_animation(name, anim)
|
||||
if lib.has_animation(anim_name):
|
||||
lib.remove_animation(anim_name)
|
||||
lib.add_animation(anim_name, anim)
|
||||
|
||||
func _create_walk_anim() -> Animation:
|
||||
var anim = Animation.new()
|
||||
@@ -167,27 +167,27 @@ func _create_walk_anim() -> Animation:
|
||||
anim.length = cycle
|
||||
|
||||
# Add rotation tracks for each bone using type=1 (ROTATION)
|
||||
_add_rot_track(anim, "LeftUpperLeg", cycle, [
|
||||
_add_rot_track(anim, "LeftUpperLeg", [
|
||||
{"t": 0.0, "euler": Vector3(-0.6, 0, 0)},
|
||||
{"t": cycle * 0.5, "euler": Vector3(0.6, 0, 0)},
|
||||
{"t": cycle, "euler": Vector3(-0.6, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "RightUpperLeg", cycle, [
|
||||
_add_rot_track(anim, "RightUpperLeg", [
|
||||
{"t": 0.0, "euler": Vector3(0.6, 0, 0)},
|
||||
{"t": cycle * 0.5, "euler": Vector3(-0.6, 0, 0)},
|
||||
{"t": cycle, "euler": Vector3(0.6, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "LeftUpperArm", cycle, [
|
||||
_add_rot_track(anim, "LeftUpperArm", [
|
||||
{"t": 0.0, "euler": Vector3(-0.4, 0, 0)},
|
||||
{"t": cycle * 0.5, "euler": Vector3(0.4, 0, 0)},
|
||||
{"t": cycle, "euler": Vector3(-0.4, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "RightUpperArm", cycle, [
|
||||
_add_rot_track(anim, "RightUpperArm", [
|
||||
{"t": 0.0, "euler": Vector3(0.4, 0, 0)},
|
||||
{"t": cycle * 0.5, "euler": Vector3(-0.4, 0, 0)},
|
||||
{"t": cycle, "euler": Vector3(0.4, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "Spine", cycle, [
|
||||
_add_rot_track(anim, "Spine", [
|
||||
{"t": 0.0, "euler": Vector3(0, 0, 0)},
|
||||
{"t": cycle * 0.25, "euler": Vector3(0, 0.1, 0)},
|
||||
{"t": cycle * 0.5, "euler": Vector3(0, 0, 0)},
|
||||
@@ -206,22 +206,22 @@ func _create_jump_anim() -> Animation:
|
||||
anim.length = 1.0
|
||||
anim.loop_mode = Animation.LOOP_LINEAR
|
||||
|
||||
_add_rot_track(anim, "LeftUpperArm", 1.0, [
|
||||
_add_rot_track(anim, "LeftUpperArm", [
|
||||
{"t": 0.0, "euler": Vector3(0, 0, 0)},
|
||||
{"t": 0.5, "euler": Vector3(-1.2, 0, 0)},
|
||||
{"t": 1.0, "euler": Vector3(0, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "RightUpperArm", 1.0, [
|
||||
_add_rot_track(anim, "RightUpperArm", [
|
||||
{"t": 0.0, "euler": Vector3(0, 0, 0)},
|
||||
{"t": 0.5, "euler": Vector3(-1.2, 0, 0)},
|
||||
{"t": 1.0, "euler": Vector3(0, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "LeftUpperLeg", 1.0, [
|
||||
_add_rot_track(anim, "LeftUpperLeg", [
|
||||
{"t": 0.0, "euler": Vector3(0, 0, 0)},
|
||||
{"t": 0.5, "euler": Vector3(-0.3, 0, 0)},
|
||||
{"t": 1.0, "euler": Vector3(0, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "RightUpperLeg", 1.0, [
|
||||
_add_rot_track(anim, "RightUpperLeg", [
|
||||
{"t": 0.0, "euler": Vector3(0, 0, 0)},
|
||||
{"t": 0.5, "euler": Vector3(-0.3, 0, 0)},
|
||||
{"t": 1.0, "euler": Vector3(0, 0, 0)}
|
||||
@@ -233,30 +233,30 @@ func _create_idle_anim() -> Animation:
|
||||
anim.length = 2.0
|
||||
anim.loop_mode = Animation.LOOP_LINEAR
|
||||
|
||||
_add_rot_track(anim, "Spine", 2.0, [
|
||||
_add_rot_track(anim, "Spine", [
|
||||
{"t": 0.0, "euler": Vector3(0, 0, 0)},
|
||||
{"t": 1.0, "euler": Vector3(0.02, 0, 0)},
|
||||
{"t": 2.0, "euler": Vector3(0, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "Head", 2.0, [
|
||||
_add_rot_track(anim, "Head", [
|
||||
{"t": 0.0, "euler": Vector3(0, 0, 0)},
|
||||
{"t": 1.0, "euler": Vector3(0.03, 0.02, 0)},
|
||||
{"t": 2.0, "euler": Vector3(0, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "LeftUpperArm", 2.0, [
|
||||
_add_rot_track(anim, "LeftUpperArm", [
|
||||
{"t": 0.0, "euler": Vector3(0, 0, 0)},
|
||||
{"t": 1.0, "euler": Vector3(0.02, 0, 0.05)},
|
||||
{"t": 2.0, "euler": Vector3(0, 0, 0)}
|
||||
])
|
||||
_add_rot_track(anim, "RightUpperArm", 2.0, [
|
||||
_add_rot_track(anim, "RightUpperArm", [
|
||||
{"t": 0.0, "euler": Vector3(0, 0, 0)},
|
||||
{"t": 1.0, "euler": Vector3(0.02, 0, -0.05)},
|
||||
{"t": 2.0, "euler": Vector3(0, 0, 0)}
|
||||
])
|
||||
return anim
|
||||
|
||||
func _add_rot_track(anim: Animation, bone_name: String, length: float, keyframes: Array) -> void:
|
||||
var track = anim.add_track(1) # TYPE_ROTATION
|
||||
func _add_rot_track(anim: Animation, bone_name: String, keyframes: Array) -> void:
|
||||
var track = anim.add_track(1) # TYPE_ROTATION = 1
|
||||
anim.track_set_path(track, "MikuRig/Skeleton3D:" + bone_name)
|
||||
anim.track_set_interpolation_type(track, Animation.INTERPOLATION_LINEAR)
|
||||
for kf in keyframes:
|
||||
|
||||
Reference in New Issue
Block a user