llGetAnimation
string llGetAnimation(key id)
アバターが現在実行中のアニメーション状態名を返す。
アニメーション状態名とは、歩く、座る、飛ぶなどのアバターの基本動作を指す。
セカンドライフではアニメーション状態に応じて基本アニメーションが自動的に実行される。
例えば状態が「Walking」であれば「walk」アニメーションが実行される。
アニメーション状態名とは、歩く、座る、飛ぶなどのアバターの基本動作を指す。
セカンドライフではアニメーション状態に応じて基本アニメーションが自動的に実行される。
例えば状態が「Walking」であれば「walk」アニメーションが実行される。
この関数の戻り値は以下のいずれかである。
戻り値 | 説明 | 基本アニメーション |
Crouching | しゃがむ | crouch |
Hovering | 浮遊 | hover |
Hovering Down | 下降 | hover_down |
Hovering Up | 上昇 | hover_up |
Jumping | ジャンプ | jump |
PreJumping | ジャンプ前の動作 | prejump |
Running | 走る | run |
Sitting | オブジェクトに座る | sit |
Sitting on Ground | 地面に座る | sit_ground |
Standing | 直立 | stand/stand_1/stand_2/stand_3/stand_4 |
Striding | 大股歩き。この戻り値が意味する動作が何なのか未確認 | stride |
Flying | 飛行 | fly |
FlyingSlow | ゆっくり飛行 | flyslow |
Falling Down | 落下 | falldown |
Standing Up | 立ち上がる(落下して倒れたあと) | standup |
Landing | 着地 | land |
Soft Landing | やんわり着地。普通の着地との違いは不明 | soft_land |
CrouchWalking | しゃがみ歩き | crouchwalk |
Turning Left | 左に回転 | turnleft |
Turning Right | 右に回転 | turnright |
Walking | 歩行 | walk |
この関数の最も有名な使い方はアニメーションオーバーライド(AO)である。
AOとは歩く、座るなどの基本動作アニメーションを独自のアニメーションに置き換えることを言う。
AOとは歩く、座るなどの基本動作アニメーションを独自のアニメーションに置き換えることを言う。
以下は簡単なAOのスクリプトである。
key actor=NULL_KEY; list anime = [ "Sitting", "OrgSit", "Standing", "OrgStand", "Walking", "OrgWalk" ]; string cur_anim = ""; default { run_time_permissions(integer perm){ if (! (perm & PERMISSION_TRIGGER_ANIMATION)) { llRequestPermissions(actor, PERMISSION_TRIGGER_ANIMATION); }else{ llSetTimerEvent(0.5); } } attach(key id){ if (id != NULL_KEY){ actor = llGetOwner(); llRequestPermissions(actor, PERMISSION_TRIGGER_ANIMATION); }else{ actor = NULL_KEY; llSetTimerEvent(0.0); } } timer(){ string now_anim = llGetAnimation(actor); integer i = llListFindList(anime, [now_anim]); if (i != -1){ string ao = llList2String(anime, i + 1); if (ao == cur_anim) { return; } llStartAnimation(ao); if (cur_anim != ""){ llStopAnimation(cur_anim); } cur_anim = ao; }else{ if (cur_anim != ""){ llStopAnimation(cur_anim); cur_anim = ""; } } } }
リストanimeに定義されている基本アニメーションが実行中の場合は、独自のアニメーションを再生する。
注:上記サンプルにおいてオリジナルのアニメーションが基本アニメーションの優先度よりも低い場合、AOは正しく動作しない。