Share

What's New in the MotionBuilder 2022 SDK

Changes to Dependencies and Requirements

MotionBuilder has the following updated dependencies and requirements:

  • Red Hat Developer Toolset 9 with gcc 9.3.1
  • Microsoft Visual Studio 2019
  • QT 5.15.2
  • PySide2 5.15.2
  • Boost 1.72.0-limited
  • Python 2.7.11
  • Python 3.7.7

Back to top

Python 3 Support

MotionBuilder now supports both Python 2 and Python 3. It will start up in Python 3 mode by default.

You can still start MotionBuilder in Python 2 mode by setting MOTIONBUILDER_PYTHON_VERSION to 2 before starting MotionBuilder from the command line.

Windows:

> set MOTIONBUILDER_PYTHON_VERSION=2
> motionbuilder.exe

Linux:

$ export MOTIONBUILDER_PYTHON_VERSION=2
$ motionbuilder

Or by using the pythonver command line argument when starting MotionBuilder from the command line.

Windows:

> motionbuilder.exe -pythonver 2

Linux:

$ motionbuilder -pythonver 2

Both Python 2 and Python 3 libraries are available for plug-in development. However, loading a Python 2 plug-in when MotionBuilder is running in Python 3 mode can lead to a crash. The same will happen if you attempt to load a Python 3 plug-in when MotionBuilder is running in Python 2 mode.

Note:

Future versions of MotionBuilder will only support Python 3.

Back to top

Changes to the API

New classes

  • FBTransportAudioManager: lets you modify the audio display on the Transport Tool. This new class provides the same functionalities as what is currently available in the Audio contextual menu of the Transport Tool.
  • FBToolLayoutManager: adds the functionality of the MotionBuilder Layout menu to the SDK.
  • FBCameraSwitcherAudioManager: lets users interact with the audio manager of the camera switcher
  • FBPropertyListHUD: property list handle

Back to top

New methods

  • FBSetLastSelectedModel() and FBGetLastSelectedModel() added to FBModel: FBSetLastSelectedModel() sets the model passed to the method as the last selected model, making it the one that the manipulator is on. FBGetLastSelectedModel() returns the last selected model, which is also the one that the manipulator is on.
  • GetLocalTransformationMatrixWithGlobalRotationDoF() added to FBModel: use this method instead of GetMatrix() to return a model's local transformation or local inverse transformation matrix with global Rotation DoF values. GetMatrix() has been updated to no longer include global Rotation DoF values.
  • GetIndexArraySize() added to FBModelVertexData: returns the index array size, summing the index size of each sub patch.
  • GetUVSetUVCount() added to FBModelVertexData: returns the number of UVs in the UV Set for the specified texture mapping mode.
  • GetDefinitionRotationVector(), SetDefinitionTranslationVector(), and GetDefinitionTranslationVector() added to FBActor: let you access and modify the Actor translations and rotations when IK Manip is off.
  • GetReferencedProperty() added to FBProperty: returns the referenced property if the property is a reference property.
  • FBSetConstantKeyReducerThresholdValue() and FBGetConstantKeyReducerThresholdValue() added to FBApplication: let you set and get the Constant Key Reducer threshold via the SDK.
  • IsSceneModified() added to FBApplication: lets you query whether the scene has been modified.
  • FBGetMainWindow() and FBGetNativeWindowHandle() added to fbuiutil.h: let you get the main MotionBuilder window.

Back to top

Changes to properties

  • The new DisplayName property has been added to FBTool. Lets you set the tool display name.
  • The new IncludePartInBodyPart property has been added to FBPropertyListComponent. Lets you include or exclude the extension when the Body Part mode is active.
  • The kFBDeckTransportSlave and kFBDeckTransportMaster values of FBDeckTransportMode have been deprecated. Use kFBDeckTransportSync and kFBDeckTransportMain instead.
  • The kFBPropertyFlagSlavedProperty and kFBSlaveSetByMaster values of FBPropertyFlag have been deprecated. Use kFBPropertyFlagDrivenProperty and kFBDrivenSetByMain instead.

Back to top

Changes to the Python API

  • Class FBCameraSwitcherAudioManager added
  • Class FBTransportAudioManager added
  • GetDefinitionRotationVector(), SetDefinitionTranslationVector(), and GetDefinitionTranslationVector(), SetSymmetryEditTranslation(), GetSymmetryEditTranslation(), SetSymmetryEditRotation, GetSymmetryEditRotation(), SetSymmetryEditScaling(), GetSymmetryEditScaling() added to FBActor
  • IsSceneModified() added to FBApplication
  • SetForeGroundImageOffsetX(). GetForeGroundImageOffsetX(), SetForeGroundImageOffsetY(), GetForeGroundImageOffsetY(), SetForeGroundImageScaleX(), GetForeGroundImageScaleX(), SetForeGroundImageScaleY(), GetForeGroundImageScaleY(), SetBackGroundImageOffsetX(), GetBackGroundImageOffsetX(), SetBackGroundImageOffsetY(), GetBackGroundImageOffsetY(), SetBackGroundImageScaleX(), GetBackGroundImageScaleX(), SetBackGroundImageScaleY(), GetBackGroundImageScaleY() added to FBCamera
  • SetIncludePartInBodyPart(), GetIncludePartInBodyPart() added to FBCharacterExtension()
  • GetDisplayName() and SetDisplayName() added to FBTools
  • GetHUDs() added to FBHUD
  • GetLocalTransformationMatrixWithGlobalRotationDoF() added to FBModel
  • New global functions FBGetLastSelectedModel(), FBSetLastSelectedModel(), FBGetConstantKeyReducerThresholdValue(), FBSetConstantKeyReducerThresholdValue(), FBGetMainWindow()
  • Multiple methods have been added to FBModelVertexData
  • FBApplication.FileNew() now exposes the same parameters as its C++ counterpart.
  • Added support for QtSql through PySide.

Back to top

Was this information helpful?