この記事は、セカンドライフ 技術系 Advent Calendarの、10日めの記事です。
いま、消えそうな言語ナンバーワン、LSLの文法について書いていきます。今日のお題は型です。
LSLは、次の型があります。
オブジェクト等の固有IDを表す「key型」、オブジェクトの大きさ・速度などを表す「vector型」、回転を表す「rotation型」等が、基本型に含まれてるのが特徴です。
integer型
−2,147,483,648 〜 +2,147,483,647の範囲をあらわす、4バイト整数です。
float型
1.175494351E-38 〜 3.402823466E+38の範囲をあらわす、浮動小数点数です。
string型
ごくごく一般的な文字列型です。「+」記号で連結します。
例:string value = "abc" + "def";
key型
セカンドライフのオブジェクトの識別子などに使われる型。ぶっちゃけUUIDです。
例:key value = "00000000-0000-0000-0000-000000000000";
list型
いわゆるリストです。要素に複数の型を混在させることができます。リストの入れ子はできません。ちなみに、LSLには配列はありません。
例:list value = [ 6, 1.8, "string" ];
vector型
float型3つからなる型。3D空間を扱うLSLでは何気に便利な型です。オブジェクトの位置、大きさ、速度なんかを表すのにつかいます。
例:vector value = <1.0, 2.0, 3.0>;
rotation型
回転型です。LSLの回転は4つの数字からなるクォータニオンで表します。クォータニオンはちょっとややこしい概念ですが、この形式にすることで回転の合成などが簡単になります。
例:rotation value = <0.0, 0.0, PI, 1.0>;
まとめ
全体的に、3Dを扱うのに特化した型になってるのがわかるとおもいます。ぼくは経験ないですが、ゲームプログラミングなどをしてると理解しやすいのかもしれません。