What's New in MotionBuilder 2026
Welcome to MotionBuilder 2026!
You can access this release from your Autodesk Account.
This release introduces new USD functionality along with other general workflow improvements.
Quickly reload a USD stage
A new Reload button is available for USD Stage proxies, which is useful when the stage changed on disk and needs to be reloaded within MotionBuilder. Using FBUsdStageProxy.Reload() with the Python API also reloads the stage.
USD animation retained when loaded into MotionBuilder
When loading a USD stage file, the animation contained in the file will now be rendered. A new animatable property, FBUsdStageProxy.FrameOffset, has been introduced in the Python API. This property allows for the offsetting of animation frames as needed. Additionally, since the FrameOffset property is animatable, it is possible to slow down, accelerate, or even apply time warping effects to the animation.
New shortcut key to force selecting an un-selectable object
A new button in the Viewer lets you select previously un-selectable objects. This feature is useful when you need to select an un-selectable object without having to locate and toggle its settings. You can also use Ctrl+Alt+click shortcut key in the Viewer to select these un-selectable objects.
Support for keyboard input (F13~ and modifiers)
MotionBuilder now supports function keys F13 through F24, treating them like any other keys. Additionally, modifier keys are now supported by the Keyboard device and can be used within a relation constraint.
You can test the support for the additional function keys using the Python Tools > Keyboard Shortcuts Editor.
The following line simulates pressing the F22 key:
FBSystem().Renderer.KeyboardInput(FBDeviceKeyboardKey.kFBDKeyF22, True)
New callback on FPS change
A new callback has been introduced when the Transport Controls FPS is changing.
def TransportFpsChangeCB(control,event):
print(control.GetTransportFps())
FBPlayerControl().OnTransportFpsChange.Add( TransportFpsChangeCB )
Improved FBEditColor Functionality on Linux
On Linux, we resolved a MotionBuilder crash when assigning a value to the FBEditColor.Value
property caused by an out-of-bounds array access. Additionally, we are introducing a new FBEditColorAndAlpha
class to support RGBA colors.
The FBEditColor
class should be retained for using RGB colors, but its ColorMode
property should now be considered deprecated.
Control HUD Import/Export with FBFbxOptions Property
It is now possible to control if HUDs can be imported/exported in a FBX file using the SDK. A new FBFbxOptions.HUDs property has been added to provide this control.
#----- example script -----
mHUD = FBHUD( "TestHUD" )
mElem = FBHUDTextElement( "Text Element" )
mHUD.ConnectSrc(mElem)
FBSystem().Scene.Cameras[5].ConnectSrc( mHUD )
FBSystem().Scene.Renderer.SetCameraInPane( FBSystem().Scene.Cameras[5],0 )
FBApplication().FileSave(r"C:\temp\scene.fbx")
# Result: The scene with a HUD is saved on disk.
FBApplication().FileNew()
opts = FBFbxOptions(True, r"C:\temp\scene.fbx")
opts.SetAll(FBElementAction.kFBElementActionAppend, True)
FBApplication().FileOpen(r"C:\temp\scene.fbx", False, opts)
# Result: The loaded scene should contain the HUD.
FBApplication().FileNew()
opts = FBFbxOptions(True, r"C:\temp\scene.fbx")
opts.SetAll(FBElementAction.kFBElementActionAppend, True)
opts.HUDs = FBElementAction.kFBElementActionDiscard
FBApplication().FileOpen(r"C:\temp\scene.fbx", False, opts)
# Result: The loaded scene should not contain the HUD (HUD discarded on load)
Better API to support Story Clips properties
Some properties of the Story Clips were confusing, particularly the “Mark In” property. The “Mark In” property in the UI was not linked to the MarkIn property, which was instead exposed as “First Loop” in the UI.
Before the changes:
UI Property Name | SDK Property Name | Internal Property Name |
---|---|---|
First Loop | MarkIn | FirstLoopMarkIn |
Last Loop | MarkOut | LastLoopMarkOut |
Mark In | Exposed | ExtractStart |
Mark Out | Not exposed | ExtractStop |
With the changes:
UI Property Name SDK | SDK Property Name | Internal Property Name |
---|---|---|
First Loop | FirstLoopMarkIn (and keep Mark In for a while) | FirstLoopMarkIn |
Last Loop | LastLoopMarkOut (and keep Mark Out for a while) | LastLoopMarkOut |
Source In | SourceMarkIn | ExtractStart |
Source Out | SourceMarkOut | ExtractStop |
Add event callback before the layout is deactivated
A new FBLayout.OnPreShow event has been introduced, which triggers before the layout is shown and before it is hidden. The OpenReality/Samples/tools/toolaudio sample plug-in has been updated to demonstrate how to use this new event.