Original creations in Second Life by Oggy Fink.

Thursday, September 15, 2016

WPS: beware of priority-5 animations


My attention has been brought recently on a so-called problem with the WearPose System (see here for a description), stating that adjustment would not work on some animations.

Problem? Solution!

Indeed, upon investigation it appeared that the "main" animations configured were priority 5 animations. For adjustment to work as expected, the adjustment poses are supposed to have a priority higher or equal to the main pose priority (see here for an explanation about the theory of adjustment poses).

Thing is the standard adjustment poses provided with the WearPose System are priority 4, hence the encountered problem.

The solution may sound easy: just use priority 5 animations as adjustment poses. Or even priority 6! Or 7?

Not so fast!

The animation priority system was (cleverly) designed by LL to allow one animation to override some joints of a lower priority animation. However, people are using this clever system stupidly. Here is what the official wiki says about animation priority usage, summed up in a table.

PriorityPurpose and guidelines
0Used for many of the internal animations which are intended to be overridden with an AO.
1Used for internal emotes.
2Priority 2 is a good choice for stands in AOs.
3Priority 3 should have been the best choice for walks, dances, sits and most other animations. Unfortunately many of those animations have been given priority 4 leading to unpredictable user experiences for creators who do try to use priority 3.
4Priority 4 is used for many walks and most pose ball animations, such as dances, sits and vehicle driving animations.
5Priorities higher than 4 should be reserved for situations when the objective is to override only some joints of the existing priority 4 animation.
For example, a handbag might override an arm and boots might override feet. In these cases, the alternative to a priority 5 animation is a script which continuously alternates priority 4 animations, generating a lot of unnecessary script events.
If you do not need part of the existing priority 4 animations to continue playing, you do not need, and should not use, priority 5.
The internal turn_180 animation, which plays during Edit Appearance, uses priority 5.
6As priority 5 animations proliferate, a use for priority 6 is certain to materialize. However, as with priority 4 and 5. If your objective is not to allow part of an existing priority 5 animation to continue playing, then you can meet your objective either with a priority 5 or a priority 4 animation.
It is uncertain whether viewer and server support for priorities higher than 5 exists today or will continue to exist in the future.

The SL official viewer, as well as third-party viewers like FireStorm, are not able to upload priority 5 animations without some serious hacking. I will not cover this subject here since it's not officially supported. And moreover such hacks are often broken: the hacked viewer appears as it's uploading an animation to priority 5 while some internal code in the viewer brings it back to 4.

Yet some people manage to upload priority 5 animations and sell them, sometimes very expensive. While there is, in my opinion, no true reason for doing that, this is a problem for the WearPose System's adjustment poses.

The WearPose System itself is perfectly able to cope with that, as scripts are not aware at all of animation priorities anyway. But the visual result will not be what you expect as "normal" high priority animations (like adjustment poses) are priority 4.

So?

What do do ? Two solutions.
  1. AVOID buying priority 5 animations. Creating them and selling them is unprofessional behavior in my opinion. It will prevent users from partly overriding them with normal, legitimate, animations or poses.
    If you bought a priority 5 animation from a creator, you should contact them and tell them about this situation and ask (or demand!) they reupload their animation with a lower, more normal, priority, like 4 or 3.
  2. Use priority 5 adjustment poses. You will need to create and download them (as .bvh files) using the WearPose System website and find a way to upload them as priority 5 animations.
    As I said previously, I cannot and will not support this. You're on your own there.
I hope this clarifies this situation. Have fun with your WearPose System !