The following rules are used in Avastar (2.4-24 and newer) for creating BVH Animations:

Rule 1: First frame defines startlocation of the animation

The value of the Hip bone location in the first frame seems to be the
reference location where the animation starts (transition wise)

Rule 2: First frame is not played (unless the animation has only one frame)

It looks like the first frame of an animation is not used for animation in SL unless the animation has only one single frame …

Rule 3: One-frame animations work (despite of rule 2)

It appears as if an animation does not NEED a reference frame. So if only
one single static pose shall be created, then exporting a single-frame animation
seems to be accepted by SL. In that case this single frame is used as the
static pose.

Rule 4: A bone is only animated if animation values differ at least on 2 frames

A bone is considered as not animated when the rot and loc values
are exactly identical on all exported frames. The decision if a bone is animated
or not seems to be made by the BVH importer’s animation optimizer.

Special considerations

Exclude a bone from animation

The exact values for rot and loc seem to be not important as long as they are all the same on all frames.

  • It seems fully ok to just set rotation of static (not animated) bones to <0,0,0> on every frame (Restpose)
  • It equally seems ok to set translation of static (not animated) bones to <0,0,0> on every frame.

Enable bone locking

If a bone shall be locked to rest at a specific location or rotation for the entire animation, but not move in any way, then:

  • Set the desired values for the bone to every frame
  • Modify the first frame to have different values for rotation and translation