スクリプト講座

スクリプトとは、オブジェクトに様々な効果を与える技術の一つです。
セカンドライフ((以下SL)では、このスクリプトをLSLと呼びます。
google等で検索をかける時は「LSL」という検索ワードを入れる事で、スムーズに調べる事ができます。
もし「スクリプト」だけで検索をすると、「JAVAスクリプト」や「VBスクリプト」等が大量に出てしまいます。
つまり、スクリプトとはSLだけのものではなく、広くコンピュータで使われるプログラムの一種なのです。
LSLは、SLのみで使えるプログラムなので、SL独特の特徴や単語があります。

実際に見てみよう

まず、作成ができる場所で、画面下にある建造ボタンから、オブジェクトをREZします。
REZとは私たちが普通にやっている、物を床に置く行為を差します。
作成モードでオブジェクトをクリックすると、そのオブジェクトの作成ウィンドに変わりますが、その中からコンテンツのタブを選びます。
そこに「新しいスクリプト」のボタンがあるので押してみましょう。

新たにスクリプトが作られ、左下に「Hello,Avatar!」と出ましたか?

次に、「作成モードをキャンセルして」、今のオブジェクトをクリックしてみましょう。
「Touched!.」と出たと思います。
これがスクリプトの基本です。

では再び、作成モードで今のオブジェクトのスクリプトを、今度はダブルクリックしてみましょう。

スクリプトエディッターが開きましたか?

このエディッター上で、スクリプトを色々と作っていく事になります。

初めてのスクリプト

default
{
state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }

    touch_start(integer total_number)
    {
        llSay(0, "Touched.");
    }
}

これが、一番最初にスクリプトを作った時に作られる、通称「ハローアバター」です。

スクリプトの書き方

スクリプトの文章を見ると、すいぶんと隙間が空いています。
これは見やすくするための工夫です。
基本的に、スクリプトでは1行に一つの内容を書きます。
また、行が長すぎる場合は、途中で改行をしても構いません。
さらに一つの単語を切る形でなければ、空白を空ける事も自由です。

実は、スクリプトは、このままではコンピュータが理解できません。
そこでコンピュータが理解できる内容に、翻訳をする作業が必要です。
これをコンパイルと言います。
スクリプトを保存する時に、自動的にコンパイルが行われ、改行や不必要な空白は無視されるのです。
ですから、スクリプトは見易さを重視して書く方が良いのです。

中括弧で囲み、その中にインデント下げをした中身を書く方法を「ブロック」と言います。

{
    内容
    {
        内容
        {
            内容    ← { と } に囲まれたブロック構造
        }
    }
}

ブロック構造をとる事で、それぞれの内容が解りやすくなります。
行の先頭の空白(インデント)は、スペースキーではなくTABキーで入れます。
注:ここではWEB記述の制約で、TABではなく半角スペースを使っています。
LSLエディッターでは、中括弧を使うと自動的にインデントが設定される、便利機能があります。
では、この「ハローアバター」スクリプトを使って、次から一つずつ解説をしていきましょう。