debug: add error logging to animation creation
This commit is contained in:
@@ -153,6 +153,7 @@ func _create_and_play_anim(ap: AnimationPlayer, anim_name: String, anim: Animati
|
|||||||
if lib.has_animation(anim_name):
|
if lib.has_animation(anim_name):
|
||||||
lib.remove_animation(anim_name)
|
lib.remove_animation(anim_name)
|
||||||
lib.add_animation(anim_name, anim)
|
lib.add_animation(anim_name, anim)
|
||||||
|
print("SkinnedPlayerModel: replaced '%s' with %d tracks" % [anim_name, anim.get_track_count()])
|
||||||
|
|
||||||
func _create_walk_anim() -> Animation:
|
func _create_walk_anim() -> Animation:
|
||||||
var anim = Animation.new()
|
var anim = Animation.new()
|
||||||
@@ -251,13 +252,18 @@ func _create_idle_anim() -> Animation:
|
|||||||
return anim
|
return anim
|
||||||
|
|
||||||
func _add_rot_track(anim: Animation, bone_name: String, keyframes: Array) -> void:
|
func _add_rot_track(anim: Animation, bone_name: String, keyframes: Array) -> void:
|
||||||
var track = anim.add_track(Animation.TYPE_ROTATION_3D) # TYPE_ROTATION_3D = 2
|
var track = anim.add_track(Animation.TYPE_ROTATION_3D)
|
||||||
|
if track < 0:
|
||||||
|
print("SkinnedPlayerModel: ERROR failed to add rotation track for " + bone_name)
|
||||||
|
return
|
||||||
anim.track_set_path(track, "MikuRig/Skeleton3D:" + bone_name)
|
anim.track_set_path(track, "MikuRig/Skeleton3D:" + bone_name)
|
||||||
anim.track_set_interpolation_type(track, Animation.INTERPOLATION_LINEAR)
|
anim.track_set_interpolation_type(track, Animation.INTERPOLATION_LINEAR)
|
||||||
for kf in keyframes:
|
for kf in keyframes:
|
||||||
# Rotation tracks require Quaternion values
|
|
||||||
var quat = Quaternion.from_euler(kf["rot"])
|
var quat = Quaternion.from_euler(kf["rot"])
|
||||||
anim.track_insert_key(track, kf["t"], quat)
|
var err = anim.track_insert_key(track, kf["t"], quat)
|
||||||
|
if err != OK:
|
||||||
|
print("SkinnedPlayerModel: ERROR inserting key for " + bone_name + " t=" + str(kf["t"]))
|
||||||
|
print("SkinnedPlayerModel: rotation track '%s' has %d keys" % [bone_name, anim.track_get_key_count(track)])
|
||||||
|
|
||||||
func _is_animation_broken(ap: AnimationPlayer, anim_name: String) -> bool:
|
func _is_animation_broken(ap: AnimationPlayer, anim_name: String) -> bool:
|
||||||
## Returns true if the animation has near-zero motion (Blender GLTF track stripping).
|
## Returns true if the animation has near-zero motion (Blender GLTF track stripping).
|
||||||
|
|||||||
Reference in New Issue
Block a user