Skip to content
lsl.devlsl.devLSL Dev

llGetObjectAnimationNames

function
Function syntax
list llGetObjectAnimationNames();
Returns
list
Energy
10

Returns a list of strings representing the names or UUIDs of all active animations currently playing on the object.

Returns a list of names of animations playing in the current object

How to use
list result = llGetObjectAnimationNames();
Example 1
stop_all_animations()
{
list curr_anims = llGetObjectAnimationNames();
llSay(0,"stopping all, curr_anims are " + (string) curr_anims);
integer length = llGetListLength(curr_anims);
15 collapsed lines
integer index = 0;
while (index < length)
{
string anim = llList2String(curr_anims, index);
llSay(0, "Stopping " + anim);
llStopObjectAnimation(anim);
// This check isn't really needed, just included to demonstrate is_animation_running()
if (is_animation_running(anim))
{
llSay(0, "ERROR - failed to stop " + anim + "!");
}
++index;
}
}
integer is_animation_running(string anim)
{
list curr_anims = llGetObjectAnimationNames();
return ~llListFindList(curr_anims, (list)anim);
}
26 collapsed lines
default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
}
touch_start(integer total_number)
{
// Assumes there is an animation with this name in the current object.
string anim_name = "MyFancyWalk";
llSay(0, "Touched.");
llStartObjectAnimation(anim_name);
if (is_animation_running(anim_name))
{
llSay(0,anim_name + " is playing, which is good");
}
llSleep(5.0);
stop_all_animations();
if (is_animation_running(anim_name))
{
llSay(0,anim_name + " is playing, which is an error!");
}
}
}

The typical uses for this function are to stop all currently playing animations, or to check whether a particular animation is currently playing.

This function allows you to see all currently playing animations in this object. Normally the returned values will be the names of animations within the object’s inventory. In the unusual case that the animation can’t be found, the key for the animation will be returned instead (as a string). In either case, the result can be sent to llStopObjectAnimation

Animated objects work by associating a skeleton with a linkset containing one or more rigged mesh primitives. When animations are played by a script in any of the prims in the linkset, the skeleton will animate and any rigged meshes in the linkset will move accordingly. A script running in any prim of the linkset can start, stop or query animations using the new commands. The typical usage of these functions is to do all object animation scripting in the root prim of the linkset; in this scenario, the animations and scripts would all be part of the inventory of this prim, and so of the object as a whole. However, if scripts and animations are present in multiple prims of a linkset, it is important to understand that animations are started, stopped and tracked independently in each prim.

Original wiki source

Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.