Site search
2008年9月4日木曜日
アニメーションを全部止めるスクリプト
今回はアバターが再生中のアニメーションを全部止めるスクリプトです。
タッチしたアバターのアニメを止めるようにします。普通によくある簡単なスクリプトですね。ちょっといいネタが思いつかなかったのでwww
llGetAnimationListで再生中のアニメのリストを取得して1つずつ止めます。
タッチするとアニメーションを操作するためのパーミッション許可を要求するダイアログが出ますので、これを許可すると止まります^^
2009年1月30日追記: 製作中のHUDに組み込んでて気がついたんですが、AOを使ってないとアニメーションが止まった後、アバターを動かすまで最後に再生されたアニメーションのポーズをとったままの状態になるみたいです。なので for ループでアニメーションを停止した後、普通のスタンドポーズ(stand)を再生するよう修正しました。
タッチしたアバターのアニメを止めるようにします。普通によくある簡単なスクリプトですね。ちょっといいネタが思いつかなかったのでwww
llGetAnimationListで再生中のアニメのリストを取得して1つずつ止めます。
タッチするとアニメーションを操作するためのパーミッション許可を要求するダイアログが出ますので、これを許可すると止まります^^
// アニメーションを全部止める
list anim_list;
default
{
touch_start(integer total_number)
{
key agent=llDetectedKey(0); // タッチしたアバターのキー
anim_list=llGetAnimationList(agent); // 再生中のアニメーションのリスト
llRequestPermissions(agent,PERMISSION_TRIGGER_ANIMATION); // アニメのパーミッションリクエスト
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
{
integer i;
for (i=0; i < llGetListLength(anim_list); i++)
{ // リストのアニメの数だけループして
llStopAnimation(llList2Key(anim_list,i)); // アニメを1個ずつ停止
}
llStartAnimation("stand"); // 立った状態のポーズをとらせる
}
}
}
2009年1月30日追記: 製作中のHUDに組み込んでて気がついたんですが、AOを使ってないとアニメーションが止まった後、アバターを動かすまで最後に再生されたアニメーションのポーズをとったままの状態になるみたいです。なので for ループでアニメーションを停止した後、普通のスタンドポーズ(stand)を再生するよう修正しました。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿