Contents
MotionBuilder SDK Programmer's Guide
Welcome to the MotionBuilder SDK
What is the MotionBuilder SDK?
MotionBuilder C++ API
MotionBuilder Python API
Using the Help
Requirements
Information and Technical Support
What's New / What's Changed?
MotionBuilder 2014
MotionBuilder 2013
MotionBuilder 2012
Getting Started
Directory Structure
Command Line Options
Using Python with MotionBuilder
Python Editor
Namespaces and Autocomplete
Running Python Programs
Managing Python Tools
Debugging
Python Telnet Console
Your First Python Program
Using C++ with MotionBuilder
Sample Programs
Template for devices: device_template
Create glove device: deviceglove
Camera tracker: devicecamera
Input device template: deviceinput
Internal device: devicereclist
Skeleton mocap: deviceskeleton
Synchronous device: devicesync
Video switcher: devicevideo
Manipulators template: manip_template
Custom selection: manip_customselection
Camera manipulator: manipcamera
Arrow display: maniparrow
Tools samples
Code samples
Camera data import/export: impexpcamera
Export of sampled model data: impexpdevice
Export of a complete scene: impexpgames
Custom menu template: impexpmenu
Import/Export tool: impexptool
Sample import/export plugin: impexpsample
Code samples
MotionBuilder SDK Architecture
Naming Conventions
Threading
Enumeration mapping
Data types & properties
Shaders
Events & callbacks
Matrix Transformation Order
Customizing the MotionBuilder SDK
Object Model
FBSystem - The System Class
FBApplication - File I/O and Application Utilities
FBComponent - The Base Entity Class
FBProperty - Object Properties
FBPlug - Object Connection Management
Utility Classes
File Input and Output
Saving to a File
Loading from a File
File Options
File Events
Example: Cube Counter
Scene Elements
FBScene - The Scene Class
FBModel - Transformation Data and the Scene Graph
FBGroup and FBSet - Scene Element Organization
FBGeometry - Meshes and Surfaces
FBMaterial and FBTexture - Materials and Textures
FBLight - Lights
FBCamera - Cameras
FBCharacter - Characters
FBPose - Poses
Rigid Body Physics
Joint Chains
Animation
FBBox
Character animation
Constraints
Filters
Rigging
Story
Takes
Animation Layers
Audio / video
Flexible Mocap
Flexible Pipeline
Extraction Types
Converting the Goal to an Inverse Kinematics/Forward Kinematics State
Examples
Creating and Characterizing a Skeleton
Character Marker Set
Adjusting the Extraction
Solving from the Goal to the Skeleton
Custom Renderer API
Overview of the Architecture
Accessing the Custom Renderer in the User Interface
About the SDK Components
Using Python to Implement a Custom Renderer
Updated Objects
Viewport Picking, Selection, and Manipulation
Offline Rendering
File Referencing System
Referencing an FBX File
Understanding the Referenced Objects and Referenced Items
Instancing a Referenced Object
Getting Notified of Source File Changes
Modifying the Items in a Referenced Object
Keyframe Animation on Referenced Items
Unloading and Reloading a Referenced Object
Restoring a Referenced Object
Saving an FBX File with Referenced Objects
Merging the FBX files
Connections Between Referenced Items
Loading the Referenced Items
Deleting a Referenced Object
User Interface
UI components
Spreadsheets
Tabs
Message boxes
Progress feedback
Widgets
Python tools: best practices
Avoiding the UnbindWrapperError
Layouts
Box layout
Grid layout
Tools
Manipulators
Motion Capture Devices
Device operation
Model templates
Streaming devices
Optical devices
Sampling modes
Device layouts
Output devices