変数
変数と言うのは、よくプログラムの解説では「箱」とか「入れ物」と例えられます。
私は前の解説で「メモ」と書いています。
どれも意味としては同じです。
変数とはその名の通り、「変わる数」という意味で、非常に便利なものです。
では、何が変わるのかと言うと、次の例で見てみましょう。
X = 10; X = X + 10; X = X * 2;
まず、Xという変数を用意し、10という数字を代入(だいにゅう)しています。
代入とは「左辺に右辺の中身(計算結果)を入れなさい」という意味で、この場合は「Xは10」と読んでしまった方が感覚で解りやすいと思います。
つまり、この時のXの中身は10です。
その次はXにさらに10を足して、またXの中に戻しています。
この時のXの中身は20です。
最後にXに2をかけて、Xの中に戻してます。
この時点で、Xの中身は何でしょうか?
答えは40ですね。
このように、変数は見かけは同じでも、その中身が次々と変わっていくのです。
変数と代入が出たことで、だんだん数学のようになってきました。
でも大丈夫。
数学はここから難しく面倒になっていきますが、スクリプトは面白くなっていくのです。
数学の成績が人には言えないほど悪かった私が保証します(笑)
LSLの変数には7つの種類(型)があります。
string(ストリング)
文字列型と言われる、文字を入れられる変数です。
数字じゃないのに変数と言うのも妙な話ですが、元々は数学用語。
まさかコンピュータで、言葉を計算のように使うとは思わなかったのでしょうね(笑)。
必ず " " で囲むのがルールです。
integer(インテジャー)
整数型と言われる、整数を入れられる変数です。
一番解りやすいですね。
LSLで使える整数は、-2147483648から2147483648までです。
float(フロート)
浮動小数型、実数型と呼ばれる、小数を入れられる変数です。
SLで色んなデータを扱う時によくお世話になったりします。
SLで使える小数は、-340万の1億倍の1億倍の1億倍から340万の1億倍の1億倍の1億倍まで。
無量大数という最高桁の名前が有名ですが、軽く突破します。
ただ、SLでは7桁位までしか使えないルールがあるので、例えば2.1E16(2.1かける10の16乗)のように使います。
まぁまず使いませんが(笑)。
key(キー)
キー型と呼ばれる、UUIDを入れられる変数です。
え?と思ったあなた正解です。
keyとは特殊なIDの事で、普通は直接中身を書く事はありません。
SLにある全てのもの(オブジェクト、アバター、テクスチャー、音、アニメーション、ノート、スクリプトetc)には、全て別々のUUIDという識別番号が振られているのです。
これは実際に見るとXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXのような数字とアルファベットの組み合わせです。
天文学的な組み合わせのうえに、作られた時間も関係するため、UUIDがかぶる事はまずありません。
従って、このUUIDを指定すれば、同じ名前のものでも違いが一発で解る仕組みになっています。
ちなみに上の例は「変数Xにオブジェクトオーナーのkeyを入れなさい」という命令です。
これを使えば、持ち主しか使えないオブジェクトが作れます。
vector(ベクター)
ベクトル型、ベクター型と呼ばれる、特殊な変数です
ベクターは三つの少数の組み合わせで、主に二つの用途で使われます。
一つは名前の通り、位置を示す使い方です。
画面の一番上、メニューの隣あたりに、現在のSIMの名前と座標が出ていますね。
まさにこれがベクター座標で、<125, 125, 20>であれば、SIMのド真ん中の20mの高さを指します。
もう一つは色を示す使い方。
コンピュータでは、色を光の三原色で表し、R(赤)、G(緑)、B(青)の3色を組み合わせて様々な色を再現しています。
つまり、<1.0, 0.0, 0.0>であれば、赤が100%の原色ギラギラの真っ赤という事です。
<1.0, 1.0, 1.0>は真っ白、<0.0, 0.0, 0.0>は真っ黒です。
rotation(ローテーション)
ローテーション型と呼ばれる、特殊な変数です。ローテーションは四つの小数の組み合わせで、その用途はほとんど回転です。
またまた、え?と思ったあなた、鋭い。
プリムを回転させる時には、XYZの3つの回転方向があるのは、作成をする人なら知っているかと思います。
ではなぜ小数が四つ?
実は、スクリプトで回転をさせる場合に使われるのは、私達が馴染んでいる3つの数字を使うオイラー表現ではなく、四元数というものを使います。
この四元数、3Dでは欠かせない理論なんですが、直感的に非常に解りにくく、正直私にも解りません(笑)。
とにかく、四元数を使うと回転を正確にコントロールできると覚えて下さい。
でも、「それじゃどうやって回転を指示するんだよ」という疑問はごもっとも。
回転の解説で書きますが、LSLには四元数が解らなくても操作する方法があるので安心して下さい。
list(リスト)
リスト型と呼ばれる、特殊な変数です。
リストは、様々な型をゴチャ混ぜにいくつも入れられる、とても便利な変数なのです。
例えば、私達が良く目にするダイアログの「はい」「いいえ」。
あれも中身は list sentaku = ["はい", "いいえ"];だったりします。
リストは、その中にあるものを自由に取り出したり、追加したり、探しものがリストの中にあるか見比べたりできるため、使いこなすと本当に便利なものです。
ちょっと長くなってしまいました。
次は変数の具体的な使い方をご紹介しますよ。


