ソラマメブログ

2007年04月26日

スクリプトの基本

ようやくスクリプトの話です。
といっても超基本なところから。

スクリプトを作成するのはとっても簡単。
スクリプトを新規作成して、適当なプリムにドラッグ&ドロップすれば、
「Hello, Avatar!」
と表示されます。さらに左クリックすれば、
「Touched.」
と表示されますね。これであなたも立派なスクリプター!

…ところでこのメッセージって、周りの人に聞こえまくりなんですよね。
調子に乗って「Touched. Touched. …」なんて出しまくってたらちょっと恥ずかしいかもしれない。
と言う事で、持ち主(=自分)にのみ聞こえるようにしてみましょう。

メッセージを発言しているのは llSay() という命令です。
引数に channel と text を指定して使います。
channel 0 を指定すると普通に近くの人(と物)に聞こえます。だからと言って他の channel 番号を指定すると自分にも聞こえなくなるので注意です。text は普通に発言内容ですね。適当に変えてみてもいいでしょう。

目的の持ち主だけに聞こえるようにするには llSay() では難しいようです。他の命令を探してみましょう。

llInstantMessage() という命令もありますが、ここは簡単な llOwnerSay() を使ってみましょう。

llOwnerSay(string msg)

と言う事で llSay() に比べて channel の指定がありませんが、気にせずに置き換えてみましょう。text と msg はほぼ同等ですのでこちらも気にせず。

llOwnerSay("Hello, Avatar!");

llOwnerSay("Touched.");

オブジェクトを編集、中のスクリプトを開いて該当場所を書き換えてセーブして少し待てば、やっぱり「Hello, Avatar!」と言ってくると思います。でも今度は他の人には聞こえてないはずです。エラーが出てる場合は落ち着いて書き間違ってないかチェックしてみましょう。
ちなみに現在はまだ日本語は文字化けしてしまってスクリプト内に書く事は出来ません。

何はともあれ、これで人知れずこっそりとスクリプトを書いてテストする事が出来るようになりました。それでこそスクリプター!


実際のところ、タッチで何かをさせるってのはとっても便利です。

default{
touch_start(integer n){
llOwnerSay("1+2="+(string)(1+2));
}
}

こんな風に計算結果を表示したり、

default{
touch_start(integer n){
llOwnerSay("Touched: "+llDetectedName(0));
}
}

触った人を特定してみたりとか。


どんな事が出来るのかは、ある程度把握してないと辛いところですが、一部日本語化が進行しつつある lslWiki(Ja)などをにらめっこしながら試してみましょう。
どこかで modify 可能なスクリプトを拾ってきたり、何ヶ所かある日本のユーザーの解説ページを探してみるのもいいですね。

lslWiki(Ja)

↓は英語ですが、情報が新しいです。
LSL Portal




この記事へのトラックバックURL

http://tomoneko.slmame.com/t3440