"How to use these files" - instruction page

This text file is included with each of the BVH ZIP archive files for the 3dsMax-friendly release.

How to use the BVH files from the 3dsMax-friendly release of the CMU

motion database.

v1.00 last update May 1, 2009 B. Hahne

Get the BVH data at: www.cgspeed.com in the Motion Capture section

This HOW-TO-USE-THESE-FILES.txt help file goes with the

3dsMax-friendly BVH files available at www.cgspeed.com in the Motion

Capture section. I also hope to do a short training video that

demonstrates these steps, and if/when that's complete I'll post it

somewhere near the download links for the BVH files.

I've tested these steps with 3dsMax 2009. The conversion is

straightforward: you load the BVH data onto a Biped, save the data

back out in .BIP format, and then it's available to use with any

Biped. It would also be possible for me to batch-convert all of the

Max-friendly BVH files to .BIP and simply make the .BIP files

available, however I thought it might be better to make the raw BVH

files available instead, in case people want to further edit them (via

text editor, script, or whatever you like) in some way.

Here's how to put any of the BVH files to use, within 3dsMax.

1. Create a Biped via Create tab --> Systems -->Object Type rollout

--> Biped, then drag up in the main viewport to actually create the

Biped. You can create the default Biped - there's no need to adjust

the spine link count, number of fingers, etc.

2. Make sure the Biped is selected, then go to the Motion tab. You

should see a large number of rollouts available for the Biped. Find

the Motion Capture rollout towards the bottom and expand it.

3. The upper left icon within the Motion Capture rollout should be

"Load Motion Capture file". In 3dsMax 2009, the icon has a small file

folder above a small camera. Click this button to start the BVH load

process. An "Open" file dialogue box should appear.

4a. In the file dialogue box, "Files of type:" will probably default

to ".BIP". Change this dropdown to ".BVH" so that you can see BVH

files.

4b. Still within the file dialogue box, navigate to the BVH file that

you want to open, select it, then click the Open button.

4c. You should get a warning message from Max that says it doesn't

recognize all of the joints in the BVH file. It should say "The

following track names were found in the file and are unrecognized by

Biped: LHipJoint, RHipJoint, lowerback, lowerneck, lhand, LFingers,

LThumb, rhand, RFingers, RThumb". If the warning message mentions any

OTHER joint names then there's a problem, but that shouldn't happen if

you're using the correct set of converted BVH files. The

Carnegie-Mellon skeleton has a variety of joints that don't map onto

the 3dsMax Biped, so they're intentionally named in a way that

prevents Max from trying to incorporate them into the loaded data.

4d. Click "OK" on the warning message to make it go away. Max should

now bring up a large complex window titled "Motion Capture Conversion

Parameters".

4e. In the Motion Capture Conversion Parameters window, towards the

top left of the window, set "Up Vector" to the "Y" radio button. The

default is "Z". The CMU dataset uses "Y" as the up axis, so we're

supposed to tell Max that in the BVH file, "Y" originally meant "up".

(3dsMax uses the Z axis as its up axis.) You should be able to leave

all other parameters in this Parameters window at their default

settings.

4f. Still in the Parameters window, click OK now that you've set Up

Vector to "Y". Max should load the BVH file data. The Biped

appearance will now change significantly, since Max completely

overhauls the Biped skeleton to match the BVH base skeleton that it's

just imported. Don't worry if the shape of the skeleton doesn't look

anything like what your preferred skeleton will look like when you

actually animate.

5. Click the animation play button (lower right corner) to test the

playback of the data. You should get a smooth playback of whatever

animation you've just loaded.

6a. Now we'll save the BVH data as a .BIP file so that we can use it

with any Max Biped. Make sure the Biped is still selected, and that

the Motion tab is also still selected. Open up the "Biped" rollout

(it's open by default in Max 2009) and click the little diskette icon

which is for "Save File". Max should bring up a "Save As" dialogue

box.

6b. In the Save As dialogue box, make sure that "Save as type:" is set

to .BIP. Navigate to a directory where you want to save the data,

type a file name in the File Name box, and click Save.

7. Now you can test the .BIP file. Create a new Biped. I usually

create my new Biped at least 2x larger than the original, so that it's

easy to compare the motions when I hit play. You can give the new

Biped as many spine links as you want, you can add extra fingers, etc.

3dsMax seems to be pretty good about retargeting across Bipeds, so in

theory you should be able to create any Biped that you like.

8. Select the new Biped and again go to the Motion tab, so that you

see all of the rollouts available for the second (new) Biped.

9a. Under the Biped rollout (NOT the Motion Capture rollout), click

the "Load File" icon. In 3dsMax 2009 this icon is immediately to the

left of the Save File icon that you used in step 6a above. Max should

bring up an "Open" dialogue box to let you choose a .BIP file.

9b. Still in the Open dialogue box, choose the .BIP file that you

previously saved in step 6a and click Open to assign it to your second

Biped. Your second Biped should immediately take on a pose similar to

the pose held by the original Biped.

10. Play back the animation and confirm that the new Biped matches the

motions of the original. If you made the new Biped larger, Max will

adjust its step size and motions appropriately to the size of the

second Biped.

11. The CMU dataset isn't entirely clean. In particular, you'll find

times when wrists or ankles will twist or flip incorrectly. The

investigations I've done so far suggest that these problems aren't a

result of my conversion script (which attempts to preserve the

original data as much as possible, to the extent that it's usable by

Max), but rather are coming from the original captured data.

Techniques for cleaning up bothced keyframes on limbs are beyond the

scope of this little intro text file, however generally the approach

is to find the joint(s) with the problem and replace the data with new

keyframes that work, or simply delete the bad keyframes and make sure

that the transition across the keyframe gap looks clean.