Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

New Behavior of llStartAnimation/llStopAnimation in the voice client

Darien Caldwell
Registered User
Join date: 12 Oct 2006
Posts: 3,127
08-07-2007 09:09
With the old client, you could stop and then start a looped animation without any noticeable break in the motion, the animation would continue on fluidly. Now with the Voice Client, if you stop the animation, and restart, the looped motion is restarted immediately. I did not see anything in the release notes about any changes to the animation system. Did they fix a bug, or introduce a new bug? I will post an example later tonight, but in short doing something like this pseudo code below produces two different behaviors depending on which client you have:

timer()
{
llStopAnimation("anim";);

// maybe do something quickly here

llStartAnimation("anim";);
}

Has anyone else noticed this?
_____________________
Ravanne Sullivan
Pole Dancer Extraordinair
Join date: 10 Dec 2005
Posts: 674
08-07-2007 10:35
I don't believe this is directly related to the client version. I see this same behaviour when lag is high and when the assest server is overloaded. The difference between clinets you are seeing is probably more because of increased overhead to your local client caused by the voice.
_____________________
Ravanne's Dance Poles and Animations

Available at my Superstore and Showroom on Insula de Somni
http://slurl.com/secondlife/Insula de Somni/94/194/27/
Darien Caldwell
Registered User
Join date: 12 Oct 2006
Posts: 3,127
08-07-2007 12:28
No, The difference is very distinct, and it's not just me, many customers are reporting the same thing. I'll have to get a valid demonstration posted perhaps to show the issue, but I'm at RL work at the moment. I can dual box and see the difference realtime, (one computer with voice, one without) it's not lag at all.
_____________________
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
08-07-2007 12:38
The old behavior was IMO wrong. It would poll the playing-animations-list every TimePeriod and only transmit net changes in the list; meaning if you wanted to restart an animation, you would have to stop the animation and sleep the script for TimePeriod and then restart the animation. The new behavior, if I understand it properly, fixes this.

The way to get around this fix is to not stop the animation if you don't need to.

CODE

string anim_old;
string anim_new;

default
{
timer()
{
if(anim_old != anim_new)
llStopAnimation(anim_old);

// maybe do something quickly here

if(anim_old != anim_new)//this check may not be strictly needed
llStartAnimation(anim_old = anim_new);
}
}
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river.
- Cyril Connolly

Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence.
- James Nachtwey
Darien Caldwell
Registered User
Join date: 12 Oct 2006
Posts: 3,127
08-07-2007 14:56
Yes, I tend to agree Strife. It makes more sense that stop actually stops the animation. I just wanted to find out if this was an intended change or not, as it was not mentioned in the release notes. I've already determined how to fix the particular issue I was having (precisely as you describe). I think it would be good to know if this is going to be the new behavior or if it will revert back later.

Of course on second thought I realize I'm probably asking way to much of LL, nevermind. But at least make others aware there's a difference now! :p
_____________________