832d24324981ce70ee415ba5c72b62f1b3e08fc3
USD Skeletons (armatures) are joint-based rather than bone-based in construction. This means that there's no native bone concept nor is there any bone lengths. Currently, Blender's USD import uses an estimation, roughly corresponding to the average distance between joints in the entire Skeleton, to set the bone length in situations where it's not obvious that 2 joints are directly connected. This is imperfect but shouldn't affect actual functioning of the rig. For armatures coming from external software this is probably the best we can do. However, for armatures originating from Blender, we can use a custom primvar to store the bone lengths directly. This allows Blender armatures to be exported and re-imported in much better fidelity. This is superior to prior techniques, like those employed by FBX, which alter the actual Skeleton, inserting extra joints where unnecessary. Not only is this detrimental when using these files in external software, but it's still imperfect when importing back into Blender too. Pull Request: https://projects.blender.org/blender/blender/pulls/126954
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
