• 17Dec

    Update: Check out my animation exporter download and tutorial.

    Back in May of this year, I posted about my work on a script to export animations from Blender to SL-compatible BVH files. Well, as you can see from the comparison screenshot below (click to enlarge), I’ve made a lot of progress since then.

    Comparing the animation played in SL (left) with the animation as it appears in Blender (right)

    (Mind you there’s some difference between the camera angle in the two shots, and possibly some slight mis-rotation of the hands from SL’s rather zealous animation ‘optimizing’ algorithm.)

    Some difficulties I’ve encountered:

    • As mentioned in my earlier post, the axes of rotation for the bones in the SL skeleton differ from the Blender skeleton. That is, in the Blender skeleton, the Y axis always points along the length of the bone. In the SL skeleton, it varies between bones.
    • Furthermore, the order of rotation for the Euler angles varies from bone to bone in the SL skeleton. I have had to employ code to convert from one order to another to correct for this. It seems to have done the trick.
    • SL has a bug which duplicates the first frame of an animation. (VWR-3783)
    • Using IK on the Blender skeleton, especially in the legs, tends to cause jittering in the SL skeleton — that is, wobbly knees and ankles. My best guess at the moment as to the cause of this is SL’s insistence on converting all joint angles to integer degrees. Subtlety, be banished!
    • Certain rotations result in a significant difference in the appearance of the animation. I’m pinning the blame for this one on Gimbal Lock. That’s right, I’m looking at you, Mr. Lock.

    Nevertheless, my animation exporter script is a very significant step up from Qavimator: smooth blending between keyframes (controlled by my most-beloved B├ęzier curves); custom rigs for different types of animations; inverse kinematics to provide that extra stick in the feet; layering and blending single actions to create longer animations; and all the rest.

    And as it happens, I’m currently in a trial period as animator for one ChronoForge 4D, a manufacturer and purveyor of sharp, pointy things with which to poke and jab at other similarly-minded avatars. So next time you stab someone through the heart and then kick their body to the ground (in SL), you might say a little thanks to the kindly, peace-loving artist who made it all possible.

    Posted by Jacek Antonelli @ 11:19 am

9 Responses