MotionBuilder 2013
Programming Environment and Code Refactoring Changes
- MotionBuilder and its distributed plug-ins are now compiled using Visual Studio 2010 (Service Pack 1).
- Environment Variables:
- MOTIONBUILDER_PLUGIN_PATH - The list of directories contained in this environment variable determines the location
from which MotionBuilder will load compiled plugins.
- MOTIONBUILDER_PYTHON_STARTUP - The directory contained in this environment variable determines the location from
which MotionBuilder loads the Python startup scripts. Setting this environment variable
overrides the default Python startup path in MotionBuilder.
- FILMBOX_CONSOLE - Setting this environment variable to 1 allows the console to appear, otherwise the console will not appear.
- FBContainer has been renamed to FBVisualContainer to increase the uniformity of cross-product naming schemes.
- const correctness improvements.
- Although not enforced in this release, we recommend that the "H" prefix in classes such as HFBPlug be removed and replaced by the pointer suffix "*", for example: FBPlug*. This change is intended to facilitate the use of the documentation system in the
near future.
- FBShader has been heavily refactored for performance.
- The FBModelTransformationMatrix enumeration type has been renamed to FBModelTransformationType.
- FBFindObjectsByNamespace has been deprecated. Use FBFindObjectsByFullName or FBFindObjectsByName instead.
New Classes
- FBSyncReference - Allows the MotionBuilder application to sync its time with a device's time. For
more information, consult the ordevicesync_device plugin.
- FBTimeCode - A timecode contains the time and frame information used to identify a specific
moment in a timeline, often used in video and audio production. This class can namely
help in the conversion of a point in time from one frame rate domain to another.
- FBHUD, FBHUDElement - These classes represent the new Heads-Up Display (HUD) feature in MotionBuilder.
A HUD is connected to a camera, and appears as a 2D overlay. This overlay can be used
to display information about the take, such as the current time, frame number, etc.
- FBFileMonitoringManager - This class can be used to monitor operating system file events. By contrast, the
event properties in FBApplication only monitor events triggered within the MotionBuilder application.
- FBNamespace - This class has been exposed to facilitate the use of namespaces among scene elements.
Functions such as FBFindModelByLabelName(), FBFbxOptions::NamespaceList, FBFbxOptions::SetNamespaceList(), FBFbxOptions::GetNamespaceList(), and the FBScene's namespace related functions (FBScene::NamespaceImport()) can filter, select, import and export scene elements using namespaces.
- FBAudioRenderOptions() - This class has been added to specify audio rendering options, which can be passed
as a parameter to FBApplication::AudioRender(). Consult the Scripts/Samples/Audio/AudioRendering.py sample for more details.
New Methods and Added Functionality
- FBAnimationNode::KeyCandidate(), FBPropertyAnimatable::KeyAt() - These functions now provide the ability to key at a given time without moving time.
- FBSystem.ConfigPath, FBSystem.UserConfigPath, FBSystem.TempPath - These properties respectively define MotionBuilder's directory paths for config
files, user config files, and temporary files.
- FBAudioClip - A substantial amount of functionality has been added to this class. Consult the
header files and class documentation for more information.
- FBMenuManager - Functionality has been added to this class to manipulate and remove MotionBuilder's
UI top menu bar.
- FBComponent::GetFullName() - Retrieves an object's unique name.
- FBStory, FBStoryFolder, FBStoryTrack - Added the capability to record stories on disk with properties such as FBStory::RecordToDisk and FBStoryFolder::RecordClipPath.
- FBDevice::ModelBindingCreate, FBDevice::ModelBindingRootsList - These functions allow you to create a model binding from a device, or obtain a
list of all possible root models which can be bound to the device.
- FBModel - Exposed additional properties to facilitate custom rendering. For example, viewport
dimensions can be set in the model, which are only updated and valid during custom
renderer callbacks (FBModel::CameraViewportX, FBModel::CameraViewportY, FBModel::CameraViewportWidth, FBModel::CameraViewportHeight). Motion blur properties have also been added: FBModel::MotionBlurIntensity, FBModel::UseMotionBlur, FBModel::UseRealTimeMotionBlur.
- FBModelNull, FBModelMarker - Overloaded several FBModel base class functions in these subclasses to increase
user customization. These functions are: FBModelMarker/FBModelNull::FbxStore(), FBModelMarker/FBModelNull::FbxRetrieve(), FBModelMarker/FBModelNull::FbxGetObject(), and FBModelMarker/FBModelNull::FbxGetObjectSubType().
- FBMaterial - Custom material support, and added sample project (OpenRealitySDK/Samples/miscellaneous/material_template)
- FBRenderer - Added new functionality such as FBRenderer::GetViewingCamera() to obtain the current camera, FBRenderer::InPicking() to determine if the renderer is in the picking phase, and a variety of other functions
and properties related to picking.
- FBEvaluateManager - Added functionality allows for computationally intensive tasks to be registered
and run as callbacks in a background thread (FBEvaluateManager::RegisterEvaluationGlobalFunction(), FBEvaluateManager::UnregisterEvaluationGlobalFunction())
- The local time can now be obtained by calling FBSystem().LocalTime.GetFrame(). An optional FBTimeMode parameter may be passed to GetFrame() to specify the time mode. The default time mode is kFBTimeModeDefault.