Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Animation won't stop

Innula Zenovka
Registered User
Join date: 20 Jun 2007
Posts: 1,825
02-06-2010 07:52
This is driving me nuts.

I've got a 30 second looping priority 4 animation.

No matter what I do, when I get off the prim, the damn thing won't stop until it's finished its loop. I've tried everything I can think of, including explicitly stopping it when I stand up, calling llGetAnimationList when I stand up and looping through that, stopping everything, stopping it and briefly starting another animation when I stand up, clicking "stop animating my avatar" on the world menu....

The problem is that llGetAnimationList (and, indeed, the animation list in Emerald when I look at that -- though the problem happens with any viewer, not just Emerald) thinks the animation has stopped. But the display in Advanced-Character-Animation Info (and what I, and others, can see happening, of course) indicates that it's done nothing of the sort.

I am confident it's not a scripting problem. Any suggestions about why it's happening and how the animator might alter it to stop this happening?
Autumn Palen
Registered Lurker
Join date: 24 Feb 2007
Posts: 111
02-06-2010 10:29
From: Innula Zenovka
This is driving me nuts.

I've got a 30 second looping priority 4 animation.

No matter what I do, when I get off the prim, the damn thing won't stop until it's finished its loop. I've tried everything I can think of, including explicitly stopping it when I stand up, calling llGetAnimationList when I stand up and looping through that, stopping everything, stopping it and briefly starting another animation when I stand up, clicking "stop animating my avatar" on the world menu....

The problem is that llGetAnimationList (and, indeed, the animation list in Emerald when I look at that -- though the problem happens with any viewer, not just Emerald) thinks the animation has stopped. But the display in Advanced-Character-Animation Info (and what I, and others, can see happening, of course) indicates that it's done nothing of the sort.

I am confident it's not a scripting problem. Any suggestions about why it's happening and how the animator might alter it to stop this happening?


I apologize in advance for probably not being able to offer much in solution to this problem :p

My gut feeling is it's probably not the animation itself. But to rule that out I'd test it under a few different conditions to be sure: playing and stopping the animation straight from your inventory to see if it stops as expected, then getting a blank MLPV2, putting the animation in there and seeing if it stops correctly when you stop from the menu.

If both of those work as expected, then it would likely point to *something* in the nPose not releasing that animation correctly. You could also try starting with a fresh nPose to see if it still happens, and even trying the nPose on a different sim just to be exhaustive in figuring this problem out.

I know this doesn't help much, and hopefully someone else might chime in with an idea. If it turns out that the animation does stop when played straight from inventory and in an MLP set up, then I'm sure either Nandana or the nPose group would be able to help figure out what is going on.
Innula Zenovka
Registered User
Join date: 20 Jun 2007
Posts: 1,825
02-06-2010 12:28
Thanks, Autumn. But I'm sure it's not the script; that occurred to me, too, but I get exactly the same result when I use this
CODE

string anim;
key av;
default
{
state_entry()
{
llSitTarget( < 0.0,0.0,1.0 > ,ZERO_ROTATION);
anim = llGetInventoryName(INVENTORY_ANIMATION,0);
}

changed(integer change)
{
if(change&CHANGED_LINK){
if(llAvatarOnSitTarget()!=NULL_KEY){
av=llAvatarOnSitTarget();
llRequestPermissions(av,PERMISSION_TRIGGER_ANIMATION);
}
else{
if(llGetPermissions()&PERMISSION_TRIGGER_ANIMATION){
// llStopAnimation(anim);
list temp = llGetAnimationList(av);
integer i;
integer max = llGetListLength(temp);
for(i=0; i< max;++i){
llStopAnimation(llList2Key(temp,i));
llOwnerSay("stopping "+llList2String(temp,i));
}
llStartAnimation("stand");
}
}
}

else if (change&CHANGED_INVENTORY){
llResetScript();
}
}

run_time_permissions(integer perm){
if(perm&PERMISSION_TRIGGER_ANIMATION){
llStopAnimation("sit");
llStartAnimation(anim);
}
}
}
I've also been through the nPose slave script with a fine tooth comb, sticking debug messages everywhere, and everything is happening where and when it should do.
Autumn Palen
Registered Lurker
Join date: 24 Feb 2007
Posts: 111
02-06-2010 12:44
That's odd :/ I honestly can't think of anything when the animation was created that would make it finish its loop even after stopping it via your script.

And I just tried your script in a prim with one of my old practice animations I uploaded (about 22 secs, looped, priority 4), and the animation stopped as expected when I hit "Stand Up."

Indeed frustrating and I wish I could help. I will, though, ask around to some of my animator friends in-world if they have any further insight.

ETA: I just asked the MLPV2 group in-world too, to see if any of the animators there had some ideas, and pointed them to this thread.

ETAII: I asked in the group, but no one could identify any specific reason why that one animation is doing that other than suggesting a fluke/defect with that anim, and to talk to the animation creator to see if they could fix it for you.
Twisted Pharaoh
if ("hello") {"hey hey";}
Join date: 24 Mar 2007
Posts: 315
02-07-2010 04:02
Innula you need to store the av key and when they sit off you stop animation with that key.
_____________________
Autumn Palen
Registered Lurker
Join date: 24 Feb 2007
Posts: 111
02-07-2010 08:23
One last thought about this animation problem :)

What happens when you play/stop the animation right out of your inventory with Play in World? If the animation still looks like it going towards the end of the loop when you do that, then the animator probably set a really high Ease out time for the animation when she/he uploaded it to SL, which you could ask them to change if they will upload a new one for you.

If the animation does stop fairly quick when playing it straight from your inventory, then, hm, square one I guess :/
Innula Zenovka
Registered User
Join date: 20 Jun 2007
Posts: 1,825
02-07-2010 11:36
Thanks, I'll check that and ask her about the Ease out time. It's for a joint project we're working on, so we're both anxious to get it right and to avoid such problems in the future.

ETA-- Yeah, it is a problem with the animation. She's apparently stitched several together in a sequence and looped that, and something must have gone wrong at some point. Anyway, she's taking it to bits and trying to figure that out.

Thanks so much for your help. Now we know what we're looking for, at least.
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
02-07-2010 17:55
possibly that problem where the last anim in the list won't go away because the viewer doesnt get an update to stop it?
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -
Autumn Palen
Registered Lurker
Join date: 24 Feb 2007
Posts: 111
02-07-2010 18:06
Yay! I am so glad you figured out what it was :)