LlSetTextureAnim
From Second Life Wiki
| LSL Portal | | | Functions | | | Events | | | Types | | | Operators | | | Constants | | | Flow Control | | | Script Library | | | Tutorials |
Function: llSetTextureAnim( integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate );
| 211 | Function ID |
| 0.0 | Delay |
| 10.0 | Energy |
Animate the texture on the specified face/faces by setting the texture scale and offset
| • integer | mode | – | mask of Mode flags | |
| • integer | face | – | face number or ALL_SIDES | |
| • integer | sizex | – | horizontal frames (ignored for ROTATE and SCALE) | |
| • integer | sizey | – | vertical frames (ignored for ROTATE and SCALE) | |
| • float | start | – | Start position/frame number (or radians for ROTATE) | |
| • float | length | – | number of frames to display (or radians for ROTATE) | |
| • float | rate | – | frames per second (must not be zero) |
start supports negative indexes.
If face is ALL_SIDES then the function works on all sides.
Frames are numbered from left to right, top to bottom, starting at 0.
If rate is negative, has the same effect as using the REVERSE flag.
| Modes | Description | |
|---|---|---|
| ANIM_ON | 0x01 | Texture animation is on. |
| LOOP | 0x02 | Loop the texture animation. |
| REVERSE | 0x04 | Play animation in reverse direction. |
| PING_PONG | 0x08 | Play animation going forwards, then backwards. |
| SMOOTH | 0x10 | Slide in the X direction, instead of playing separate frames. In both SCALE and ROTATE modes, causes smooth transitions. |
| ROTATE | 0x20 | Animate texture rotation. Does not work with SCALE |
| SCALE | 0x40 | Animate the texture scale. Does not work with ROTATE |
Caveats
- The function silently fails if its face value indicates a face that does not exist
- You can only have one texture animation on a prim
- Calling llSetTextureAnim more than once on a prim will reset it.
- You cannot combine ROTATE and SCALE
- sizex & sizey are both limited to a range of 0 to 255
Examples
This slides a texture smoothly and loops it when it gets to the end.
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, 1);
This slides a texture smoothly in the opposite direction
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, -1);
This divides a texture into 64 "cells", 8 across, and 8 down, and flips through them, left to right, top to bottom. This is useful for cell animation.
llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 8, 8, 0, 64, 6.4 );
This rotates a texture counter-clockwise at 2 revolutions per second. Change the last value to -2*TWO_PI to rotate clockwise.
llSetTextureAnim(ANIM_ON | SMOOTH | ROTATE | LOOP, ALL_SIDES,1,1,0, TWO_PI, 2*TWO_PI);
This scales a texture larger and smaller.
llSetTextureAnim(ANIM_ON | SMOOTH | SCALE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 1, 3, 2);
This turns off all texture animations
llSetTextureAnim(FALSE, ALL_SIDES, 0, 0, 0.0, 0.0, 1.0);

