Two "identical" hierarchies - one adds a -90 rotation to an object on creating FBX, but the other does not. Why? #104641
Labels
No Label
Interest
Animation & Rigging
Interest
Blender Cloud
Interest
Collada
Interest
Core
Interest
Documentation
Interest
Eevee & Viewport
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
Import and Export
Interest
Modeling
Interest
Modifiers
Interest
Nodes & Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds, Tests & Devices
Interest
Python API
Interest
Rendering & Cycles
Interest
Sculpt, Paint & Texture
Interest
Translations
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Meta
Good First Issue
Meta
Papercut
Module
Add-ons (BF-Blender)
Module
Add-ons (Community)
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender-addons#104641
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Operating system: Windows 10
Graphics card: GEFORCE RTX 3060
Blender Version
Broken: 2.93 & 3.5.1
Worked: None
Short description of error
I posted a thread summarizing the bug with screenshots here: https://blender.stackexchange.com/questions/292830/two-identical-projects-one-adds-a-90-rotation-to-an-object-on-creating-fbx
Attached is a blend file with "working" and "broken" hierarchies in them. Both hierarchies are identical to the visible eye. They are each just 9 objects - an empty root with a x-rotation of 90 degrees, then a tree trunk child, and 8 branches. None of the tree trunk or branch objects have any rotations on them.
The "broken" and "working" hierarchies are identical that I can tell to my eye.
However, if you export and then re-import an FBX of each of the two hierarchies, they behave differently. The "broken" hierarchy upon re-import of an FBX made from it adds a -90 degree x-rotation to the "bark" trunk object. The "working" hierarchy upon re-import of the FBX has no x-rotation on the "bark" named trunk object.
There is no reason I can find for this discrepancy. It is causing numerous glitches as hierarchies do not behave consistently in FBX export/import, and FBX is a needed intermediary into other systems like in game development.
Exact steps for others to reproduce the error
I suspect there is some issue about how the two hierarchies were created (perhaps in terms of orders they were parented) that created an invisible glitch which is causing this but I have no way to verify it. I did not make the "WORKING" hierarchy - someone else did. I can't find any reason or explanation, but certainly need this solved to consistently get out working FBX files.
The "WORKING" hierarchy has the desired behavior on export - no extra rotation should be added to the "bark" object as it is in the "BROKEN" hierarchy.
Thanks for any help or clarification.
This is a resubmission of the bug here:
blender/blender#107915
As requested by @lichtwerk
Thanks
It looks like both Bark Objects were parented to their respective Empties differently and the mesh data for each Bark Object is rotated differently. Notably, if you delete both empties, you can see that one Bark Object loses the rotation from its parenting and falls on its side, revealing that the mesh data itself is rotated to the side.
The parenting appears to have happened something like this:
bark.001
was parented toWORKING
whenWORKING
had no rotation. Because the mesh data ofbark.001
is laying down on its side, whenWORKING
was rotated 90 degrees on the X-axis, it makesbark.001
stand upright.bark
was parented toBROKEN
whenBROKEN
was already rotated 90 degrees on the X-axis. Because the mesh data ofbark
is standing upright and it was parented after the rotation, there was no change in its rotation, sobark
was still standing upright.The parenting documentation has some information on the Parent Inverse that facilitates parenting to an Object that already has transforms: https://docs.blender.org/manual/en/latest/scene_layout/object/editing/parent.html#parent-inverse
If you re-parent
bark
toBROKEN
withObject
>Parent
>Make Parent without Inverse (Keep Transform)
, it will clear the Parent Inverse matrix and reveal the same -90 degree rotation that you are seeing when you import the exported fbx.