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
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.
Future versions of MotionBuilder will only support Python 3.
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 switcherFBPropertyListHUD
: property list handle
New methods
FBSetLastSelectedModel()
andFBGetLastSelectedModel()
added toFBModel
: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 toFBModel
: use this method instead ofGetMatrix()
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 toFBModelVertexData
: returns the index array size, summing the index size of each sub patch.GetUVSetUVCount()
added toFBModelVertexData
: returns the number of UVs in the UV Set for the specified texture mapping mode.GetDefinitionRotationVector()
,SetDefinitionTranslationVector()
, andGetDefinitionTranslationVector()
added toFBActor
: let you access and modify the Actor translations and rotations when IK Manip is off.GetReferencedProperty()
added toFBProperty
: returns the referenced property if the property is a reference property.FBSetConstantKeyReducerThresholdValue()
andFBGetConstantKeyReducerThresholdValue()
added toFBApplication
: let you set and get the Constant Key Reducer threshold via the SDK.IsSceneModified()
added toFBApplication
: lets you query whether the scene has been modified.FBGetMainWindow()
andFBGetNativeWindowHandle()
added tofbuiutil.h
: let you get the main MotionBuilder window.
Changes to properties
- The new
DisplayName
property has been added toFBTool
. Lets you set the tool display name. - The new
IncludePartInBodyPart
property has been added toFBPropertyListComponent
. Lets you include or exclude the extension when the Body Part mode is active. - The
kFBDeckTransportSlave
andkFBDeckTransportMaster
values ofFBDeckTransportMode
have been deprecated. UsekFBDeckTransportSync
andkFBDeckTransportMain
instead. - The
kFBPropertyFlagSlavedProperty
andkFBSlaveSetByMaster
values ofFBPropertyFlag
have been deprecated. UsekFBPropertyFlagDrivenProperty
andkFBDrivenSetByMain
instead.
Changes to the Python API
- Class
FBCameraSwitcherAudioManager
added - Class
FBTransportAudioManager
added GetDefinitionRotationVector()
,SetDefinitionTranslationVector()
, andGetDefinitionTranslationVector()
,SetSymmetryEditTranslation()
,GetSymmetryEditTranslation()
,SetSymmetryEditRotation
,GetSymmetryEditRotation()
,SetSymmetryEditScaling()
,GetSymmetryEditScaling()
added toFBActor
IsSceneModified()
added toFBApplication
SetForeGroundImageOffsetX()
.GetForeGroundImageOffsetX()
,SetForeGroundImageOffsetY()
,GetForeGroundImageOffsetY()
,SetForeGroundImageScaleX()
,GetForeGroundImageScaleX()
,SetForeGroundImageScaleY()
,GetForeGroundImageScaleY()
,SetBackGroundImageOffsetX()
,GetBackGroundImageOffsetX()
,SetBackGroundImageOffsetY()
,GetBackGroundImageOffsetY()
,SetBackGroundImageScaleX()
,GetBackGroundImageScaleX()
,SetBackGroundImageScaleY()
,GetBackGroundImageScaleY()
added toFBCamera
SetIncludePartInBodyPart()
,GetIncludePartInBodyPart()
added toFBCharacterExtension()
GetDisplayName()
andSetDisplayName()
added toFBTools
GetHUDs()
added toFBHUD
GetLocalTransformationMatrixWithGlobalRotationDoF()
added toFBModel
- 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.