bvhacker: video tutorial 1

This is the help and support page for bvhacker. bvhacker is free to use, both commercially and otherwise, but if you do use it regularly all I ask is you make a $10 donation:

Converting Animazoo bvh files for SL

Free bvh files

Animazoo provide an extensive range of royalty free bvh files for download here. The bvhacker tutorials use Animazoo files. Click the image to the left to visit Animaoo's free bvh files page.

Converting bvh files for Second Life

The file I have used for this tutorial is called airguitar.bvh and can be downloaded for free from Animazoo. You will need to register before dowloading.

An overview of bvhacker's interface is available here

The menu commands are described here.

Step 1: Rename and resize joints

  1. Open your bvh file in bvhacker. The skeleton is fairly large, so you may want to zoom back (Right mouse button) to see it properly. Play the animation to make sure everything is working ok.

  2. To rename the joints, go to the menu and select Hack->Attempt SL joint naming. bvhacker renames the appropriate bones, and informs you that there are two bones called RightFootHeel and LeftFootHeel.

  3. Select RightFootHeel in the scene browser (top left) and delete it. Do the same for LeftFootHeel.

  4. To retarget the skeleton, go to the menu and select Hack->Attempt retarget to SL. bvhacker then tells you that 'All 24 joints have been retargetted'.

You now have a skeleton configured for SL!

Step 2: Loop the animation

To make a nice loop, we need to pick suitable start and end points in our animation, then delete the frames outside these points. Finally, we 'knit' the ends together to smooth the loop. The looping buttons are in the bottom left of the bvhacker interface.

  1. Move the timeline slider to frame 118 and click the 'Mark in' button. Now move the slider to frame 341 and click the 'Mark out' button.

  2. Click the 'Crop' button to delete all frames outside this range. Play the animation. Notice how the figure jumps when it loops back from the end to the start.

  3. Click the 'Knit' button. Play the animation again. Notice how the animation loops more smoothly between the end and start frames.

You now have a looped animation!

Step 3: Re-orientate the figure

Our figure is facing to the right and is not centered. To fix this, do the following:

  1. Select the hips in the scene browser

  2. Make sure rotation mode is enabled (press R)

  3. Adjust the Y slider until the figure faces towards you

  4. Press the Center shortcut button (or keyboard C) to center the figure

You now have nicely orientated animation!

Step 4: Resample

In the file properties window (bottom left) you will notice that the animation has a very short frame time (16.7mS) and a very high frames per second (fps) value (60). This means the file has far more frames than it needs to display properly in Second Life. We need to resample the animation to around 15 fps. The '½Sample' button is in the 'Prepare' section (middle right of the bvhacker interface).
  1. Click the '½Sample' button. Notice the fps value has halved.

  2. Click it again so that the fps reads 15fps.

You reduced the frame count by 75%. Whilst the animation will look practically the same in SL, it will significantly reduce lag.


You now have an animation compatible for Second Life. You could just set the first frame to a T-stance (Set T) and upload it. However, there are a number of steps you can take to optimise it for upload. These steps are covered in Tutorial 2: Preparing a Second Life animation for upload.

Bookmark and Share