Second Life 新世界的ものづくりのススメ--その26:テクスチャアニメーション応用3 - (page 2)

大槻透世二(サイバーアドベンチャー)

2007-09-20 08:00

1. state_entry( )

 「state_entry( )」は、ステートエントリーイベントと呼ばれる。このイベントは、あらゆるプログラムに入っており、1番最初に実行される。今回は、記述が下図のようになっていることから、『「state_entry( )」内の「llSetTimerEvent(0.20)」を実行しなさい』という命令を出している。

「state_entry( )」

 LSL Portalによれば、「llSetTimerEvent( )」の定義は下図のようになる。「( )」に入るデータは、「float」(小数)というデータ型を持った「sec」となり、秒数を示す。そして、この値に応じて、次項で説明するタイマーイベントを実行する。

「llSetTimerEvent( )」

 今回は「sec」が0.2なので、「llSetTimerEvent( )」はタイマーイベントを0.2秒ごとに実行することになる。考え方としては、下図のようになる。

イベントの関係

2. timer( )

 「timer( )」はタイマーイベントと呼ばれる。タイマーイベントのブロック内はどのようになっているだろうか?0.2秒毎に何をしているのだろうか?今回、タイマーイベントは下図のようになっている。

「timer( )」

 それでは順番に見ていこう。下図で示した最初の行では、「vel」という関数が自分(ユーザー)によって定義されている。

「vel」

 「vel」は、データ型が「vector」(ベクター)であるから、「(x,y,z)」のような形式で3つのデータを持つことができる。そして、「vel」に「llGetVel( )」の値を代入することが、「=」で指定されている。

 「=」は、第23回でも出てきたが、そもそも「=」とは何かをここで少し説明しておこう。実は、「=」は、数学の「イコール」とは異なる意味を持つ。「=」は、代入演算子といい、「=」の右側(右辺)の結果を「=」の左側(左辺)に代入する(割り当てる)。プログラム言語の決まり事というのは、数学の決まり事とは違うから混乱してしまう。だが、これは決まり事として覚えるしかない。代入演算子については、最後にもう少し詳しく見てみよう。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]