スクリプト作成入門
プリムを作ることができたなら、いよいよプログラミングをはじめましょう。リンデンスクリプト(通称LSL)を記述することで、ただの箱だったプリムに何かしらの動きを与えることができます。プリムを動かすことはもちろんのこと、メッセージを表示したり、ネットワークの機能を利用して外部のWebサイトのデータを読み出したり、音楽や動画を再生したりすることもできます。
冒頭でも紹介しましたが、リンデンスクリプトは非常に簡潔なので、プログラミングの学習にも最適です。加えて、if、for、whileなどと言ったプログラミングの基本的な構文を備えています(これらの制御構文の使い方は、C言語やJavaの言語とまったく同じように使えます)。そのため、リンデンスクリプトでプログラミングの基礎を学ぶことができるでしょう。
プリムに動きをつける
プリムに動きをつけるには、まずプリムを作成し、その編集画面で、[コンテンツ]タブを開き、[新しいスクリプト]のボタンをクリックします。すると、「New Script」というファイルが出来ます。これをダブルクリックすると、次の図のようなスクリプトエディタが開きます。
既に、スクリプトのひな形が書かれています。これは、プリムを触ると「Touched.(触った)」というメッセージが表示されるというものです。
雛形は次のようなプログラムになっています。
default
{
// 一番初めに実行されるブロック
state_entry()
{
llSay(0, "Hello, Avatar!");
}
// アバターがプリムに触ったときに実行されるブロック
touch_start(integer total_number)
{
llSay(0, "Touched.");
}
}
プログラムを見てみると、一番初めに「default { .. }」と書かれています。これは、default(標準の動作)を設定するという意味です。
そして、この中に、「state_entry(){ .. } 」と書かれています。これは、スクリプトの一番初めに実行される処理です。ここでは、「llSay(0, "Hello, Avatar!");」となっており、「Hello, Avatar!」という文字をチャットウィンドウに表示するという意味です。
次に、「touch_start(..) { .. }」と書かれています。ここには、アバターがプリムに触れたときに実行される処理を書きます。アバターがプリムに触ると「llSay()」命令によって、「Touched.」というメッセージが表示されます。
せっかくひな形ができていますので、これを利用して簡単なプログラムを作ってみます。手始めに、アバターがプリムを触ると赤色に変わるというプログラムを作ってみます。
触るとプリムを赤色に変色させるプログラム:
default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
}
touch_start(integer total_number)
{
llSay(0, "Touched.");
llSetColor(<1,0,0>, ALL_SIDES); // ←追加した行(*1)
}
}
雛形から変更したところは、11行目(*1)です。プリムの色を変更する「llSetColor()」命令を挿入しました。スクリプトディタに変更を加え、[保存]ボタンをクリックしてみてください。入力ミスがなければ、無事に「Save complete.」と保存完了の旨が表示されます。
もし、入力ミスがあるとエラーメッセージが表示されるので、どこか入力間違いがないか確認してみてください。
そして、編集ダイアログなどを閉じたらプリムに触ってみてください。「Touched.」というメッセージと共に、プリムの色が真っ赤に染まります。たった1行付け加えただけですが、動作に応じた面白い特殊効果をつけることができました。
Second Lifeでは、こうした手順を経てプログラムを作っていきます。注意点としては、現在のバージョン(Second Life 1.18.1)では、リンデンスクリプトの中で、日本語を利用することができません。特殊な方法を使えば表示することはできるのですが、スクリプトエディタに日本語を書くと、文字化けしてしまいます。
リンデンスクリプトの命令の使い方を調べる時
リンデンスクリプトの命令は「llSay」や「llListen」と、「ll」から始まる特徴があります。この特徴のおかげで、検索エンジンで命令の名前で検索すると、Second Lifeのスクリプトに関するページがヒットします。命令の使い方が知りたい場合には、検索エンジンが便利です。
あるいは、Second Lifeのメニューから、[ヘルプ]-[スクリプトガイド]をクリックすると英語ですがマニュアルのページを見ることができます。
リンデンスクリプト作成に外部エディタを使う
ここまで見てきたように、Second Lifeには、既に立派なスクリプトエディタがついているのですが、本格的なプログラムを作るようになると、ちょっと機能が物足りなく感じるかもしれません。
最近のプログラミングの開発環境には、必ず、単語の補完機能がついており、単語を途中まで入力するとその続きを選ぶことができるのです。Second Lifeのスクリプトエディタには、この機能がありません。
そう思った人は「SciTE-ez」を使ってみてください。これは、補完機能もついていますし、入力した命令にどんな引数を書いたら良いのかまでヒントを表示してくれます。そして何よりファイルにスクリプトを保存しておくことができますので、スクリプトの使いまわしをしたい時に便利です。
SciTE-ez - Programmers editor with LSL support
また、「lslint」というツールを利用することで、文法チェックを行うこともできます。コマンドラインから、「lslint(ソースファイル名)」を実行することでエラー箇所を特定できます。
これを「SciTE-ez」と連携して実行することもできます。手順は以下の通りです。
- 「SciTE-ez」のインストールフォルダに「lslint」をコピーします。
- 上記フォルダにあるファイル「lsl.properties」をエディタで開きます。
- 以下のような設定を書き込み保存します。
command.compile.*.lsl="C:\Program Files\SciTE-ez\lslint.exe" "$(FileNameExt)"
これは、SciTE-ezのインストールパスが「C:\Program Files\SciTE-ez」である場合の設定です。違う場合は書き換えてください。これで、メニューからコンパイル(Ctrl+F7)で文法チェックを行うことができます。