# Animesh

> Animated mesh objects: rigged mesh that plays skeletal animations without an avatar.

Animesh is rigged mesh that has its own skeleton, so an object can play avatar-style animations by itself. Pets, NPCs, creatures and moving decor are typical uses.

It is not an avatar: there is no agent behind it. The object must be rigged mesh with the Animated Mesh option enabled in the build tools, and a script in the object starts and stops animations from the object's own inventory.

No permission is needed, because the script animates its own object rather than an avatar.

## Concepts

- An animesh object [plays animations](/functions/llStartObjectAnimation/) from its own inventory
  - Animations are referred to by inventory name or asset key
  - Several can run at once and blend by priority, as they do on avatars
  - [Stop one](/functions/llStopObjectAnimation/) by name, or [list what is playing](/functions/llGetObjectAnimationNames/)
- Animesh moves like any other object
  - For walking creatures, [keyframed motion](/functions/llSetKeyframedMotion/) or [pathfinding characters](/functions/llCreateCharacter/) are the usual choices
  - Start and stop animations to match the motion, for example when a character [starts](/events/moving_start/) or [stops](/events/moving_end/) moving, or on a [path update](/events/path_update/)
- Appearance works like other mesh
  - Faces take [textures and materials](/features/textures/)
  - Attachments can also be animesh; their animations play on the attachment, not on the [wearer](/features/avatar/)

## Functions and events

- `void` [`llStartObjectAnimation`](/functions/llStartObjectAnimation/) `(string anim)`
- `void` [`llStopObjectAnimation`](/functions/llStopObjectAnimation/) `(string anim)`
- `list` [`llGetObjectAnimationNames`](/functions/llGetObjectAnimationNames/) `()`

## [Move and steer](/features/pathfinding/)

Walk a character to a point with [`llNavigateTo`](/functions/llNavigateTo/), or play back a fixed route with [keyframed motion](/functions/llSetKeyframedMotion/). See also [movement](/features/movement/).

## [Animesh User Guide](https://wiki.secondlife.com/wiki/Animesh_User_Guide)

The Second Life Wiki user guide to animated mesh, archived locally.

## Scripting Details

- `void` [`llStartObjectAnimation`](/functions/llStartObjectAnimation/) `(string anim)`: Starts the specified animation anim (inventory or built-in) on the rigged mesh object associated with the current script.
- `void` [`llStopObjectAnimation`](/functions/llStopObjectAnimation/) `(string anim)`: Stops the specified animation anim (inventory, built-in, or UUID) on the rigged mesh object associated with the current script.
- `list` [`llGetObjectAnimationNames`](/functions/llGetObjectAnimationNames/) `()`: Returns a list of strings representing the names or UUIDs of all active animations currently playing on the object.
- `void` [`llSetKeyframedMotion`](/functions/llSetKeyframedMotion/) `(list keyframes, list options)`: Smoothly moves a non-physical object between the positions, orientations, and times specified in the keyframes list, configured via options. Collisions with keyframed objects are ignored. An empty keyframes list terminates the motion.
- `void` [`llCreateCharacter`](/functions/llCreateCharacter/) `(list options)`: Converts the linkset containing the script into a pathfinding character entity (required to use pathfinding functions) using the specified options.
- `void` [`llNavigateTo`](/functions/llNavigateTo/) `(vector pos, list options)`: Directs a pathfinding character to navigate to the position pos (located in the current or adjacent regions) using the parameters specified in options.
- `event` [`moving_start`](/events/moving_start/) `()`: Triggered whenever the physical or moving object containing the script starts moving.
- `event` [`moving_end`](/events/moving_end/) `()`: Triggered whenever the physical or moving object containing the script stops moving.
- `event` [`path_update`](/events/path_update/) `(integer type, list reserved)`: Triggered to inform the script of changes or failures in the pathfinding character's status.

## Related

See also: [Object Animation](/categories/object_animation/), [Movement](/features/movement/), [Pathfinding](/features/pathfinding/), [Textures & Materials](/features/textures/), [Avatars](/features/avatar/), [Animesh User Guide (Second Life Wiki)](https://wiki.secondlife.com/wiki/Animesh_User_Guide)

## Related features

- [Avatars](/features/avatar/)
- [Movement](/features/movement/)
- [Pathfinding](/features/pathfinding/)

## Categories

- [Object Animation](/categories/object_animation/)

---

From lsl.dev: https://lsl.dev/features/animesh/
