Animation Creator Code
HoppersEcho
plain_text
3 years ago
2.9 kB
46
No Index
func setup_character_animations(character :OverworldCharacter) -> void: for animation in CharacterAnimations[character.character_name]: # Start with the first animation frame var frame := 0 for direction in Globals.Directions: print("Working on ", direction.capitalize()) # Determine animation name var anim_name :String = animation + direction.capitalize() # Define a new blank animation var anim_to_add := Animation.new() # Create the node properties track var track_index:= anim_to_add.add_track(Animation.TYPE_VALUE) # Define the first timestamp in the animation var timestamp := 0.0 # Determine the number of vertical frames (rows) in the spritesheet var rows := int(character.sprite.texture.get_height() / DEFAULT_CHARACTER_SPRITE_SIZE.y) # Determine number of horizontal frames in the spritesheet var columns := int(character.sprite.texture.get_width() / DEFAULT_CHARACTER_SPRITE_SIZE.x) # Set the animation length in float seconds anim_to_add.set_length(MOVEMENT_ANIMATION_LENGTH) # Set the update mode to discrete anim_to_add.value_track_set_update_mode(track_index, Animation.UPDATE_DISCRETE) # Setting sprite h_frames anim_to_add.track_set_path(track_index, "sprite:hframes") anim_to_add.track_insert_key(track_index, timestamp, columns) print("Key count for hframes: ", anim_to_add.track_get_key_count(track_index)) anim_to_add.track_set_path(track_index, "sprite:vframes") anim_to_add.track_insert_key(track_index, timestamp, rows) print("Key count for vframes: ", anim_to_add.track_get_key_count(track_index)) anim_to_add.track_set_path(track_index, "sprite:texture") anim_to_add.track_insert_key(track_index, timestamp, CharacterAnimations[character.character_name][animation]) print("Key count for texture: ", anim_to_add.track_get_key_count(track_index)) # Set animation keyframes anim_to_add.track_set_path(track_index, "sprite:frame") print("Track_get_path: ", anim_to_add.track_get_path(track_index)) print("Initial key count for frames: ", anim_to_add.track_get_key_count(track_index)) for i in columns: print("Attemping to add frame ", frame, " as a frame keyframe at ", timestamp, " in ", animation, " ", direction, ".") anim_to_add.track_insert_key(track_index, timestamp, frame) timestamp += 0.1 frame += 1 print("Final key count for frames: ", anim_to_add.track_get_key_count(track_index)) for keyframe in anim_to_add.track_get_key_count(track_index): print(anim_to_add.track_get_key_value(track_index, keyframe)) print(character.character_name, " ", direction, " Animations: ", CharacterAnimations[character.character_name].keys()) print("Adding animation ", anim_name, " to ", character.character_name) print("Animation: ", anim_to_add) character.animPlayer.add_animation(anim_name, anim_to_add)
Editor is loading...