Difference between revisions of "LlSetTextureAnim/ja"

From Second Life Wiki
Jump to navigation Jump to search
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}}{{#vardefine:spec|}}{{LSL_Function/face/ja|face}}{{LSL_Function/ja
{{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=横フレーム([[ROTATE/ja|ROTATE]][[SCALE/ja|SCALE]]では無効です)
|p3_type=integer|p3_name=sizex|p3_desc=横フレーム ( {{LSLG/ja|ROTATE}} {{LSLG/ja|SCALE}} では無視される)
|p4_type=integer|p4_name=sizey|p4_desc=縦フレーム([[ROTATE/ja|ROTATE]][[SCALE/ja|SCALE]]では無効です)
|p4_type=integer|p4_name=sizey|p4_desc=縦フレーム ( {{LSLG/ja|ROTATE}} {{LSLG/ja|SCALE}} では無視される)
|p5_type=float|p5_name=start|p5_desc=開始位置(フレーム)番号(または[[ROTATE/ja|ROTATE]]の角度)
|p5_type=float|p5_name=start|p5_desc=開始位置/フレーム番号 ( {{LSLG/ja|ROTATE}} ではラジアン)
|p6_type=float|p6_name=length|p6_desc=表示するフレーム数(または[[ROTATE/ja|ROTATE]]の角度)
|p6_type=float|p6_name=length|p6_desc=表示するフレーム数 ( {{LSLG/ja|ROTATE}} ではラジアン)
|p7_type=float|p7_name=rate|p7_desc=毎秒のフレーム数(0にすべきではありません)
|p7_type=float|p7_name=rate|p7_desc=毎秒のフレーム数(0 にすべきではありません)
|func_footnote=フレームは0から始まって、左から右、上から下に数えられます。<br/>'''rate'''がマイナス域の場合、[[REVERSE/ja|REVERSE]]フラグを使っているのと同じ効果があります。
|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=*1プリム上で1つのテクスチャアニメーションのみできます。
===フレーム===
**プリム上で一度以上llSetTextureAnimを呼び出すのはリセットになります。
フレームはテクスチャの中の 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 になっていると、それぞれのフレームはかわるがわる面の中心に表示されます。
*ROTATEとSCALEをあわせることはできません。
|caveats=*1 つのプリムに 1 つのテクスチャアニメーションのみ設定することができます。
*'''sizex'''と'''sizey'''は両方とも0から255の範囲を限度とします。
**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" {{!}} 説明
{{!}}-
{{!}}-
{{!}}[[ANIM_ON/ja|ANIM_ON]]
{{!}}{{LSLG/ja|ANIM_ON}}
{{!}}{{LSL Hex||1|chars=2}}
{{!}}{{LSL Hex/ja||1|chars=2}}
{{!}}テクスチャアニメーションはオンです。
{{!}}テクスチャのアニメーションは ON です。アニメーションを開始するときに設定し、停止するときに解除しなければなりません。
{{!}}-
{{!}}-
{{!}}[[LOOP/ja|LOOP]]
{{!}}{{LSLG/ja|LOOP}}
{{!}}{{LSL Hex||2|chars=2}}
{{!}}{{LSL Hex/ja||2|chars=2}}
{{!}}テクスチャアニメーションをループします。
{{!}}テクスチャのアニメーションをループさせます。
{{!}}-
{{!}}-
{{!}}[[REVERSE/ja|REVERSE]]
{{!}}{{LSLG/ja|REVERSE}}
{{!}}{{LSL Hex||4|chars=2}}
{{!}}{{LSL Hex/ja||4|chars=2}}
{{!}}逆方向でアニメーションを再生します。
{{!}}アニメーションを逆順で再生します。
{{!}}-
{{!}}-
{{!}}[[PING_PONG/ja|PING_PONG]]
{{!}}{{LSLG/ja|PING_PONG}}
{{!}}{{LSL Hex||8|chars=2}}
{{!}}{{LSL Hex/ja||8|chars=2}}
{{!}}後ろから前にアニメーションを再生します。
{{!}}アニメーションを順番に再生し、そのあとで逆順に再生します。
{{!}}-
{{!}}-
{{!}}[[SMOOTH/ja|SMOOTH]]
{{!}}{{LSLG/ja|SMOOTH}}
{{!}}{{LSL Hex||16|chars=2}}
{{!}}{{LSL Hex/ja||16|chars=2}}
{{!}}フレーム分割再生の変わりに、X方向にずらします。<br/>[[SCALE/ja|SCALE]][[ROTATE/ja|ROTATE]]の両方のモードで滑らかな変化を起こします。
{{!}}それぞれのフレームを再生するのではなく、X 方向にスライドさせます。{{LSLG/ja|SCALE}} {{LSLG/ja|ROTATE}} のモードで、スムーズな切り替えができます。
{{!}}-
{{!}}-
{{!}}[[ROTATE/ja|ROTATE]]
{{!}}{{LSLG/ja|ROTATE}}
{{!}}{{LSL Hex||32|chars=2}}
{{!}}{{LSL Hex/ja||32|chars=2}}
{{!}}テクスチャの回転アニメーション。<br>[[SCALE/ja|SCALE]]と同時には動作しません。
{{!}}テクスチャを回転させます。<br>{{LSLG/ja|SCALE}} と併用できません。
{{!}}-
{{!}}-
{{!}}[[SCALE/ja|SCALE]]
{{!}}{{LSLG/ja|SCALE}}
{{!}}{{LSL Hex||64|chars=2}}
{{!}}{{LSL Hex/ja||64|chars=2}}
{{!}}テクスチャの寸法アニメーション。<br>[[SCALE/ja|SCALE]]と同時には動作しません。
{{!}}テクスチャを拡大させます。<br>{{LSLG/ja|ROTATE}} と併用できません。
{{!}}}
{{!}}}
|examples=
|examples=
これはテクスチャを滑らかにずらし、終端についたときに繰り返します。
これはテクスチャを滑らかにずらし、終端についたときに繰り返します。
<lsl>
<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);
</lsl>


これは反対方向にテクスチャを滑らかにずらします。
これは反対方向にテクスチャを滑らかにずらします。
<lsl>
<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);
</lsl>


横8縦8の64セルにテクスチャを分割し、左から右、上から下に通して反転させます。セルアニメーションで使い勝手がいいです。
横8縦8の64セルにテクスチャを分割し、左から右、上から下に通して反転させます。セルアニメーションで使い勝手がいいです。
<lsl>
<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 );
</lsl>


これは毎秒2回、半時計周りにテクスチャを回転します。最後の値は-2*TWO_PIの時計周り回転に変わります。
これは毎秒2回、半時計周りにテクスチャを回転します。最後の値は-2*TWO_PIの時計周り回転に変わります。
<lsl>
<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);
</lsl>


これはテクスチャを拡大縮小して変形します。
これはテクスチャを拡大縮小して変形します。
<lsl>
<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);
 
</lsl>
これはループ再生しているアニメーションを特定のフレームで停止させたり開始させたりします。
<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=
|permission
テクスチャアニメーションはプリムのプロパティです (例えば、アニメーションを開始させてからスクリプトを抜くことができます。いずれにせよプリムはその設定を覚えています)。しかし、2009 年 1 月時点ではまだ、テクスチャアニメーションは Shift ドラッグによってコピーされるとその設定が消えてしまうプリムプロパティとなっています。最初にこの問題が {{Jira|VWR-640}} でもちあがり、[[#SVC-3925|SVC-3925]] で分離独立して議論されています。
|negative_index
 
早くざっくりと 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 09:32, 24 December 2015

要約

関数: llSetTextureAnim( integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate );

テクスチャの大きさとオフセットを設定して、指定した面のテクスチャをアニメーションさせます。

• integer mode モードフラグのマスク
• integer face 番号もしくは ALL_SIDES
• integer sizex 横フレーム ( ROTATESCALE では無視される)
• integer sizey 縦フレーム ( ROTATESCALE では無視される)
• float start 開始位置/フレーム番号 ( ROTATE ではラジアン)
• float length 表示するフレーム数 ( ROTATE ではラジアン)
• float rate 毎秒のフレーム数(0 にすべきではありません)

start には 負のインデックス を使用できます。 faceALL_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 方向にスライドさせます。SCALEROTATE のモードで、スムーズな切り替えができます。
ROTATE 0x20 テクスチャを回転させます。
SCALE と併用できません。
SCALE 0x40 テクスチャを拡大させます。
ROTATE と併用できません。

警告

  • start が正常なインデックス範囲を外れていても、スクリプトはエラー表示を出さずに処理を続けます。
  • face が存在しない面を指している場合、関数はエラーを出さずに復帰します。
  • 1 つのプリムに 1 つのテクスチャアニメーションのみ設定することができます。
    • llSetTextureAnim を 2 回以上呼び出すと、プリムは既にあるアニメーションをリセットします。
  • ROTATE フラグと SCALE フラグを併用することはできません。
  • sizexsizey は両方とも 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 月現在で有効なリンクです)

関連項目

特記事項

All Issues

~ Search JIRA for related Issues
   Some persistent prim properties lost when duplicated
   Texture Animation is not copied (llSetTextureAnim)
   Texture animations ignore repeats per face

脚注

  1. ^ しかし、rate がマイナスで REVERSE フラグが使用されていると、効果が打ち消されます。

Signature

function void llSetTextureAnim( integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。