Second Life: LSLプログラミング
2007年12月27日(木)12:18|天方
LSLとは
最近、LSL(the scripting Language of Second Life)を使う機会に恵まれました。
LSLはその名のとおり、Second Lifeのスクリプト言語です。おもにSecond Life内に存在するオブジェクト(物体)を制御するために用いられます。
スクリプト言語というと、WebなどでもてはやされているJavaScriptや、Rubyなどのライトウェイトで高級(?)な環境を提供してくれるイメージが強いのではなかと思います。そういった意味ではLSLは期待を裏切ってくれることが多い言語だといえます。 ではLSLの特徴について簡単に説明していきたいと思います。
LSLの特徴
- イベント駆動モデル多くのGUIアプリケーションがそうであるように、LSLも基本的にイベント駆動モデルを採用しています。 オブジェクトの生成、アバターへのアタッチ、オブジェクトのクリック、タイマーなどのイベント発生時にどのように動作するかを記述していきます。
- サーバサイドLSLはサーバサイドで実行されることを前提としています。サーバサイドで実行されることの利点は、例えば、スクリプトに適切な権限を設定することで、他の人にスクリプトのコードを見せることなしにスクリプトを利用してもらうことができる点です。
- コンパイル言語スクリプト言語とはいっていますが、LSLはコンパイルが必要です。Second Life内でスクリプトを保存すると自動的にコンパイルが実行されます。大きなスクリプトを作成すると、保存-コンパイルまでの時間が長くなります。
- 値渡しLSLでは参照渡しが使えません。値渡しのみを使うことができます。これは、関数の引数に変数を渡しても、「絶対」にその変数に変更がおこらないことを意味しています。関数に渡した値を変更したい場合は、戻り値として返してそれを代入する必要があります。
- メモリモデルもしも、あなたがそれなりの機能をもったLSLを作るなら、LSLのメモリモデルについて気をつける必要があります。 LSLでは、1スクリプト当たりに16KBのメモリ空間を割り当てます。この16KBには、コード、グローバル変数、ヒープなどが含まれます。したがって、全体で16KBを超えるメモリを使う必要があるなら、スクリプトファイルを分割する必要があるでしょう。
以上が、LSLの特徴です。 次回からは、LSLで得た基本的なノウハウについてまとめていきたいと思います。