関数は簡単にいえば「○○をする」を示しています。
イベントの内部にのみ配置することが可能です。
デフォルトのスクリプトでは
llSay(0, "Hello, Avatar!");
と
llSay(0, "Touched.");
が関数となります。
関数は以下のルールに則って記述されます。
関数名(値);
関数名は、単純に言えば「○○する」の"動作"を表しています。
サンプルのllSayという関数は、「チャットで発言する」という"動作"になります。
値は、その関数を実行するのに必要な変数を入力する場所です。
llSayで指定しなくてはならない変数は、一番目に「発言するチャンネル」、二番目に「発言する内容」の2つです。
これを踏まえてサンプル関数を無理やり日本語っぽくしてみましょう。
default
{
state_entry()
{
発言します(0チャンネルで, "Hello, Avatar!"と);
}
touch_start(integer total_number)
{
発言します(0チャンネルで, "Touched."と);
}
}
関数名の部分を書き換えれば動作が、値を書き換えればその内容が変化します。
試しにllSayの2番目(""で囲まれた文章のぶぶん)を以下のように書き換えてみましょう。
default
{
state_entry()
{
llSay(0, "はろーわーるど!!");
}
~~(省略)
}
書き換えた上で保存をすると、オブジェクトが「はろーわーるど!!」と発言するはずです。
うまく行かなかった場合は、ちゃんと""の中に文字がはいっているか、カッコが外れていないか等をチェックしてみましょう。
次に関数名を他のものに変更してみましょう。
今回はllSayの亜種であるllShoutを用います。
llShoutで指定しなくてはならない変数は、一番目に「発言するチャンネル」、二番目に「発言する内容」の2つです。
では以下のように「llSay」を「llShout」に書き換えてみましょう。
default
{
state_entry()
{
llShout(0, "Hello, Avatar!");
}
~~(省略)
}
この状態で保存すると、オブジェクトはHello, Avater!と「叫ぶ」ようになります。
llShout関数は「チャットで叫ぶ」関数なので、llSayと異なりより広範囲のアバターにも表示される発言となります。
ちなみにllWhisper関数を用いれば「チャットでささやく」になり、逆に近い距離にしか届かない発言にすることができます。