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は正しく動作しない。