[opensource-dev] Tutorial needed on TPV viewer-side AOs

Kadah kadah.coba at gmail.com
Fri Apr 13 16:05:05 PDT 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



On 4/13/2012 1:10 PM, Henri Beauchamp wrote:
> Again, the viewer side AOs are in fact mimicking exactly what
> scripted AOs (and most specifically Francis Chung's "Franimation
> Overrider") do.

I believe FS's was designed to mimic the ZHAO II hud, it even uses its
config notecards. "Franimation Overrider" is a new one to me.

> The scripted AOs got two main flaws (which are in fact the result
> of the same lack in the scripted event support): they are often too
> slow to change the overriding animation in time to avoid seeing
> the overridden animation playing for a second or so before the
> overriding anim is started.

I've only seen that behavior with clientside AOs. I figured it was due
to the latency of the viewer having to respond to a simulator event
then send an override.


> Another, much worst issue with viewer side AOs, is that, like I 
> explained in my previous message in this thread, they lack a way
> to be disabled automatically by scripts. Let me explain this issue
> more in details: while AOs are great, they can be a nuisance when
> interacting with certain scripted objects which want to play their
> own animation on your avatar. This is especially the case for
> "seats" (in the largest extent of the term: i.e. any object you
> "sit" your avatar onto) that usually provide their own sit anim;
> these objects stop the default sit anim (llStopAnimation("sit")) 
> then start their own anim. If your AO is configured to override
> the default sit anim, then the overriding anim will also override
> the scripted seat object's anim. In order to solve this problem,
> the Lockmeister protocol 
> (https://wiki.secondlife.com/wiki/LSL_Protocol/LockMeister_System#Special_Commands)
>
> 
was extended with "bootoff" and "booton" commands ("boot", because
> the first AOs were in fact used in scripted shoes/boots) allowing
> to (respectively) turn off and turn back on the compatible AOs 
> automatically. The seat then just has to send a "bootoff" commmand
> when your avatar sits down on it, then a "booton" command when the
> avatar stands up, and your AO gets automatically turned off and
> back on so that the seat's anim is not overridden.
> 
> Note that there are other cases than just seats (for example when 
> wearing two AOs or, for BDSM folks, when scripted cuffs are used 
> and must be able to override an AO in some cases and especially 
> when the avatar is fully chained/bound).

Unlike LSL, the viewer would be able to tell when something else is
trying to animate the avatar. I don't know if the FS AO handles this
(I don't actually use the viewer, and I prefer the use flow of an
attachable AO), but it is a possibility where it is not for a scripted
one.

> Also, not all seats/scripted-devices-with-built-in-anims use
> Lockmeister and this results in having to manually disable the AO
> in some cases.
Most don't.


> There is however a caveat to this apparently ideal solution: anim 
> states are currently hard-coded with the default anim UUIDs in the 
> viewers and a few code paths in the viewers check these to decide 
> whether to take some actions (this is true for AGENT_ANIM_WALK,
> for example: see in llvoavatar.cpp): this could cause a few
> glitches and would have to be checked/tested. A solution for these
> few hard-coded code paths/anim states would perhaps be for the
> server to send (play) both the default anim and the overriding anim
> in a row (and also to stop both in reaction to a
> llStopAnimation("walk")): as long as the overriding anim is played
> last and got the same or a higher anim priority, this would still
> work.

What about having the option to just not sending those play messages
for the default anims in the first place?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJPiLEhAAoJEIdLfPRu7qE2eCAIANIsQvZKRkBJV5yEnrXfHdcw
CZJ7qiTiaMaCe9Njn1K6ecyKaWhvRpkvQhCiaL+gb4V6qCoUmDATNTEclF5asIR7
LAg2sKkDaSMGlUwUAaKp9YsMUAaAp+D031nmu0mTVqOY9OPE27UmDgdnz08YW70a
ZxwnYMcExKFenFa6OQWZoNdetVsmPxwbGH5817dyVS1SPf5YXKLVXyji3zND1yJq
yrcxaWOSWvbVAiSsaq3+gXYQdtfd6iASRnhJln2XzMzeQyocHs7xNfT5jwE85URm
T2AkIlwRVdi7xKQV0tyiXivs1eWY0V2Ybs1ElY3m9tkdKo/+FvToUZxTQqrcFjE=
=JLaH
-----END PGP SIGNATURE-----


More information about the opensource-dev mailing list