LSL(Linden Script Language)スクリプトTips集

音楽を設定するHUDをつくろう(llSetParcelMusicURL,llDetectedLinkNumber関数)

自分の土地で流れる音楽(BGM)を設定するのは簡単です。
しかし、土地の情報を表示し音楽URLを指定し直すのはちょっと面倒なのでこんなHUDつくってみました。
HUDとは、装着するとセカンドライフ画面のどこかに張りつくオブジェクトです。翻訳機などが有名でしょうか。

下記スクリプトを使います。赤プリム、青プリム、白プリムの順でリンクしてください。
すると赤プリムはリンク番号が3、青プリムはリンク番号が2になります。(最後に選択した方が番号が小さくなる。)

default
{
  touch_start(integer total_number)
  {
      integer i = llDetectedLinkNumber(0);
      if(i==2){
          llSetParcelMusicURL("http://・・・青プリム押下時のURLをここに指定");
      }
      if(i==3){
          llSetParcelMusicURL("http://・・・赤プリム押下時のURLをここに指定");
      }
  }

}
llDetectedLinkNumber関数:llDetectedLinkNumber(integer number)
一番目のパラメータ : 複数タッチされた場合、「何番目」にタッチしたアバターの情報を得るかを指定します。      
touch_startイベントの場合は必ず1番目(0からスタートです。)
llSetParcelMusicURL関数:llSetParcelMusicURL(string url)
一番目のパラメータ : 音楽URL
土地の音楽URLを設定します。(すみません。著作権の問題があるのでURLの掲載は差し控えさせていただきます。)

オブジェクトが完成したら、名前を付けてから右クリックしてTakeして持ち物に保存します。
HUDにするとここで見る大きさより大きく感じますから、小さくして保存した方がよさそうです。

Takeしたオブジェクトを持ち物から探して、「HUDに添付」します。
場所はどこでもいいですが、今回はBottomLeftにしてみました。

すると画面左下にオブジェクトが張りつくので、あとは場所や大きさなどはHUDを
右クリックして「編集」を選ぶと作成したときと同じように変更できます。

ところで曲切り替えはHUDでできますが、音楽の再生開始・停止は画面に表示されているこちらで操作してくださいねー。