スクリプトサンプル集
スクリプトの使い方
セカンドライフでよく使うスクリプトを紹介します。スクリプトは一から書こうとすると大変です。始めはサンプルスクリプトをコピーして使うといいでしょう。
サンプルスクリプトの使い方
1.オブジェクト製作ウィンドウ下メニュー【コンテンツ】の【新しいスクリプト】をクリック
2.生成された「New Script」を開き、書かれているものを削除
3.使いたいスクリプトのサンプルをコピーし、貼り付けて【保存】
※文字の入力には「"Hello"」のように""で囲むものが多いので、""を忘れないように!
※スクリプトに日本語を使用するときはこちらの日本語変換ページが参考になります。
スクリプト参考HP
オブジェクトの上に文字を表示する
{
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」を入力。「 " 」の表示は、「 \" 」を入力。
ホームページを開く
{
touch_start(integer total_number)
{
llLoadURL(llDetectedKey(0), "SecondLife no Arukikata", "http://www.sec-life.com/");
}
}
■1つめの赤文字のところ…サイトタイトル
■2つめの赤文字のところ…サイトURL
オブジェクトを回転させる
{
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外へテレポートする
vector pos = <48,115,22>;
default
{
touch_start(integer total_number)
{
llMapDestination(sim_name, pos, pos);
}
}
■Ueno … SIM名
■<48,115,22> … 座標
2.マップを開かずSIM内の近くへテレポートする
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移動します。
タッチした人にアイテムを与える
{
touch_start(integer total_number)
{
key avatar = llDetectedKey(0);
llGiveInventory(avatar, "itemname");
}
}
■オブジェクトの中に、この「スクリプト」と「渡したいアイテム」を入れます。
■itemname…ここに渡したいアイテムの名前を入力。
オーナーにIMを送る
{
touch_start(integer total_number)
{
llInstantMessage(llGetOwner(), "Hello Jinn ");
}
}
■Hello Jinn …受け取りたいメッセージを入力
このスクリプトを入れたオブジェクトに誰かがタッチすると、オブジェクトの所有者にIMが届きます(メッセージは赤字の部分に入力)。呼び鈴などに使えそうですね。
パイメニューの表示を変更する
「Touch」の表示を変更
{
state_entry()
{
llSetTouchText("Give You");
}
}
■Give You…表示させたい文字
「Sit Here」の表示を変更
{
state_entry()
{
llSetSitText("Pose");
}
}
■Pose…表示させたい文字
テクスチャを動かす(アニメーション)
プリムの表面のテクスチャを動かすスクリプト。川や滝など水の流れに使えます。
{
state_entry()
{
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES,1,1,1.0,1,0.5);
}
}
■0.5…最後の数字でテクスチャの移動の早さを調整
音(サウンド)を再生する
サウンドをループ再生するスクリプト。プリムの中にサウンドも同封しておきましょう。
{
state_entry()
{
llLoopSound("Sound_Name", 1.0);
}
}
■Sound_Name…プリムの中に入れたサウンドの名前を入力
タッチでしゃべるプリム
プリムにタッチすることにより、設定した言葉を返すスクリプトです。
{
touch_start(integer total_number)
{
llSay( 0,"Welcome!" );
}
}
■Welcome!…タッチされて返したい言葉を入力
座る位置を設定する
通常オブジェクトに座ろうとすると、アバターとオブジェクトの最短距離の位置で座ろうとするため、変な方向を向いて座ってしまうことがあります。このスクリプトを入れておけば、アバターの座る位置と角度を指定することができます。カウンターのイスや複雑な形のイスに使えるスクリプトです。
{
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座標,>
座る位置や角度の数値は、オブジェクトの形や向きによって異なります。環境に合わせて数値を調整してください。






