Difference between revisions of "Animation Upload Priority"

From Second Life Wiki
Jump to navigation Jump to search
m (Adding more references (links to other pages on the SL Wiki), adding a bit more typographic sugar to match conventions)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__NOTOC__
{{Help
{{Help
|Object=*
|Object=*
}}
}}
{{Merge to|Animation Priority|discuss=Talk:Animation_Priority|date=February 2011}}


Most animations should be uploaded at priority 2.  A few must be higher priority to override the corresponding default animation.  Remember that when two or more animations have the same maximum priority for the same joints, the one that plays last is the one that takes effectAlmost all animations should define chest and abdomen movement.
Uploaded animations need to match, or more commonly, exceed, the priority of built-in animations to be visible when they are playedThat determines the minimum priority you could use.


There are good reasons for those recommendations.  Animations of priority 1 or less, or that do not define abdomen movement, will have random abdomen movement added, which is never desirableIf you don't define chest movement, breathing will be added for you, which might be a problem if you want to control the breathing rate, or don't want breathing (e.g. for a robot avatar).  Using the lowest priority that works, while still avoiding problems like the ones just mentioned, is best, because it allows animations to be mixed.
Determining the priority of the built-in animations is not as straightforward as it first appearsThe priority displayed by Animation Info has no apparent relation to the priority of the joints.


If you engage in the common malpractice of uploading all animations at priority 4 people using your animations will have to turn their animation overriders on and off, constantly, unnecessarily, and that will make your animations less popular than those that follow these guidelines.
{| class="sortable" {{prettytable}}
|+ Built-In Animations with Misleading Priorities
|-{{Hl2}}
! Type
! Visible Priority
! Actual Priority
|-
| turn left
| 1
| 3
|-
| turn right
| 1
| 3
|-
| prejump
| 0
| 3
|-
| jump
| 0
| 3
|-
| hover
| 0
| 3
|-
| slow fly
| 0
| 3
|-
| fly
| 0
| 3
|-
| upward fly
| 0
| 3
|-
| downward fly
| 0
| 3
|-
| land
| 0
| 3
|}
 
It's possible to mix animations by playing different priority animations at the same time, or equal priority animations in the right order, and this is a very useful feature.  For instance, you could play a priority 2 standing animation while playing a priority 4 gesture animation to wave your arm.  Another example would be playing a priority 4 animation to sit on a couch, and then another priority 4 animation to move your arms to hold and eat from a bag of popcorn.  Using the lowest priority that will work makes mixing easier, because so long as the animations have different priorities you don't have to care about the order in which they are played.
 
A priority less than 2 is generally not useful.  At priority 0 many built-in animations will mix with your animation.  It will be obviously unusable.  At priority 1 the built-in <code>[[Internal Animations#Viewer-generated motions|head_rot]]</code> animation will always mix with your animation.  This moves the abdomen too much to be usable for many animations.
 
At priority 2 the abdomen will constantly be moved slightly in random directions by the built-in <code>[[Internal Animations#Viewer-generated motions|body_noise]]</code> animation.  If you want to avoid this, you will need to upload at priority 3 instead.
 
Most animations should define chest and abdomen movement.  If chest motion is not defined breathing will be added for you by the <code>[[Internal Animations#Viewer-generated motions|breathe_rot]]</code> built-in animation, which could be a problem if you wanted to control the breathing rate, or don't want breathing (e.g. for a robot avatar).  If abdomen motion is not defined the abdomen will move due to the <code>head_rot</code> built-in animation.


{| class="sortable" {{prettytable}}
{| class="sortable" {{prettytable}}
|+ Recommended Animation Upload Priorities
|-{{Hl2}}
|-{{Hl2}}
!Animation Type
! Type
!Default Priority
! Upload Priority
!Upload Priority
|-
|-
|stand
| stand
|0
| 2
|2
|-
|-
|walk
| turn left
|3
| 4
|3
|-
|-
|run
| turn right
|0
| 4
|2
|-
|-
|prejump
| walk
|0
| 2
|2
|-
|-
|jump
| run
|0
| 2
|2
|-
|-
|sit
| crouch
|4
| 2
|Not Applicable{{Footnote|Overriding the normal sit in a animation overrider is pointless since it will almost always be overridden by pose balls.  Doing so often prevents pose balls from working.  It is, however, good to know the priority of the default animation so you can override it for pose balls.  Overriding ground sit in a animation overrider '''is''' useful.|handle=a}}
|-
|-
|ground sit
| crouch walk
|3
| 2
|3
|-
|-
|crouch
| sit
|0
| Not Applicable{{Footnote|Overriding the normal '''sit''' in an animation overrider is pointless since it will almost always be overridden by pose balls.  Doing so often prevents pose balls from working.  Overriding '''ground_sit''' in an animation overrider '''is''' useful.|handle=a}}
|2
|-
|-
|crouch walk
| ground sit
|0
| 4
|2
|-
|-
|fall
| prejump
|3
| 4
|3
|-
|-
|hover
| jump
|0
| 4
|2
|-
|-
|fly
| hover
|0
| 4
|2
|-
|-
|slow fly
| slow fly
|0
| 4
|2
|-
|-
|upward fly
| fly
|0
| 4
|2
|-
|-
|downward fly
| upward fly
|0
| 4
|2
|-
|-
|land
| downward fly
|0
| 4
|2
|-
|-
|stand up
| fall
|3
| 4
|3
|-
|-
|turn left
| land
|1
| 4
|2
|-
|-
|turn right
| stand up
|1
| 4
|2
|-
|-
|typing
| typing
|2
| 4
|4
|-
|-
|floating
| floating{{Footnote|underwater "hover"|handle=b}}
|Not Applicable{{Footnote|underwater "hover"|handle=b}}
| 4
|2
|-
|-
|swimming forward
| swimming forward{{Footnote|underwater "fly"|handle=c}}
|Not Applicable{{Footnote|underwater "fly"|handle=c}}
| 4
|2
|-
|-
|swimming up
| swimming up{{Footnote|underwater "upward fly"|handle=d}}
|Not Applicable{{Footnote|underwater "upward fly"|handle=d}}
| 4
|2
|-
|-
|swimming down
| swimming down{{Footnote|underwater "downward fly"|handle=e}}
|Not Applicable{{Footnote|underwater "downward fly"|handle=e}}
| 4
|2
|-
|-
|furniture
| furniture{{Footnote|no built-in animation|handle=f}}
|Not Applicable{{Footnote|no default animation|handle=f}}
| 4
|4
|-
|-
|pose stand
| dance{{Footnote|handle=f}}
|Not Applicable{{Footnote|handle=f}}
| 4
|4
|-
|-
|dance
| pose stand{{Footnote|handle=f}}
|Not Applicable{{Footnote|handle=f}}
| 4
|4
|-
|-
|gesture
| gesture{{Footnote|handle=f}}
|Not Applicable{{Footnote|handle=f}}
| 4
|4
|-
|-
|drink/eat
| drink/eat{{Footnote|handle=f}}
|Not Applicable{{Footnote|handle=f}}
| 4
|4
|}
|}


== Overriding Animations ==
== Overriding Animations ==
Consider leaving the head and neck joints undefined in standing and sitting (ground and furniture included) animations.  This will allow the head to follow the camera and pointer.
Consider leaving the head and neck joints undefined in standing and sitting (ground and furniture{{Footnote|In Second Life, many furniture items — chairs, benches, beds, etc. — will include animations appropriate for the avatar interaction with the furniture; others might use [[Poseball|pose balls]] instead.}} included) animations.  This will allow the head to follow the camera and pointer.
 
It's okay to upload stand, walk, run, crouch, and crouch walk animations at priority 3, instead of the suggested priority 2.  That will stop the built-in <code>body_noise</code> animation from messing up your work, at the cost of reducing your ability to mix.
 
Some animation overriders (like the free and open source [https://marketplace.secondlife.com/p/ZHAO-II/1593159 ZHAO-II]) will allow you to play multiple animations at once.  This is useful for working around several problems.


When making sitting (ground and furniture included) animations that you expect to be used where people build or teach consider defining the movement of the lShldr, lForeArm, and lHand joints in a separate animation of priority 2.  Most animation overriders will allow you to play multiple animations at once.  This will allow the left arm to aim at what is being pointed to.  By keeping your standing animations at priority 2 they should allow this behavior with one animation.
If you decide to make a standing animation priority 3 consider defining the motion of the '''lShldr''', '''lForeArm''', and '''lHand''' joints in a separate priority 2 animation.  This will allow the left arm to aim at what is being pointed to.  You may want to do the same thing, for the same reason, when making priority 4 sitting (ground and furniture included) animations that you expect to be used where people build or teach.


You may not want to define Foot movement for animations where your feet touch the ground (standing, walking, running, prejumping, crouching, crouch walking, landing, and turning animations).  If you don't, the angle of the feet will be matched to the terrain.  You may not want to define hip motion for animations where your feet touch the ground and you are upright with your hips not moving (standing and turning animations) for the same reason.
You may not want to define hip motion for animations where your feet touch the ground and you are upright with your hips not moving (standing and turning animations).  If you don't, the angle of the hip will be matched to the terrain.  You may not want to define Foot movement for walking animations for the same reason.


Flying and swimming animations of priority 2, or that do not define hip motion, will roll to follow the angle of flight.  This is usually desired.
Flying and swimming animations that do not define hip motion will roll to follow the angle of flight.  This is usually desirable.


Typing animations should only effect the arms so they can be used with other animations (like furniture animations).
Typing animations should only effect the arms so they can be used with other animations (like furniture animations).  This is also why I suggest uploading them at priority 4, even though priority 3 is sufficient to override the built-in animation.


== Animated Attachments ==
== Animated Attachments ==
Attachments for drinking and eating should only effect the head, neck, and arms so they can be used with other animations (like furniture animations).
Attachments for drinking and eating should only effect the head, neck, and arms so they can be used with other animations (like furniture animations).


You're best off using the Linden Lab provided animations (hold_r_bazooka/aim_r_bazooka, hold_l_bow/aim_l_bow/shoot_l_bow, hold_r_handgun/aim_r_handgun, hold_r_rifle/aim_r_rifle) for projectile weapons.  They have their joints adjusted to increase realism when in mouselook mode.
You're best off using the [[Internal Animations#User-playable animations|Linden Lab provided animations]] (<code>hold_r_bazooka</code>/<code>aim_r_bazooka</code>, <code>hold_l_bow</code>/<code>aim_l_bow</code>/<code>shoot_l_bow</code>, <code>hold_r_handgun</code>/<code>aim_r_handgun</code>, <code>hold_r_rifle</code>/<code>aim_r_rifle</code>) for projectile weapons.  They have their joints adjusted to increase realism when in [[Viewerhelp:Glossary#mouselook|mouselook mode]].


== See Also ==
== See Also ==
*[[Animation Reference Frame]]
*[[BVH Reference Frame]]
*[[Internal Animations]]


== Footnotes ==
== Footnotes ==

Latest revision as of 12:52, 11 September 2022

Uploaded animations need to match, or more commonly, exceed, the priority of built-in animations to be visible when they are played. That determines the minimum priority you could use.

Determining the priority of the built-in animations is not as straightforward as it first appears. The priority displayed by Animation Info has no apparent relation to the priority of the joints.

Built-In Animations with Misleading Priorities
Type Visible Priority Actual Priority
turn left 1 3
turn right 1 3
prejump 0 3
jump 0 3
hover 0 3
slow fly 0 3
fly 0 3
upward fly 0 3
downward fly 0 3
land 0 3

It's possible to mix animations by playing different priority animations at the same time, or equal priority animations in the right order, and this is a very useful feature. For instance, you could play a priority 2 standing animation while playing a priority 4 gesture animation to wave your arm. Another example would be playing a priority 4 animation to sit on a couch, and then another priority 4 animation to move your arms to hold and eat from a bag of popcorn. Using the lowest priority that will work makes mixing easier, because so long as the animations have different priorities you don't have to care about the order in which they are played.

A priority less than 2 is generally not useful. At priority 0 many built-in animations will mix with your animation. It will be obviously unusable. At priority 1 the built-in head_rot animation will always mix with your animation. This moves the abdomen too much to be usable for many animations.

At priority 2 the abdomen will constantly be moved slightly in random directions by the built-in body_noise animation. If you want to avoid this, you will need to upload at priority 3 instead.

Most animations should define chest and abdomen movement. If chest motion is not defined breathing will be added for you by the breathe_rot built-in animation, which could be a problem if you wanted to control the breathing rate, or don't want breathing (e.g. for a robot avatar). If abdomen motion is not defined the abdomen will move due to the head_rot built-in animation.

Recommended Animation Upload Priorities
Type Upload Priority
stand 2
turn left 4
turn right 4
walk 2
run 2
crouch 2
crouch walk 2
sit Not Applicable[1]
ground sit 4
prejump 4
jump 4
hover 4
slow fly 4
fly 4
upward fly 4
downward fly 4
fall 4
land 4
stand up 4
typing 4
floating[2] 4
swimming forward[3] 4
swimming up[4] 4
swimming down[5] 4
furniture[6] 4
dance[6] 4
pose stand[6] 4
gesture[6] 4
drink/eat[6] 4

Overriding Animations

Consider leaving the head and neck joints undefined in standing and sitting (ground and furniture[7] included) animations. This will allow the head to follow the camera and pointer.

It's okay to upload stand, walk, run, crouch, and crouch walk animations at priority 3, instead of the suggested priority 2. That will stop the built-in body_noise animation from messing up your work, at the cost of reducing your ability to mix.

Some animation overriders (like the free and open source ZHAO-II) will allow you to play multiple animations at once. This is useful for working around several problems.

If you decide to make a standing animation priority 3 consider defining the motion of the lShldr, lForeArm, and lHand joints in a separate priority 2 animation. This will allow the left arm to aim at what is being pointed to. You may want to do the same thing, for the same reason, when making priority 4 sitting (ground and furniture included) animations that you expect to be used where people build or teach.

You may not want to define hip motion for animations where your feet touch the ground and you are upright with your hips not moving (standing and turning animations). If you don't, the angle of the hip will be matched to the terrain. You may not want to define Foot movement for walking animations for the same reason.

Flying and swimming animations that do not define hip motion will roll to follow the angle of flight. This is usually desirable.

Typing animations should only effect the arms so they can be used with other animations (like furniture animations). This is also why I suggest uploading them at priority 4, even though priority 3 is sufficient to override the built-in animation.

Animated Attachments

Attachments for drinking and eating should only effect the head, neck, and arms so they can be used with other animations (like furniture animations).

You're best off using the Linden Lab provided animations (hold_r_bazooka/aim_r_bazooka, hold_l_bow/aim_l_bow/shoot_l_bow, hold_r_handgun/aim_r_handgun, hold_r_rifle/aim_r_rifle) for projectile weapons. They have their joints adjusted to increase realism when in mouselook mode.

See Also

Footnotes

  1. ^ Overriding the normal sit in an animation overrider is pointless since it will almost always be overridden by pose balls. Doing so often prevents pose balls from working. Overriding ground_sit in an animation overrider is useful.
  2. ^ underwater "hover"
  3. ^ underwater "fly"
  4. ^ underwater "upward fly"
  5. ^ underwater "downward fly"
  6. ^ no built-in animation
  7. ^ In Second Life, many furniture items — chairs, benches, beds, etc. — will include animations appropriate for the avatar interaction with the furniture; others might use pose balls instead.