V-Sekai / unidot_importer

Import .unitypackage and other assets designed for Unity Engine as a GDScript addon for vanilla Godot 4.x
MIT License
695 stars 31 forks source link

Importing AnimationController on FBX model scene fails #42

Open zacharied opened 8 months ago

zacharied commented 8 months ago

I'm trying to import some AnimationControllers that are a part of an asset pack that uses FBX for the meshes. From my understanding the animations themselves are a part of the FBX files. All of the other assets in the pack import fine, including the conversion from FBX to GLTF for the meshes. However, when the AnimationControllers import, I receive this error:

00030904 GLOBAL: Queueing work: state=5
00030905 GLOBAL: Done Queueing work: state=5
00030906 GLOBAL: Scanning percentage: 0
00030907 GLOBAL: Writing non-imported assets: state=5
00030908 GLOBAL: Writing Animals/Peacock_bass_anim_controller.controller.res
00030909 Animals/Peacock_bass_anim_cont...controller: FAIL: .ref: Target ref Animals/peacock_bass_unity_exp.gltf:7400000 (2a5896e4bc9653246a81cc47df74b6cf) was not yet parsed! from Animals/Peacock_bass_anim_controller.controller.res (560b354f6ac93c94db2b4500474fd6ad) ref peacock_bass_unity_exp.gltf:7400000
00030910 Animals/Peacock_bass_anim_cont...controller: FAIL: .ref: Target ref Animals/peacock_bass_unity_exp.gltf:7400006 (2a5896e4bc9653246a81cc47df74b6cf) was not yet parsed! from Animals/Peacock_bass_anim_controller.controller.res (560b354f6ac93c94db2b4500474fd6ad) ref peacock_bass_unity_exp.gltf:7400006
00030911 Animals/Peacock_bass_anim_cont...controller: FAIL: .ref: Target ref Animals/peacock_bass_unity_exp.gltf:7400002 (2a5896e4bc9653246a81cc47df74b6cf) was not yet parsed! from Animals/Peacock_bass_anim_controller.controller.res (560b354f6ac93c94db2b4500474fd6ad) ref peacock_bass_unity_exp.gltf:7400002
00030912 Animals/Peacock_bass_anim_cont...controller: FAIL: .ref: Target ref Animals/peacock_bass_unity_exp.gltf:7400008 (2a5896e4bc9653246a81cc47df74b6cf) was not yet parsed! from Animals/Peacock_bass_anim_controller.controller.res (560b354f6ac93c94db2b4500474fd6ad) ref peacock_bass_unity_exp.gltf:7400008
00030913 Animals/Peacock_bass_anim_cont...controller: FAIL: .ref: Target ref Animals/peacock_bass_unity_exp.gltf:7400004 (2a5896e4bc9653246a81cc47df74b6cf) was not yet parsed! from Animals/Peacock_bass_anim_controller.controller.res (560b354f6ac93c94db2b4500474fd6ad) ref peacock_bass_unity_exp.gltf:7400004
00030914 GLOBAL: RESOURCES WRITTEN ============
00030915 GLOBAL: Animals/Peacock_bass_anim_controller.controller.res

When I try to open the generated prefab scenes, the AnimationTree has nodes corresponding to the names of the animations, but attempting to play any results in the "animation not found" message. The corresponding animation library seems to have no animations in it, as well.

It looks like the importer is somehow looking for the asset in its GLTF form, but there is none since it's getting generated by the importer? I can't help much, this is unfortunately outside of my domain. I'm happy to provide files if it helps repro, though.

I see that 4.3 will support FBX natively. Feel free to ignore if this issue will be resolved by that.

lyuma commented 8 months ago

The files will be helpful if you are willing to share them. Feel free to DM on discord or email if you can't share them in public.

My guess is there was a name mismatch between the imported animation and the original name (for example, Godot might get rid of the | character that shows up in blender action exports . The logs on the fbx / gltf import could also help identify if the animation references don't match up.

And indeed, native fbx support will be coming in Godot 4.3, but if the issue is caused by Godot renaming special characters, this bug might still need to be addresses so the debug or files will be helpful