SmartBody can read and utilize several motion formats:
.bvh
.asf/amc
.dae (COLLADA)
.fbx
In addition, SmartBody has several native formats for motion (skm) and skeleton definition (.sk).
Note that .fbx format must be converted to the native skeleton (.sk) and motion (.skm) format before use using the tools/FbxToSBConverter application.
.skm Motion Format
The native SmartBody motion format (,skm) looks like this:
SkMotion
name "<NameOfMotionHere>"
channels <numberOfChannels>
<jointName> <channelType>
...
...
frames <numberOfFrames>
kt <time> <channel1> <channel2> <channel3>
....
<metadata> : <value>
where <numberOfChannels> is the number of translation or rotation channel
where <jointName> is the name of the joint
where <channelType> is one of XPos, YPos, ZPos, or Quat
where <numberOfFrames> is the number of frames
where <time> is the time of a particular frame
where <channel1>, <channel2>, <channeln> are the values of the channel in the order specified above. In the data, translation channels (XPos, YPos, ZPos) have a single value, whereas quaternion channelss use 3 values: the x/y/z values of the axis when decomposing a quaternion into an axis/angle, multiplied by the length of the angle (thus the axis/angle representation is represented by only three values, and can be reconstituted into four values by determining the magnitude of the three values which determines the angle, and dividing by that length, leaving the x/y/z axis)
where <metadata> is the name of some metadata (such as start: ready: or other descriptor) and <value> is the value of that data (could be a motion time)