Describe the bug
The following scene is a simple skeleton with three bones. Bones transforms are not identities:
When exported to USD with this script:
import tempfile
from pymxs import runtime as rt
export_options = rt.USDExporter.createOptions()
export_options.RootPrimPath = "/MY_OWN_ROOT"
export_options.Meshes = True
export_options.Shapes = False
export_options.Lights = False
export_options.Cameras = False
export_options.Skin = True
export_options.Morpher = True
export_options.Materials = True
export_options.ShadingMode = rt.name("useRegistry") # none, useRegistry
export_options.AllMaterialTargets = rt.name("UsdPreviewSurface")
export_options.UsdStagesAsReferences = False
export_options.HiddenObjects = True
export_options.UseUSDVisibility = False
export_options.AllowNestedGprims = False
export_options.FileFormat = rt.name("ascii") # ascii, binary
export_options.Normals = rt.name("asAttribute") # none, asAttribute, asPrimvar
export_options.MeshFormat = rt.name("polyMesh") # fromScene, polyMesh, triMesh
export_options.TimeMode = rt.name("current")
export_options.SetChannelPrimvarMapping(-2, "displayOpacity") # Vertex Alpha
export_options.SetChannelPrimvarMapping(-1, "LayerWeights") # Vertex Illum
export_options.SetChannelPrimvarMapping(0, "displayColor") # Vertex Color
export_options.StartFrame = float(rt.animationRange.start)
export_options.EndFrame = float(rt.animationRange.end)
export_options.SamplesPerFrame = 1.0
export_options.UpAxis = rt.name("z") # y, z
export_options.BakeObjectOffsetTransform = True
export_options.PreserveEdgeOrientation = True
export_options.BonesPrimName = "MyDefaultBonesPrimName"
export_options.AnimationsPrimName = "MyDefaultBonesPrimName"
export_options.IncludeAllBones = True
export_options.PreserveBoneMeshes = False
export_options.SimplifyBonePaths = True
export_options.UseWorldspaceRoot = False
export_options.UseProgressBar = True
export_options.LogLevel = rt.name("info") # off, info, warn, error
export_options.OpenInUsdview = False
export_options.ChaserNames = rt.Array()
export_options.AllChaserArgs = rt.Dictionary()
with tempfile.NamedTemporaryFile(prefix="maxusd-", suffix=".usda", delete=False) as fp:
path = fp.name
print(path)
rt.USDExporter.ExportFile(
path,
exportOptions=export_options,
contentSource=rt.name("all"), # all, selected, nodeList,
)
The exported USD joints have their bind transforms are all set to identity transforms:
Steps to reproduce
Steps to reproduce the behavior:
- Create a Skeleton
- Export it to USD with the script above
- The exported bind transforms are all identities
Expected behavior
For standalone skeletons, in absence of other skinning information, I think the bind transforms should match the rest transform, in world space.
Attachments
debug-bind-identities.zip
Specs (if applicable):
- OS & version: Windows 11
- 3ds Max version: 2027.2 / 29.2.0.20588
- 3ds USD version: 0.16.2.31
Describe the bug
The following scene is a simple skeleton with three bones. Bones transforms are not identities:
When exported to USD with this script:
The exported USD joints have their bind transforms are all set to identity transforms:
Steps to reproduce
Steps to reproduce the behavior:
Expected behavior
For standalone skeletons, in absence of other skinning information, I think the bind transforms should match the rest transform, in world space.
Attachments
debug-bind-identities.zip
Specs (if applicable):