ここまでの2行をまとめると、下図ようになる(図中の数字は例であり、実際には、その時点や状態に応じた具体的な数値が返ってくる)。
そして、3行目では、テクスチャアニメーションを定義している。テクスチャアニメーションのスピードを決定する「rate」に「speed*0.5」が指定されている。これにより、オブジェクトの移動速度が増大すると、ユーザー定義関数「speed」の値が増大し、テクスチャが速く回転するようになる。
以上のように、「timer ( )イベントを0.2秒ごとに繰り返す」ことは、「0.2秒ごとに速度ベクトルを計測し、テクスチャのスピードに反映させる」ことを意味している。
ポイントは、次の2点だ。
- 速度ベクトルを問い合わせる「llGetVel( )」
- 速度ベクトルを数値(絶対値)で返す「llVecMag」
代入演算子
ここで、先ほど少し説明した代入演算子には、他にどのようなものがあるか見てみよう。今度は日本語版LSL Wikiの「演算子」の説明を見てみよう。下図の赤枠部分が該当する。
代入の考え方を適用すると「x = x + 1」という式も成り立つ。ただし、通常の考えでは混乱する。「うん?左辺がxで、右辺がx +1だと式が成立しない!」となる。しかし、この「=」はイコールではなく、代入なのだ。むしろ「x ← x + 1」というイメージだ。「今までのxにx + 1を代入しなさい」、つまり、「xの値を1増やしなさい」ということだ。
この「x = x + 1」という式は、もっと簡単に書いて「x += 1」と表すことができる。「 += 」は上図赤枠の代入演算子でもある。
さて、ユーザー定義関数や代入演算子など盛りだくさんだったが、テクスチャアニメーションの応用が終了した。次はいよいよ、「パーティクル」(粒子)に移ろう。これは楽しくなりそうだ。それでは、次回もお楽しみに
大槻透世二サイバーアドベンチャー(株)
代表取締役社長/CEO
デジタルハリウッド大学院
次世代インターフェース研究室 研究員
Second Life研究室 研究員/プロデューサー
Linden社推薦 Second Lifeセミナー講師
東北大学心理学専攻卒業。1年間のLA留学を経て、ソリッドレイ研究所でバーチャルリアリティのシステムインテグレーション、立体映像システム構築、HMDシステム構築などを経験。IT系コンサルティング会社を経て、デジタルハリウッド大学大学院コンテンツマネジメント修士課程修了(MCA)。その後、Linden Lab本社にてSecond Lifeカリキュラムのトレーニングを受ける。現在デジタルハリウッドにて「Second Life」セミナーを開催。また、バーチャルリアリティ、メタバース関連のシステム開発/プロデュースを行うサイバーアドベンチャー(株)を設立し、そのCEO職に就いている。