Difference between revisions of "LlSetTextureAnim/ja"
Mako Nozaki (talk | contribs) m (Undo revision 849852 by Mako Nozaki (Talk)) |
m (<lsl></lsl> タグを <source lang="lsl2"></source> に置き換えました) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{LSL_Function/negative index/ja|true|start | {{Issues/SVC-3925}}{{Issues/SVC-1242}}{{Issues/VWR-4018}}{{LSL_Function/negative index/ja|true|start}}{{LSL_Function/face/ja|face}}{{LSL_Function/ja | ||
|func_id=211 | |func_id=211 | ||
|func_sleep=0.0 | |func_sleep=0.0 | ||
Line 7: | Line 7: | ||
|p1_type=integer|p1_name=mode|p1_desc=モードフラグのマスク | |p1_type=integer|p1_name=mode|p1_desc=モードフラグのマスク | ||
|p2_type=integer|p2_name=face | |p2_type=integer|p2_name=face | ||
|p3_type=integer|p3_name=sizex|p3_desc= | |p3_type=integer|p3_name=sizex|p3_desc=横フレーム ( {{LSLG/ja|ROTATE}} と{{LSLG/ja|SCALE}} では無視される) | ||
|p4_type=integer|p4_name=sizey|p4_desc= | |p4_type=integer|p4_name=sizey|p4_desc=縦フレーム ( {{LSLG/ja|ROTATE}} と{{LSLG/ja|SCALE}} では無視される) | ||
|p5_type=float|p5_name=start|p5_desc= | |p5_type=float|p5_name=start|p5_desc=開始位置/フレーム番号 ( {{LSLG/ja|ROTATE}} ではラジアン) | ||
|p6_type=float|p6_name=length|p6_desc= | |p6_type=float|p6_name=length|p6_desc=表示するフレーム数 ( {{LSLG/ja|ROTATE}} ではラジアン) | ||
|p7_type=float|p7_name=rate|p7_desc= | |p7_type=float|p7_name=rate|p7_desc=毎秒のフレーム数(0 にすべきではありません) | ||
|func_footnote= | |func_footnote=フレームは 0 から始まって、左から右、上から下に数えられます。<br/>'''rate''' がマイナス域の場合、 {{LSLG/ja|REVERSE}} フラグを使っているのと同じ効果があります。{{Footnote|しかし、'''rate''' がマイナスで {{LSLG/ja|REVERSE}} フラグが使用されていると、効果が打ち消されます。|しかし、'''rate''' がマイナスで REVERSE フラグが使用されていると、効果が打ち消されます。}} | ||
|func_desc= | |func_desc=テクスチャの大きさとオフセットを設定して、指定した面のテクスチャをアニメーションさせます。 | ||
|return_text | |return_text | ||
|spec | |spec= | ||
|caveats=* | ===フレーム=== | ||
** | フレームはテクスチャの中の sub-rectangles です。縦 2 ('''{{LSL Param|sizex}}''') 横 3 ('''{{LSL Param|sizey}}''') のフレームセットは、テクスチャ全体が 3 行 2 桁 の画像に切り分けられ、それぞれがフレームとなることを意味しています。llSetTextureAnim will animate across these 6 starting with the top left image and going across and down, optionally repeating. {{LSLG/ja|SMOOTH}} が設定されていると、フレームは次から次へとスムーズにスライドしていき、OFF になっていると、それぞれのフレームはかわるがわる面の中心に表示されます。 | ||
* | |caveats=*1 つのプリムに 1 つのテクスチャアニメーションのみ設定することができます。 | ||
*'''sizex'''と'''sizey''' | **llSetTextureAnim を 2 回以上呼び出すと、プリムは既にあるアニメーションをリセットします。 | ||
|constants={{{!}} class="sortable collapsible" {{Prettytable}} | *{{LSLG/ja|ROTATE}} フラグと {{LSLG/ja|SCALE}} フラグを併用することはできません。 | ||
*'''sizex''' と '''sizey''' は両方とも 0 ~ 255 に制限されています。 | |||
*llSetTextureAnim はオンのとき、 X 方向と Y 方向で 1 回ずつ繰り返し、回転とオフセットは 0 となっているテクスチャを表示します。 | |||
|constants={{{!}} class="sortable collapsible" {{Prettytable|style=margin-top:0;}} | |||
{{!}}-{{Hl2}} | {{!}}-{{Hl2}} | ||
! モード | ! モード | ||
! title="値" {{!}} | ! title="値" {{!}} | ||
! class="unsortable" {{!}} | ! class="unsortable" {{!}} 説明 | ||
{{!}}- | {{!}}- | ||
{{!}} | {{!}}{{LSLG/ja|ANIM_ON}} | ||
{{!}}{{LSL Hex||1|chars=2}} | {{!}}{{LSL Hex/ja||1|chars=2}} | ||
{{!}} | {{!}}テクスチャのアニメーションは ON です。アニメーションを開始するときに設定し、停止するときに解除しなければなりません。 | ||
{{!}}- | {{!}}- | ||
{{!}} | {{!}}{{LSLG/ja|LOOP}} | ||
{{!}}{{LSL Hex||2|chars=2}} | {{!}}{{LSL Hex/ja||2|chars=2}} | ||
{{!}} | {{!}}テクスチャのアニメーションをループさせます。 | ||
{{!}}- | {{!}}- | ||
{{!}} | {{!}}{{LSLG/ja|REVERSE}} | ||
{{!}}{{LSL Hex||4|chars=2}} | {{!}}{{LSL Hex/ja||4|chars=2}} | ||
{{!}} | {{!}}アニメーションを逆順で再生します。 | ||
{{!}}- | {{!}}- | ||
{{!}} | {{!}}{{LSLG/ja|PING_PONG}} | ||
{{!}}{{LSL Hex||8|chars=2}} | {{!}}{{LSL Hex/ja||8|chars=2}} | ||
{{!}} | {{!}}アニメーションを順番に再生し、そのあとで逆順に再生します。 | ||
{{!}}- | {{!}}- | ||
{{!}} | {{!}}{{LSLG/ja|SMOOTH}} | ||
{{!}}{{LSL Hex||16|chars=2}} | {{!}}{{LSL Hex/ja||16|chars=2}} | ||
{{!}} | {{!}}それぞれのフレームを再生するのではなく、X 方向にスライドさせます。{{LSLG/ja|SCALE}} と {{LSLG/ja|ROTATE}} のモードで、スムーズな切り替えができます。 | ||
{{!}}- | {{!}}- | ||
{{!}} | {{!}}{{LSLG/ja|ROTATE}} | ||
{{!}}{{LSL Hex||32|chars=2}} | {{!}}{{LSL Hex/ja||32|chars=2}} | ||
{{!}} | {{!}}テクスチャを回転させます。<br>{{LSLG/ja|SCALE}} と併用できません。 | ||
{{!}}- | {{!}}- | ||
{{!}} | {{!}}{{LSLG/ja|SCALE}} | ||
{{!}}{{LSL Hex||64|chars=2}} | {{!}}{{LSL Hex/ja||64|chars=2}} | ||
{{!}} | {{!}}テクスチャを拡大させます。<br>{{LSLG/ja|ROTATE}} と併用できません。 | ||
{{!}}} | {{!}}} | ||
|examples= | |examples= | ||
これはテクスチャを滑らかにずらし、終端についたときに繰り返します。 | これはテクスチャを滑らかにずらし、終端についたときに繰り返します。 | ||
< | <source lang="lsl2">llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, 1);</source> | ||
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, 1); | |||
</ | |||
これは反対方向にテクスチャを滑らかにずらします。 | これは反対方向にテクスチャを滑らかにずらします。 | ||
< | <source lang="lsl2">llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, -1);</source> | ||
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, -1); | |||
</ | |||
横8縦8の64セルにテクスチャを分割し、左から右、上から下に通して反転させます。セルアニメーションで使い勝手がいいです。 | 横8縦8の64セルにテクスチャを分割し、左から右、上から下に通して反転させます。セルアニメーションで使い勝手がいいです。 | ||
< | <source lang="lsl2">llSetTextureAnim(ANIM_ON | LOOP, ALL_SIDES, 8, 8, 0, 64, 6.4 );</source> | ||
llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 8, 8, 0, 64, 6.4 ); | |||
</ | |||
これは毎秒2回、半時計周りにテクスチャを回転します。最後の値は-2*TWO_PIの時計周り回転に変わります。 | これは毎秒2回、半時計周りにテクスチャを回転します。最後の値は-2*TWO_PIの時計周り回転に変わります。 | ||
< | <source lang="lsl2">llSetTextureAnim(ANIM_ON | SMOOTH | ROTATE | LOOP, ALL_SIDES,1,1,0, TWO_PI, 2*TWO_PI);</source> | ||
llSetTextureAnim(ANIM_ON | SMOOTH | ROTATE | LOOP, ALL_SIDES,1,1,0, TWO_PI, 2*TWO_PI); | |||
</ | |||
これはテクスチャを拡大縮小して変形します。 | これはテクスチャを拡大縮小して変形します。 | ||
< | <source lang="lsl2">llSetTextureAnim(ANIM_ON | SMOOTH | SCALE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 1, 3, 2);</source> | ||
llSetTextureAnim(ANIM_ON | SMOOTH | SCALE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 1, 3, 2); | |||
</ | これはループ再生しているアニメーションを特定のフレームで停止させたり開始させたりします。 | ||
<source lang="lsl2">integer ON; | |||
default | |||
{ | |||
touch_start(integer num) | |||
{ | |||
if (ON) | |||
{ | |||
llSetTextureAnim(ANIM_ON | LOOP, ALL_SIDES, 1, 5, 0, 0, 1); | |||
} | |||
else | |||
{ | |||
llSetTextureAnim(ANIM_ON | SMOOTH, ALL_SIDES, 1, 5, 5, 1, 1); | |||
} | |||
ON = !ON; | |||
} | |||
}</source> | |||
|helpers | |helpers | ||
|also_functions | |also_functions={{LSL DefineRow||{{LSLG/ja|llSetLinkTextureAnim}}}} | ||
|also_events | |also_events | ||
|also_articles | |also_articles | ||
|notes | |notes= | ||
| | テクスチャアニメーションはプリムのプロパティです (例えば、アニメーションを開始させてからスクリプトを抜くことができます。いずれにせよプリムはその設定を覚えています)。しかし、2009 年 1 月時点ではまだ、テクスチャアニメーションは Shift ドラッグによってコピーされるとその設定が消えてしまうプリムプロパティとなっています。最初にこの問題が {{Jira|VWR-640}} でもちあがり、[[#SVC-3925|SVC-3925]] で分離独立して議論されています。 | ||
早くざっくりと GIF をアニメーションテクスチャに変換するオンラインツールがこちらにあります。 http://www.peregrinesalon.com/anim/ (2009 年 1 月現在で有効なリンクです) | |||
|cat1=Media | |cat1=Media | ||
|cat2=Effects | |cat2=Effects | ||
|cat3=Texture | |cat3=Texture | ||
|cat4=Video | |cat4=Video | ||
|cat5 | |||
|cat6 | |||
}} | }} |
Latest revision as of 10:32, 24 December 2015
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: 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 フラグを使っているのと同じ効果があります。[1]
仕様
インデックス | 正 | 負 |
---|---|---|
先頭 | 0 | -length |
末尾 | length - 1 | -1 |
インデックス
- 正のインデックスは先頭から数えます。先頭の要素は 0、末尾の要素は (length - 1) のインデックスを持ちます。
- 負のインデックスは末尾から数えます。先頭の要素は -length、末尾の要素は -1 のインデックスを持ちます。
フレーム
フレームはテクスチャの中の sub-rectangles です。縦 2 (sizex) 横 3 (sizey) のフレームセットは、テクスチャ全体が 3 行 2 桁 の画像に切り分けられ、それぞれがフレームとなることを意味しています。llSetTextureAnim will animate across these 6 starting with the top left image and going across and down, optionally repeating. SMOOTH が設定されていると、フレームは次から次へとスムーズにスライドしていき、OFF になっていると、それぞれのフレームはかわるがわる面の中心に表示されます。
モード | 説明 | |
---|---|---|
ANIM_ON | 0x01 | テクスチャのアニメーションは ON です。アニメーションを開始するときに設定し、停止するときに解除しなければなりません。 |
LOOP | 0x02 | テクスチャのアニメーションをループさせます。 |
REVERSE | 0x04 | アニメーションを逆順で再生します。 |
PING_PONG | 0x08 | アニメーションを順番に再生し、そのあとで逆順に再生します。 |
SMOOTH | 0x10 | それぞれのフレームを再生するのではなく、X 方向にスライドさせます。SCALE と ROTATE のモードで、スムーズな切り替えができます。 |
ROTATE | 0x20 | テクスチャを回転させます。 SCALE と併用できません。 |
SCALE | 0x40 | テクスチャを拡大させます。 ROTATE と併用できません。 |
警告
- start が正常なインデックス範囲を外れていても、スクリプトはエラー表示を出さずに処理を続けます。
- face が存在しない面を指している場合、関数はエラーを出さずに復帰します。
- 1 つのプリムに 1 つのテクスチャアニメーションのみ設定することができます。
- llSetTextureAnim を 2 回以上呼び出すと、プリムは既にあるアニメーションをリセットします。
- ROTATE フラグと SCALE フラグを併用することはできません。
- sizex と sizey は両方とも 0 ~ 255 に制限されています。
- llSetTextureAnim はオンのとき、 X 方向と Y 方向で 1 回ずつ繰り返し、回転とオフセットは 0 となっているテクスチャを表示します。
サンプル
これはテクスチャを滑らかにずらし、終端についたときに繰り返します。
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);
これはループ再生しているアニメーションを特定のフレームで停止させたり開始させたりします。
integer ON;
default
{
touch_start(integer num)
{
if (ON)
{
llSetTextureAnim(ANIM_ON | LOOP, ALL_SIDES, 1, 5, 0, 0, 1);
}
else
{
llSetTextureAnim(ANIM_ON | SMOOTH, ALL_SIDES, 1, 5, 5, 1, 1);
}
ON = !ON;
}
}
注意点
テクスチャアニメーションはプリムのプロパティです (例えば、アニメーションを開始させてからスクリプトを抜くことができます。いずれにせよプリムはその設定を覚えています)。しかし、2009 年 1 月時点ではまだ、テクスチャアニメーションは Shift ドラッグによってコピーされるとその設定が消えてしまうプリムプロパティとなっています。最初にこの問題が VWR-640 でもちあがり、SVC-3925 で分離独立して議論されています。
早くざっくりと GIF をアニメーションテクスチャに変換するオンラインツールがこちらにあります。 http://www.peregrinesalon.com/anim/ (2009 年 1 月現在で有効なリンクです)