セカンドライフ(日本語版)の歩き方では、セカンドライフ初心者・中級者を対象に、セカンドライフの始め方・楽しみ方・役立て方を紹介します

セカンドライフの歩き方 > スクリプトサンプル集

スクリプトサンプル集

スクリプトの使い方

セカンドライフでよく使うスクリプトを紹介します。スクリプトは一から書こうとすると大変です。始めはサンプルスクリプトをコピーして使うといいでしょう。

サンプルスクリプトの使い方

1.オブジェクト製作ウィンドウ下メニュー【コンテンツ】【新しいスクリプト】をクリック
2.生成された「New Script」を開き、書かれているものを削除
3.使いたいスクリプトのサンプルをコピーし、貼り付けて【保存】

※文字の入力には「"Hello"」のように""で囲むものが多いので、""を忘れないように!
※スクリプトに日本語を使用するときはこちらの日本語変換ページが参考になります。

スクリプト参考HP

lsl wikiSLCOM黒羊団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座標,>

座る位置や角度の数値は、オブジェクトの形や向きによって異なります。環境に合わせて数値を調整してください。

セカンドライフの本

セカンドライフ 歩き方
ハンドブック
セカンドライフ 歩き方ハンドブック
当サイト「セカンドライフの歩き方」が本になりました
セカンドライフを楽しむ本
セカンドライフを楽しむ本
LINZOOさんとの
共著発売
> セカンドライフの本
私的レビュー
昨日今日