Sunday, October 2, 2011

Dance Priorities

Dance Priorities 111002

This note is to help you understand dance priorities.



Dances in SL are animations and so are animated poses, static poses, SL internal animations, movement from pose balls, etc. Animations move your avatar in a pre-programmed way. When more than one animation is running on your avatar, SL uses priorities to determine what happens to your avatar. A helpful article on animation priorities is found on the SL Wiki.  

There are seven levels of animations that I am aware of currently in SL: 0, 1, 2, 3, 4, 5 and 6. The higher the number means the higher the priority. The animation priority (through 4) is set when the animation is uploaded to SL from an external animation file of the type .bvh. A set of choices is made by the person uploading the animation as shown in the picture below:

Most internal SL animations are below 2. These are standard things like the SL waddle, laughing, waving, flying, etc.  Most animated poses are set at level 2. Most dances are set at level 3. The animation that your avatar uses when you go to Appearance is priority 5. Priority 6 can be made through a hacking process and is not recommended.

If you dance using only your HUD, generally you do not have to think about animation priority. The way the HUD works is you dance using only one animation at a time. When you click to dance a different dance, like going from swoon to Sultry Down Body, the HUD stops swoon and starts Sultry Down Body. The Huddles HUD can run only one dance at a time.



Once in a while  you may add someone to your HUD and they seem to sometimes dance strangely with jerky movements on some dances or dancing when no one else is dancing. What usually has happened is that the person was dancing on a Dance Ball and then accepted your invitation to dance. Two animations are affecting the person at the same time. You can fix this by asking the person to stop the Dance Ball dance.

You can intentionally run two or more animations at once in a number of ways. Here are some ways to do it:

  1. Use two dance HUDS at one time
  2. Use a dance HUD and a Dance Ball dance at one time
  3. Use your HUD then open a dance from inventory and run it
  4. Run two dances from inventory at one time.



You can view the UUID and priority of currently playing animations by selecting Advanced - Character - Animation Info from the menu, or Develop - Avatar - Animation Info on Viewer 2. This gives you information about every animation that your avatar is running. The dance you may be running is listed with the UUID number. If you run two animations at once, you see two UUID numbers.



Get these three animations from the DANCE QUEENS Freebie Box:

90Whip - a Priority 4 head movement only
c-walk - a priority 4 dance
Boogie - a priority 2 dance

Put these animations to your inventory and let's see priorities in action. Double click all three animations from inventory to get three Animation windows each with a 'Play in World' button and a 'Play Locally' button. When you click the 'Play in World' button the animation starts.

First, let's look at how priorities work. Make sure all the dances are stopped. Start the boogie dance only. Hey, you are dancing an old favorite from pre-MOCAP days. Now, without stopping boogie, start c-walk. You stop boogie and dance c-walk. You can see from your information about priorities that two animations are running at one time, but you are dancing only one. This is because c-walk is priority 4 and boogie is priority 2. Your avatar dances the higher priority dance. OK, stop both dances. For you doubters, let's reverse the order. Start c-walk first, then start boogie. Again you dance only c-walk. Although boogie started after c-walk, you are running both animations and the higher priority is what you dance. Again, stop both animations.

Next, start 90Whip. Your head shakes in a no movement. Now, start c-walk and again you dance the nice freebie c-walk dance. Both 90Whip and c-walk are priority 4 animations, so when you run both at the same time, the last one started has priority. Stop both animations. Now, let's look at the reverse. Start c-walk  to dance. Then, start 90Whip. Hey, you are dancing c-walk with your head shaking a strong NO. You are dancing two animations at once.

This happens because an animator can make an animation affect all 23 joints in an avatar

or just some of them. If the animator chooses to affect only some joints, only those joints have the priority set for the animation. The others basically have no priority. When I made 90Whip this is what I did. I made the head movement a priority 4 and the other joints not affected. When the creator of c-walk (Live Gears) made c-walk, he chose to make all 23 joints a priority 4.

When multiple animations, for the same joint, are played at the same time the animation with the highest priority will be effective. If there are multiple animations with the highest priority, then the animation which was started most recently will be effective. In other words, when a new animation is started, each joint is looked at for the priority. If you are running a 4 priority dance like c-walk then start an anim like 90Whip with only the head at priority 4, all the joints except the head dance c-walk and the head uses 90Whip.