2008年10月05日
装着で踊りだすスクリプト
ども、かーごです。
装着すると踊りだすスクリプトについてメモ
(1)踊る
アバターにアニメーションをさせるスクリプトは アイピロさんのTips などにも載っています。
本来、アニメをさせるにはパーミッションの取得とかややこしいのですが・・・
とりあえず、ここではそれは「呪文」として・・・^^;
オブジェクトに座るとアニメをさせるスクリプト。
緑の文字の所が呪文です。
詳しくはwikiなどを・・・・
"アニメーション名"のところにオブジェクトのコンテンツに入れたアニメの名前を入れます。
(2)装着すると
さて、「装着すると」の部分ですが。
LSLでアイテムが装着されたことを知るには Attachイベント を使います。
オブジェクトが装着もしくは取り外しされると、attach(){} の { } の中が実行されます。
それでは先ほどのスクリプトの change()~のところを書き換えてやりましょう。
attach イベントは装着しても取り外しても発生しますから、key id が NULL_KEYかどうかでどちらかを判断します。
装着されていれば id には有効なキーが装着されていなければ NULL_KEYが代入されていますので、NULL_KEY 以外なら装着、NULL_KEYなら取り外しということになります。
装着ならアニメスタートの呪文を、取り外しならアニメをストップさせます。
と、つらつらと書いてみました。
こんなの、参考になるかな~^^;
装着すると踊りだすスクリプトについてメモ
(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イベント を使います。
オブジェクトが装着もしくは取り外しされると、
それでは先ほどのスクリプトの 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なら取り外しということになります。
装着ならアニメスタートの呪文を、取り外しならアニメをストップさせます。
と、つらつらと書いてみました。
こんなの、参考になるかな~^^;
2008年10月05日
オーロラの見えるSIM
どうも、かーごです。
えすかるごから、ふと空を見上げると・・・
オーロラが!!

福岡中洲なのに・・・w
しかし、きれいですよ~^^
ぜひ見に来てくださいね~
こちら~
http://slurl.com/secondlife/Fukuoka%20Nakasu/126/126/24
えすかるごから、ふと空を見上げると・・・
オーロラが!!

福岡中洲なのに・・・w
しかし、きれいですよ~^^
ぜひ見に来てくださいね~
こちら~
http://slurl.com/secondlife/Fukuoka%20Nakasu/126/126/24