Full demo playable scene, character, and prefab ready to go!
Concepts:
✅ VoxelAnimationSequence (Resource) — one named animation (e.g. "Walk").
✅ Holds an ordered frames array of PackedScene (glTF/glb exports work well), a frame_rate, and a play_mode (LOOP, ONCE, PING_PONG).
✅ The mesh is extracted from each frame scene's first MeshInstance3D and cached.
✅ VoxelAnimationLibrary (Resource) — a set of VoxelAnimationSequences, shareable across characters/scenes, looked up by animation_name.
✅ VoxelAnimationPlayer (Node) — plays a library's sequences onto a target_mesh_instance. Runs as @tool, so assigning a library/target or scrubbing current_frame_index previews live in the editor viewport without pressing play.
Usage:
- Create a VoxelAnimationSequence resource per animation, add your per-frame mesh scenes to frames, and set frame_rate / play_mode.
- Create a VoxelAnimationLibrary resource and add your sequences to it.
- Add a VoxelAnimationPlayer node to your character scene, assign library and target_mesh_instance.
Set autostart_animation (defaults to "Idle") or call play() from code:
- $VoxelAnimationPlayer.play(&"Walk")
- $VoxelAnimationPlayer.stop()
- $VoxelAnimationPlayer.pause(true)
- $VoxelAnimationPlayer.set_playback_speed(1.5)
Signals:
- animation_state_changed(old_animation, new_animation)
- animation_finished(completed_animation) — emitted once for ONCE play mode
- frame_changed(old_frame, new_frame)
Changelog for version 1.0
No changelog provided for this version.