-
Notifications
You must be signed in to change notification settings - Fork 320
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Import: exception for 'Node' object has no attribute 'blender_bone_name' #239
Comments
Your node idx 0 is at the same time a mesh (mesh idx 0), and is listed in joints list.
@donmccurdy is this something allowed in glTF2.0 spec? |
See KhronosGroup/glTF#1433 — this is valid, and if we interpret a node referencing a mesh to mean that node "is" a mesh, then a node can simultaneously be a mesh, a bone, a camera, and a light. The robust way to deal with that is to consider nodes empties, and whatever things they reference become children without a transform of their own. A lot of tools want to avoid overcomplicating the node hierarchy and optimistically flatten, so I'm sure the importer is not the only tool that will have trouble with this asset. I would suggest we handle this as best we can on import, but avoid writing dual-purpose nodes from the exporter like this. I'm tempted to say this should be tightened up in a future version of the spec, to reduce edge cases. |
Agreed. It might be helpful to inquire the history of this. Were multi-purpose nodes intentionally allowed at some point, or were they just an artifact of the schema's ability to assign one of each thing to a node? |
Note for importer implementation: I will work first on a version where node can be multiple "things" except joints. This will be the more easy part, even it will not solve this issue. |
Note that this same error occurs if a mesh is skinned by joints not in the same scene. See KhronosGroup/glTF#1558. |
Started a simple implementation on branch importer_multipletype |
Test file
Not sure what's wrong, but maybe caused by a mesh being instantiated on one of the joints of its skin.
The text was updated successfully, but these errors were encountered: