This tutorial describes how to convert an animation file downloaded from the Animazoo website to be Second Life compatible. I do not present this as a definitive guide - please do let me know if you have any ideas or corrections.
In this article I describe how to convert a bvh file downloaded from Animazoo to an animation suitable for uploading to Second Life. If you are not already familar with bvhacker's interface, an overview is available here.
The first thing to notice is that the skeleton is missing an abdomen joint between the Hips and Chest. This is a commonly required fix - just press the 'AddAb' button in the 'Hacks and Tweaks' section (3).
Next, we can see from the file properties (11) that the 'Arms alignment' is along the Y axis. Second Life requires that the arms be aligned on the X axis.
To see what this means, press 'Set T' in the 'Hacks and Tweaks' section (3). You will see that the figure's arms are by their sides when all the joints are zeroed. Once the arms are re-aligned, the figures arms will go up horizontal forming a T shape when zeroed. Press 'Rem T' to remove the frame.
To fix the arms alignment, we use the SLify button. This function also renames the joints, so hit SLify and say 'yes' to the two dialogs that appear.
Now if you press 'Set T' you will see the arms go to the correct position. This was just a check, so hit 'Rem T' to remove the frame again.
The bones are now set up to be Second Life compatible.
Looping animations can be very time consuming. However, bvhacker makes looping quick and simple providing you have animation data with similar start and end points. I used a walk animation from Animazoo for this example.
The first thing to do is to make the animation walk on the spot, as this is how it needs to be for Second Life. With the hip joint selected in the tree view (12), select 'Translation mode' from the 'Sliders adjustment' panel (4). Click the clamp (zero out) channel 'Z' button in the 'Adjustments' section (2). This will remove all translation data in the Z plane, making the figure walk on the spot.
Now the tricky part - scrub through the animation using the timeline slider (9) to find suitable start and end points for your loop. Mark the start and end points using the 'Mark in' and 'Mark out' buttons (section 8). Now press the 'Crop' and then 'Knit' buttons. When played, your animation should now loop smoothly.
Although you should have a nice loop by this stage, we still have some work to do. Because of the way Second Life interprets animation files, it is actually desirable to set a relatively low framerate before uploading. Hit the 'Resample to 20fps' button in the edit section (8).Due to rounding errors, it is sometimes necessary to delete the final frame, as it is too similar to the first. If this is the case, use the edit controls (8) as before to trim the file.
Press 'Set T' in the 'Hacks and Tweaks' section (3) to set the initial frame for Second Life, and you are done!. Note: there are a few techniques for better preparing an animation before upload. These are convered in a separate tutorial.
If you do sell animations made with bvhacker you have an obligation to obtain permission from the original bvh motion file creator to re-sell their work. However, this does not apply to files from Animazoo - if you want to re-sell animations from there you are permitted to do so as long as you add the word 'Animazoo' to the name of the animation when you put it up for sale.