Last Modified: December 3, 2014
Previzion’s scene animation system enables objects in the 3D scene to be driven by external sources of animation over a standardized network data protocol. This enables the use of external character animation tools such as Autodesk Motionbuilder, Autodesk Maya or motion capture devices as animation sources, while still using Previzion’s rendering and video synchronization tools. To enable live animation in Previzion, you will need a Prelink license to run on an external system (i.e. a laptop running Motion Builder). Lightcraft make Prelink plugins for both MotionBuilder and Maya.
Previzion’s data format uses a series of TCP/IP packets, one for each frame of animation. Each packet is formatted in XML, with formatting very similar to that of a Collada document, and contains a series of data tags: – A frame timecode tag (optional) – An object node name, specifying the transform that the animation data will be applied to – A 4×4 Collada-formatted transformation matrix that describes the complete scene position, orientation, and scaling of the object”s transform An example of a packet is provided below.
The general construction of the packet is very similar to a Collada document, and the use of a standardized matrix transformation removes the possibility of confusion from various Euler angle interpretations. The use of the named node ID tag also means that routing the data to the correct scene transform is straightforward. ‘The addition of the timecode stamp means that any application receiving data in this format can very easily synchronize multiple inputs with a simple queue function. Stage operations can be readily handled with existing Ethernet connections, with packet communication occurring on a given TCP/IP port.
Supported Animation Types
Previzion presently supports rigid body animation, for on set previsualization purposes. Skinned animation is planned for a future point.
Since skinned animation is not presently supported, when rigging characters in 3D applications, a skinning modifier is **not** used. Instead, the various body components are modeled as separate components, and parented to the corresponding joints on the skeleton.
The above image shows how the geometry is parented to specific bones. The recommended bone naming convention is simply to use MotionBuilder’s standard bone naming convention; this way characters can be rapidly and automatically characterized to control rigs inside MotionBuilder.