Second Life’s SUN-38 Dilemma

SUN-38 is a bug report in the Second Life™ JIRA. The details of the JIRA item are visible to most SL users, I think. In case not, the title is: As users of kneel/lay/sit animations and tiny/giant avatars, we need a way to change the body size in SSB sims.

The description of the problem is:

In server-side baking regions, it becomes impossible to change your avatar’s apparent size (bounding box X and Y sizes and pelvis to feet length) since the LLAgent::sendAgentSetAppearance() function becomes a NOP.

All TPVs are providing a way to adjust your apparent avatar body size: this is of uttermost importance to adjust the height above the ground for sitting (on ground), kneeling, crouching and laying anims (since those specific anims are sensitive to the pelvis to feet length and changing your shape or shoes affects this length, that, when different from the length the animation was designed for, makes your avatar either float or sink into the ground).

RLV enabled TPVs even provide a way for scripts to adjust automatically this “Z offset” so that any avatar sees the animations played right (see the full story about this feature here: http://sldev.free.fr/forum/viewtopic.php?f=7&t=447).

Such a “Z offset” also allows to adjust your avatar’s position for devices you “sit on” and that play a sit animation without letting you adjust its offset (which, again, depends on what shape and shoes your avatar is wearing).

With the appearance of rigged meshes and the tiny or giant avatars, it also became very important to adjust the bounding box (X and Y sizes) for the avatars: a tiny avatar should not bump into obstacles like if its shoulders would be 45cm wide when they are only 15cm, and giant avatars should also have a possibility for their actual shoulder width to be taken into account. Granted, the current (non-SSB) servers do clamp the values sent by the viewers, but at least, there is some possible leeway (and it would be a good occasion to remove that clamping, or at least to allow for a wider range of values).

Being unable to adjust our avatar body size in SSB regions is a MAJOR regression. Please, provide a way to do it !!!

If you only use the SL Viewer, you may not know about the Z-Offset. But, you have seen the reason for it with shoes. When one puts on various shoes they may appear to float above or sink into the floor/ground. This floating/sinking is caused by a combination of how the shoes fit and the size of your avatar.

Tiny and giant avatars run into the same floating/sinking problems because of the extreme avatar sizes.

First Fix

Henri Beauchamp filed this JIRA item 2/24. March 1, Nyx added a new parameter to the shape ‘wearable’.

The added parameter doesn’t really fix the problem. Both Henri and Ansariel Hiller explain why in the JIRA. Ansariel’s explanation:

Thanks for your effort Nyx, but as others already mentioned before this is not quite the needed solution. Although it is a nice idea to couple this setting with a wearable parameter that is a great idea for specific outfits, this doesn’t work out in the normal usecase. Since that doesn’t seem to be quite clear, let me give you an example how this is feature is used (or at least I use it):

You are wearing an AO and the avatar offset is properly aligned with the ground (avatar is not floating). Now let’s say you do a groundsit. What often happens is, you suddenly end up stuck in the floor or whatever. Now you use the z-offset parameter to adjust your avatar offset.

Now try to imagine how you want to accomplish that with a wearable! You would have to go into edit appearance mode, which will unsit your avatar, and then mess with the offset slider, not knowing how it will affect the groundsit as you can’t see it live. So you save the outfit, which will trigger a needless rebake, and sit again, only to find out you’re still stuck in the ground and you have to edit your appearance again! This is completely impractical!

That being said, we need something like a server message “UpdateAvatarOffset” or so, that will instantly change the avatar offset without rebakes or having to change your appearance.

Elsewhere Henri describes how the current Third Party Viewers with Z-Offset are handled by the current servers:

The Z-offset is not transmitted to the server by the viewers implementing it: what is transmitted is the sum of the Z-offset (which can also be negative) and the avatar height as calculated from the shoes and shape visual parameters. This causes the server to think that the avatar is either taller or smaller while its shape and shoes didn’t change, but which also causes the animations to be played at a higher or lower level above the floor (the server can auto-correct properly standing animations for any worn shape or shoes, but of course this auto-correction algorithm fails for sitting, kneeling, laying, crouching, crawling anims since in those the feet to hip length doesn’t count for the same fraction as in standing anims).

In short, the viewer transmits to the server what it computed to be the proper “avatar height” for the animation to be correctly leveled with the floor; the server then adopts this new height, applies its own auto-correction (the one that was designed for standing anims) and relays the info to all viewers, making the avatar appear at the proper level for everyone around.

Part of the problem with Nyx’s fix is that it breaks most previous animations, well not really breaks, just fails to work with them. The server fix proposed by the Lab doesn’t really handle the user cases being presented by users.

For now the problem is under discussion at the Lab. There is a problem with getting animations and various size avatars to work correctly. Solving it may not be simple. Users making stuff for Second Life deal with it constantly. Getting vehicles, airplanes, boats, furniture, and other stuff to work with multiple size avatars is a pain.

The TPV’s added Z-Offset controls as an easy, quick fix for users. I think of it as more of a quick fix to get photos to look good. I can see where the Lindens might consider a Z-Offset as another control complicating SL and want to find a more elegant solution. I suppose it is possible. But, I am not at all sure there is a solution that will work without breaking legacy stuff.

Whatever, we will here more about this over the next few weeks. If you are interested in the solution visit SUN-38 and click WATCH. Let me know if you can or cannot see the SUN JIRA items.

Leave a Reply

Your email address will not be published. Required fields are marked *