Difference between revisions of "BVH Reference Frame"

From Second Life Wiki
Jump to navigation Jump to search
m (moved Animation Reference Frame to BVH Reference Frame: The reference frame is not preserved in the internal format. The subject only applies to BVH files, not both BVH files and the internal format.)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTOC__
{{Help
{{Help
|Object=*
|Object=*
}}
}}


The first frame of a BVH file isn't displayed.  It's used to determine which joints the animation controls.  Only the joints that moved between the first and second frames will be affected.
The first frame of a BVH file isn't displayed.  It's used to determine which joints the animation controls.


==Widespread Falsehoods About the First Frame==
* It must not be changed or 'bad things' (almost never specified) will happen.


Widespread falsehoods about the first frame include:
:In fact, '''you usually do have to edit the first frame''' to properly control what joints the animation affects.  Animations should rarely influence all joints.


:* it must not be changed or ''bad things'' (almost never specified) will happen
* Any joint with a non-zero value in the first frame will be animated.


::In fact, '''you usually do have to edit the first frame''' to properly control what joints the animation affects.  Animations should almost never influence all joints.
:If the values in the first and second frame '''differ''' for a joint, that joint will be animated.  '''If you use the same non-zero values in the first and second frame for a joint, that joint will ''not'' be animated!'''


:* any joint with a non-zero value in the first frame will cause that joint to be affected
==You've Got a Bad Hip?==
Both the position and the rotation of the hip joint are ''relative'' to the values in the first frame.


::Second Life only attends to '''whether there is a difference''' between the joint values on the first and second frame, '''not the values themselves'''.  If the joint has the same non-zero values in the first and second frame, that joint will not be animated!
All other joint rotations are absolute.  That means, except for the hip, it's safe to use any value you please in the first frame to create a difference between it and the second frame, to indicate a joint should be animated.
 
Relative hip position and rotation has the potential to be '''very''' aggravating, since all other animation programs display absolute positions and rotationsThat means you might not see the same thing in Second Life that you see in your animation program.  I would argue this is a bug, but it appears to be deliberate.
 
When in doubt use <0.0, 42.100, 0.0> for hip position, and <0.0, 0.0, 0.0> for hip rotation, in the first frame.  If you want the hip to be animated, you will still need to make the position or rotation (either one will suffice, it does not need to be both) differ between the first and second frame.  That does mean it's impossible to make a animation where the hip isn't moved ''and'' is perfectly upright (either one alone is possible).


[[Category:LSL_Animation]]
[[Category:LSL_Animation]]

Latest revision as of 10:39, 5 February 2012

The first frame of a BVH file isn't displayed. It's used to determine which joints the animation controls.

Widespread Falsehoods About the First Frame

  • It must not be changed or 'bad things' (almost never specified) will happen.
In fact, you usually do have to edit the first frame to properly control what joints the animation affects. Animations should rarely influence all joints.
  • Any joint with a non-zero value in the first frame will be animated.
If the values in the first and second frame differ for a joint, that joint will be animated. If you use the same non-zero values in the first and second frame for a joint, that joint will not be animated!

You've Got a Bad Hip?

Both the position and the rotation of the hip joint are relative to the values in the first frame.

All other joint rotations are absolute. That means, except for the hip, it's safe to use any value you please in the first frame to create a difference between it and the second frame, to indicate a joint should be animated.

Relative hip position and rotation has the potential to be very aggravating, since all other animation programs display absolute positions and rotations. That means you might not see the same thing in Second Life that you see in your animation program. I would argue this is a bug, but it appears to be deliberate.

When in doubt use <0.0, 42.100, 0.0> for hip position, and <0.0, 0.0, 0.0> for hip rotation, in the first frame. If you want the hip to be animated, you will still need to make the position or rotation (either one will suffice, it does not need to be both) differ between the first and second frame. That does mean it's impossible to make a animation where the hip isn't moved and is perfectly upright (either one alone is possible).