ダンスパッドでアニメーション(llStartAnimation関数,llStopAnimation関数)
下記のスクリプトでは、右クリックして表示されるパイメニューの「Dance」でアニメーションを開始します。
よくあるキャンプのダンスパッドです。お金の支払いスクリプトは入れてません。
default
{ state_entry(){ llSetSitText("Dance"); llSitTarget(<0.0,0.0,0.5>,ZERO_ROTATION); } changed(integer change){ key sitavakey = llAvatarOnSitTarget(); if( sitavakey != NULL_KEY ){ if ((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) && llGetPermissionsKey() == sitavakey) { llStopAnimation("sit"); llStartAnimation("ダンスのアニメーション名"); }else{ llRequestPermissions(sitavakey, PERMISSION_TRIGGER_ANIMATION); } } } run_time_permissions(integer perm){ if(perm & PERMISSION_TRIGGER_ANIMATION){ llStopAnimation("sit"); llStartAnimation("ダンスのアニメーション名"); } } } |
llStopAnimation関数(指定された名前のアニメーションを終了します。) 一番目のパラメータ : アニメーション名 |
llStartAnimation関数(指定された名前のアニメーションを開始します。) 一番目のパラメータ : アニメーション名 |
run_time_permissionsイベント(llRequestPermissions()によって許可されると、このイベントが発生します。 )
一番目のパラメータ : 許可されたパーミッション値 |
SitというメニューをDanceという文字に置き換えているだけなので動作としては、
デフォルトのsitという名前のアニメーションが開始されます。それをストップし、
代わりにダンスアニメーションを開始しているというスクリプトです。
初回のDanceはパーミッションを持っていないのでllRequestPermissionsによってパーミッションを取得してから
アニメーションを開始しています。2回目以降はパーミッションを持っているので、すぐにアニメーションを開始しています。
スクリプトと同じ場所にダンスのアニメーションをセットしてください。
(ダンスのアニメーションファイルは自作(アニメーションの作成)でもいいですし、フリーアイテムショップでも手に入ります。)