LlSetTextureAnim/ja
From Second Life Wiki
関数: llSetTextureAnim( integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate );
指定されたテクスチャの寸法とオフセットの設定で、面(複数面)上のテクスチャを動かします。
| • integer | mode | – | モードフラグのマスク | |
| • integer | face | – | 面の番号あるいはALL_SIDES | |
| • integer | sizex | – | 横フレーム(ROTATEと SCALEでは無効です) | |
| • integer | sizey | – | 縦フレーム(ROTATEと SCALEでは無効です) | |
| • float | start | – | 開始位置(フレーム)番号(またはROTATEの角度) | |
| • float | length | – | 表示するフレーム数(またはROTATEの角度) | |
| • float | rate | – | 毎秒のフレーム数(0にすべきではありません) |
startはマイナス域の番号はサポートされています。
もしfaceの値がALL_SIDESなら、関数は全側面に作用します。
フレームは0から始まって、左から右、上から下に数えられます。
rateがマイナス域の場合、REVERSEフラグを使っているのと同じ効果があります。
| モード | 解説 | |
|---|---|---|
| ANIM_ON | 0x01 | テクスチャアニメーションはオンです。 |
| LOOP | 0x02 | テクスチャアニメーションをループします。 |
| REVERSE | 0x04 | 逆方向でアニメーションを再生します。 |
| PING_PONG | 0x08 | 後ろから前にアニメーションを再生します。 |
| SMOOTH | 0x10 | フレーム分割再生の変わりに、X方向にずらします。 SCALEとROTATEの両方のモードで滑らかな変化を起こします。 |
| ROTATE | 0x20 | テクスチャの回転アニメーション。 SCALEと同時には動作しません。 |
| SCALE | 0x40 | テクスチャの寸法アニメーション。 SCALEと同時には動作しません。 |
警告
- 関数はfaceの値が示す面が存在しない場合、 エラーを返しません
- 1プリム上で1つのテクスチャアニメーションのみできます。
- プリム上で一度以上llSetTextureAnimを呼び出すのはリセットになります。
- ROTATEとSCALEをあわせることはできません。
- sizexとsizeyは両方とも0から255の範囲を限度とします。
例
これはテクスチャを滑らかにずらし、終端についたときに繰り返します。
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, 1);
これは反対方向にテクスチャを滑らかにずらします。
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, -1);
横8縦8の64セルにテクスチャを分割し、左から右、上から下に通して反転させます。セルアニメーションで使い勝手がいいです。
llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 8, 8, 0, 64, 6.4 );
これは毎秒2回、半時計周りにテクスチャを回転します。最後の値は-2*TWO_PIの時計周り回転に変わります。
llSetTextureAnim(ANIM_ON | SMOOTH | ROTATE | LOOP, ALL_SIDES,1,1,0, TWO_PI, 2*TWO_PI);
これはテクスチャを拡大縮小して変形します。
llSetTextureAnim(ANIM_ON | SMOOTH | SCALE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 1, 3, 2);

