ソラマメブログ
商品紹介
cargo-G C03

cargo-G C03L

QRコード
QRCODE
[PR]Information

 

 

 

 

 

アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。 解除は→こちら
現在の読者数 1人
オーナーへメッセージ

2008年10月05日

装着で踊りだすスクリプト

ども、かーごです。

装着すると踊りだすスクリプトについてメモ

(1)踊る
 アバターにアニメーションをさせるスクリプトは アイピロさんのTips などにも載っています。

本来、アニメをさせるにはパーミッションの取得とかややこしいのですが・・・
とりあえず、ここではそれは「呪文」として・・・^^;
オブジェクトに座るとアニメをさせるスクリプト。
default
{
  state_entry(){
      llSitTarget(<0.0,0.0,0.1>,ZERO_ROTATION); // llAvatarOnSitTarget()でkeyを調べるのに必要な呪文
  }

  changed(integer change){
    key key_av = llAvatarOnSitTarget(); //座ったアバターのキーをkey_avに入れる
    if( key_av != NULL_KEY ){
      if ((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION)
                & llGetPermissionsKey() == key_av) { // すでにアニメーションのパーミッションがあれば
        llStopAnimation("sit"); // 通常の座るアニメをストップして
        llStartAnimation("アニメーション名"); // 指定のアニメをスタート
      }else{ // パーミッションがない時
        llRequestPermissions(key_av, PERMISSION_TRIGGER_ANIMATION); // パーミッションをリクエスト
      }
    }
  }

  run_time_permissions(integer perm){
    if(perm & PERMISSION_TRIGGER_ANIMATION){
      llStopAnimation("sit");
      llStartAnimation("アニメーション名");
    }
  }

}

緑の文字の所が呪文です。
詳しくはwikiなどを・・・・
"アニメーション名"のところにオブジェクトのコンテンツに入れたアニメの名前を入れます。


(2)装着すると
さて、「装着すると」の部分ですが。
LSLでアイテムが装着されたことを知るには Attachイベント を使います。
オブジェクトが装着もしくは取り外しされると、attach(){} の { } の中が実行されます。

それでは先ほどのスクリプトの change()~のところを書き換えてやりましょう。
default
{
  attach( key id ) // attachイベント
  {
    key key_av = id; //装着したアバターのキーをkey_avに入れる
    if( key_av != NULL_KEY ){ // アバターのキーがNULLでない = 装着した時
      if ((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION)
                & llGetPermissionsKey() == key_av) { // すでにアニメーションのパーミッションがあれば
        llStartAnimation("アニメーション名"); // 指定のアニメをスタート
      }else{ // パーミッションがない時
        llRequestPermissions(key_av, PERMISSION_TRIGGER_ANIMATION); // パーミッションをリクエスト
      }

    } else { // 装着したアバターがNULL = オブジェクトが取り外された時
      llStopAnimation("アニメーション名"); // アニメをストップする
    }
  }
  run_time_permissions(integer perm){
    if(perm & PERMISSION_TRIGGER_ANIMATION){
      llStopAnimation("sit");
      llStartAnimation("アニメーション名");
    }
  }

}

attach イベントは装着しても取り外しても発生しますから、key id が NULL_KEYかどうかでどちらかを判断します。
装着されていれば id には有効なキーが装着されていなければ NULL_KEYが代入されていますので、NULL_KEY 以外なら装着、NULL_KEYなら取り外しということになります。
装着ならアニメスタートの呪文を、取り外しならアニメをストップさせます。

と、つらつらと書いてみました。
こんなの、参考になるかな~^^;
  
Posted by Cargo at 19:57Comments(3)TrackBack(0)スクリプト

2008年10月05日

オーロラの見えるSIM

どうも、かーごです。

えすかるごから、ふと空を見上げると・・・

オーロラが!!


福岡中洲なのに・・・w

しかし、きれいですよ~^^
ぜひ見に来てくださいね~

こちら~
http://slurl.com/secondlife/Fukuoka%20Nakasu/126/126/24  
Posted by Cargo at 00:49Comments(0)TrackBack(0)観光案内