Animation Retargeting module for Godot Game Engine.
The module is work in progress, only use the master/main branch for testing.
See Godot 4.x and Godot 3.x branch respectively.
Due to popular demand an addon version made with GDScript is available. This version does not have the full feature set due to performance restrictions, addons are just to slow.
See Godot 4.x GDScript and Godot 3.x GDScript branch respectively.
Introduces a new Node Type that can be used to transfer Animation data authored for one Skeleton to another Skeleton inside the Godot Editor or at runtime in your game project.
- New Godot Node type to retarget animations in both editor as well as runtime in exported games.
- Transfer Animations and entire AnimationsPlayers between two similar Skeletons with a button press.
- Multiple retargeting options to filter for certain animation ids.
- Editing interface to correct bone errors for entire animations.
- Bake options to create new skeleton animation variants from existing animations.
- Live update to see all changes and corrections immediately inside the editor.
- Runtime retargeting API to save performance and precious filesize in exported games.
- Support for custom bone mappings and remappings to transfer animations to different skeletons.
Preset bone mappings for some well established skeleton rigs from DCC tools or vendors.(in development)Custom editor dock and interface to enhance your animation workflow in Godot.(in development)- Ruby colors!
- Download and compile Godot from source and assure it runs on your hardware. See official Godot documentation for instructions how to compile Godot from source.
- Download repository branch for your Godot version (Godot 4.x/Godot 3.x) and unpack it.
- Create an "animation_retargeting" folder inside your Godot source modules folder and drop the unpacked repo content into it. Your path should end up as "godotsourcefolder/modules/animation_retargeting".
- Compile Godot from source again with the added AnimationRetargeting module.
- Inside Godot Editor search for "AnimationRetargeting" Node in the "AddNode" dialog.
- Download repository branch for your Godot version (Godot 4.x_gdscript/Godot 3.x_gdscript) and unpack it.
- Drop the unpacked repo "addon" folder into your Godot project folder.
- Active the addon inside the projectsettings menu.
- Inside Godot Editor search for "AnimationRetargeting" Node in the "AddNode" dialog.
-
Add an AnimationRetargeting Node in your project.
-
Add NodePath to your source skeleton.
-
Add NodePath to your source skeleton AnimationPlayer.
-
Add NodePath to your target skeleton.
-
Add NodePath to your target skeleton AnimationPlayer.
-
Customize retargeting and export settings.
-
Make manual backups of all your Animation files and AnimationPlayers.
-
Press "Retarget Animation" button in the editor or call start_retargeting() function.
-
To use custom bone mappings load your {"source_bone_name":"target_bone_name"} Dictionary with set_custom_bone_mapping() before you call start_retargeting(). It is better to save you custom bone mapping Dictionary in a script file (or read from JSON) so no progress is lost when the Godot Inspector bugs out.
-
Hunt bugs!
Refer to AnimationRetargeting Node documentation inside Godot Editor for more function and property explanations.
See below more recent devlog videos for current usage.
Devlog Video #5 Module backported to Godot 3.3
Devlog Video #4 Correcting bones and creating new animation variants
Devlog Video #3 Retargeting animations to multiple characters
MIT
Special thanks for fixing bugs or extensive testing:
- stryker313
- WiredDreamcaster