Overview
uTransform inserts a transform at the USD scene level: everything downstream of the uTransform is translated / rotated / scaled according to the parameters. It lets you compose assets while keeping the source USD files intact.
Typical case: a character.usd asset at the origin (0,0,0), a set.usd with its own origin. A uTransform on the character places it correctly in the set, and TRS animation makes it move.
Where to find this node
- Effects Library:
Tools > USD > uTransform - Quick add: right-click in the Node Editor →
Add Tool > USD > uTransform
uTransform vs Transform 3D
- Transform 3D
- A transform applied to native Fusion 3D nodes (Cube, ImagePlane, etc.). The classic Fusion workflow.
- uTransform
- A transform applied to USD scenes. The modern USD workflow. The output stays USD for use by other USD nodes.
Rule of thumb: do not mix the two worlds. uTransform for a USD pipeline, Transform 3D for a Fusion 3D pipeline.
Inputs
- SceneInput (green) - the USD scene to transform.
- Output (green) - the transformed USD scene.
Setup
Placing an asset in a set:
uLoader (set.usd) ─┐
│
uLoader (character.usd) → uTransform (Position = (5, 0, 3),
Rotation = (0, 90, 0))
│
uMerge ──────┘
↓
uRenderer
Simple animation:
uLoader (asset.usd) → uTransform (Position animated 0→100 on X)
→ uRenderer
Transform hierarchy:
uLoader → uTransform (parent) → uTransform (child) → uRenderer
= combined transforms (parent + child)
Custom pivot:
uTransform (Pivot = (0, 1, 0)) = rotation around a pivot 1m upControls tab
- Translation X / Y / Z (defaults: 0,0,0)
- Position of the scene in scene units (typically meters). Animatable.
- Rotation X / Y / Z (defaults: 0,0,0)
- Euler rotation in degrees around the 3 axes. The rotation order follows USD convention.
- Scale X / Y / Z (defaults: 1,1,1)
- Scaling. Lock X/Y/Z for uniform scaling, or keep them independent for stretching.
- Pivot X / Y / Z (defaults: 0,0,0)
- Pivot point for rotation and scale. The scene origin by default. Change it to rotate around another point.
- Rotation Order (default: XYZ)
- The order in which Euler rotations are applied. Standard USD convention, but adjust it when importing from another app with a different convention.
Use cases
- Positioning an asset in a scene - place characters / props / vehicles in a set without modifying the source USDs.
- Simple animation - animate Translation to move an asset, Rotation to rotate it, Scale to grow it.
- Asset reuse - the same USD asset used in several places = several uTransforms with different positions.
- Unit conversion - an asset modeled in cm in Maya, a scene in m in Fusion = a uTransform with Scale 0.01 for the conversion.
- Pivot animation - animation around a specific point (a door opening, a wheel turning) = an adapted Pivot + an animated Rotation.
- Transform hierarchies - several uTransforms in a cascade for parent/child hierarchies.
Tips
- Consistent scene units - match the unit of the USD file (meters / cm / inches). Otherwise you get odd scales.
- A well-chosen pivot - for rotations around a specific point (e.g. a wheel), the Pivot must be at the center of the wheel.
- Rotation Order when importing from another app - Maya YXZ, Houdini XYZ, etc. If rotations look odd after import, try different Rotation Orders.
- Native animation rather than many keys - for complex motion, consider native USD animation (stored in the file) rather than animating everything in uTransform.
- Cascade for hierarchy - several uTransforms in a cascade = a hierarchy of combined transforms (like parent/child). Easy to read.
- Neutral performance - uTransform is very light to compute. Use as many as you need without worrying about performance.
- For sophisticated animation (squash/stretch, animated non-uniform scaling), consider editing the USD directly in Houdini / Maya for native animation.
