godotengine / godotengine/godot

Animations saved with .res extension are not respecting bonemap on import

Open
#94,483 0 comments 0 reactions 0 assignees View on GitHub
bug topic:animation topic:import
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

Reproducible in Godot 4.22 stable.

### System information

Godot v4.2.2.stable - Arch Linux #1 SMP PREEMPT_DYNAMIC Mon, 15 Jul 2024 09:23:08 +0000 - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 Ti (nvidia; 555.58.02) - Intel(R) Core(TM) i7-10700F CPU @ 2.90GHz (16 Threads)

### Issue description

When exporting an animation library from rigged model A using the .res extension, the bonemap is not being used when importing said library into the animation player on model B. Instead, of seeing the generic names from the bonemap such as Hips, Spine, etc, you will see that a direct mapping of the bone names from model A is being used instead. This means that the animations will not work on model B. However, when exporting the animations from model A using .tres extension, everything works as expected and the animations work properly on model B after the quick load.

### Steps to reproduce

Import two different glb rigged models and create a valid bonemap for each. Create at least one animation for model A and save the animation in your project using the .res (default) file extension from the manage animations window.

Next, create a new inherited scene from model B and click on manage animations, load library, and choose the library you exported from model A. Note the names of the bones are not correct and the animation will not play. Repeat the process but use .tres instead of .res extension and all will work as expected.

### Minimal reproduction project (MRP)

sdf

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue with two rigged GLB models, valid bonemaps, and animation libraries saved as .res and .tres. Compare how each format preserves the bonemap when loaded through the animation library workflow. Done means a .res library maps model A's bones to model B through the bonemap and the animation plays correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, godot
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.