セカンドライフ 初心者
スクリプトサンプル集
スクリプトの使い方
セカンドライフでよく使うスクリプトを紹介します。スクリプトは一から書こうとすると大変です。始めはサンプルスクリプトをコピーして使うといいでしょう。
サンプルスクリプトの使い方
1.オブジェクト製作ウィンドウ下メニュー【コンテンツ】の【新しいスクリプト】をクリック
2.生成された「New
Script」を開き、書かれているものを削除
3.使いたいスクリプトのサンプルをコピーし、貼り付けて【保存】
※文字の入力には「"Hello"」のように""で囲むものが多いので、""を忘れないように!
※スクリプトに日本語を使用するときはこちらの日本語変換ページが参考になります。
スクリプト参考HP
lsl wiki、SLCOM、黒羊団LSL研究部
オブジェクトの上に文字を表示する
default
{
state_entry()
{
llSetText("I am happy", <1,1,1>, 1.0);
}
}
|
|
■I am happy … ""の間に、表示させる文字を入力(255文字まで)
■
<1,1,1> … 文字の色を指定(0〜1)
<1,1,1>=白、<0,0,0>=黒、<1,0,0>=赤、<0,1,0>=緑、<0,0,1>=青
<1,0,1>=紫、<1,1,0>=黄、<1,0.5,0>=橙、など
■1.0 … 文字の透明度(0〜1)。1=透明度0% 〜 0=透明度100%
■改行は、「\n」を入力。「 " 」の表示は、「 \" 」を入力。
ホームページを開く
default
{
touch_start(integer total_number)
{
llLoadURL(llDetectedKey(0), "SecondLife no Arukikata", "http://www.sec-life.com/");
}
}
|
|
■1つめの赤文字のところ…サイトタイトル
■2つめの赤文字のところ…サイトURL
オブジェクトを回転させる
default
{
state_entry()
{
llTargetOmega(<1.0,1.0,1.0>, PI, 1.0);
}
}
|
|
■<1.0,1.0,1.0>…<x,y,z>座標を表す。数字は回転スピード(1なら1秒間に半回転)
テレポート関連
1.マップを開いてSIM外へテレポートする
string sim_name="Ueno";
vector pos = <48,115,22>;
default
{
touch_start(integer total_number)
{
llMapDestination(sim_name, pos, pos);
}
}
|
|
■Ueno … SIM名
■<48,115,22> … 座標
2.マップを開かずSIM内の近くへテレポートする
|
vector offset = <0.0, 0.0, 10.0>; rotation
rot = ZERO_ROTATION;
default
{ state_entry() { llSitTarget(offset,
rot); } on_rez(integer
start_param) { llResetScript(); } changed(integer
change) { if (change & CHANGED_LINK) { key k =
llAvatarOnSitTarget(); if (k !=
NULL_KEY) { llUnSit(k); } } } }
|
|
■オブジェクトは一般タブで「左クリックだった場合:オブジェクトに座る」に指定。
■<0.0,
0.0,
10.0> … <x,y,z>指定した数字分、オブジェクトの位置から移動します。
この場合、z座標に10m、つまり上方向へ10m移動します。
タッチした人にアイテムを与える
default
{
touch_start(integer total_number)
{
key avatar = llDetectedKey(0);
llGiveInventory(avatar, "itemname");
}
} |
|
■オブジェクトの中に、この「スクリプト」と「渡したいアイテム」を入れます。
■itemname…ここに渡したいアイテムの名前を入力。
オーナーにIMを送る
default
{
touch_start(integer total_number)
{
llInstantMessage(llGetOwner(), "Hello Jinn ");
}
} |
|
■Hello Jinn …受け取りたいメッセージを入力
このスクリプトを入れたオブジェクトに誰かがタッチすると、オブジェクトの所有者にIMが届きます(メッセージは赤字の部分に入力)。呼び鈴などに使えそうですね。
パイメニューの表示を変更する
「Touch」の表示を変更
|
default { state_entry() { llSetTouchText("Give
You"); } }
|
|
■Give You…表示させたい文字
「Sit Here」の表示を変更
default
{
state_entry()
{
llSetSitText("Pose");
}
} |
|
■Pose…表示させたい文字
テクスチャを動かす(アニメーション)
プリムの表面のテクスチャを動かすスクリプト。川や滝など水の流れに使えます。
default
{
state_entry()
{
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES,1,1,1.0,1,0.5);
}
}
|
|
■0.5…最後の数字でテクスチャの移動の早さを調整
音(サウンド)を再生する
サウンドをループ再生するスクリプト。プリムの中にサウンドも同封しておきましょう。
default
{
state_entry()
{
llLoopSound("Sound_Name", 1.0);
}
} |
|
■Sound_Name…プリムの中に入れたサウンドの名前を入力
タッチでしゃべるプリム
プリムにタッチすることにより、設定した言葉を返すスクリプトです。
default
{
touch_start(integer total_number)
{
llSay( 0,"Welcome!" );
}
}
|
|
■Welcome!…タッチされて返したい言葉を入力
座る位置を設定する
通常オブジェクトに座ろうとすると、アバターとオブジェクトの最短距離の位置で座ろうとするため、変な方向を向いて座ってしまうことがあります。このスクリプトを入れておけば、アバターの座る位置と角度を指定することができます。カウンターのイスや複雑な形のイスに使えるスクリプトです。
default
{
state_entry()
{
llSitTarget(<-1.5,0.3,0.5>,llEuler2Rot(<0.0,90.0,120.0>*DEG_TO_RAD));
}
}
|
|
■llSitTarget…座る位置をメートルで指定 <x座標,y座標,z座標,>
■llEuler2Rot…座る角度を指定 <x座標,y座標,z座標,>
座る位置や角度の数値は、オブジェクトの形や向きによって異なります。環境に合わせて数値を調整してください。
(c) 2007 Second Liferr