Difference between revisions of "LlGetAnimationList/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (Undo revision 849092 by Mako Nozaki (Talk)) |
|||
(2 intermediate revisions by one other user not shown) | |||
Line 4: | Line 4: | ||
|func_footnote | |func_footnote | ||
|func_desc | |func_desc | ||
|return_text= | |return_text='''id''' で表されたアバターが再生しているアニメーションのキーのリスト | ||
|spec | |spec | ||
|caveats=* | |caveats=*再生しているアニメーションの名前を取得する内部メカニズムは存在しません。 | ||
*標準のアニメーションはスクリプトで開始終了できます。このため、返却されたリストにアバターの状態が正確に反映されているとは限りません。気になるようでしたら、{{LSLG/ja|llGetAgentInfo}} と {{LSLG/ja|llGetAnimation}} を使いましょう。 | |||
|constants | |constants | ||
|examples | |examples= | ||
このサンプルはちょっと複雑ですが、この関数にはそんなに多くの応用事例がありません。 | |||
<source lang="lsl2">//Simple Animation Override for Walk | |||
key old_anim = "6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0"; | |||
string new_anim="yoga_float"; | |||
integer status; | |||
list check; | |||
key owner; | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
owner = llGetOwner(); | |||
llRequestPermissions(owner, PERMISSION_TRIGGER_ANIMATION); | |||
check = [old_anim]; | |||
} | |||
run_time_permissions(integer p) | |||
{ | |||
if(p & PERMISSION_TRIGGER_ANIMATION) | |||
{ | |||
llSetTimerEvent(0.2); | |||
} | |||
} | |||
timer() | |||
{ | |||
if(llGetAgentInfo(owner) & AGENT_WALKING) | |||
{ | |||
list anims = llGetAnimationList(owner); | |||
if(~llListFindList(anims, check)) | |||
{ | |||
status = 1; | |||
llStartAnimation(new_anim); | |||
llStopAnimation(old_anim); | |||
} | |||
} | |||
else if(status) | |||
{ | |||
llStopAnimation(new_anim); | |||
status = 0; | |||
} | |||
} | |||
on_rez(integer p) | |||
{ | |||
llResetScript(); | |||
} | |||
}</source> | |||
|helpers | |helpers | ||
|also_functions={{LSL DefineRow|| | |also_functions={{LSL DefineRow||{{LSLG/ja|llGetAgentInfo}}|アバターの情報を取得します}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llGetAnimation}}|アバターの基本アニメーションの状態を取得します}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llStartAnimation}}|アバターでアニメーションを開始します}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llStopAnimation}}|アバターで再生しているアニメーションを停止します}} | ||
|also_events | |also_events | ||
|also_tests | |also_tests |
Latest revision as of 04:39, 25 February 2016
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: list llGetAnimationList( key id );警告
- 再生しているアニメーションの名前を取得する内部メカニズムは存在しません。
- 標準のアニメーションはスクリプトで開始終了できます。このため、返却されたリストにアバターの状態が正確に反映されているとは限りません。気になるようでしたら、llGetAgentInfo と llGetAnimation を使いましょう。
サンプル
このサンプルはちょっと複雑ですが、この関数にはそんなに多くの応用事例がありません。
//Simple Animation Override for Walk
key old_anim = "6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0";
string new_anim="yoga_float";
integer status;
list check;
key owner;
default
{
state_entry()
{
owner = llGetOwner();
llRequestPermissions(owner, PERMISSION_TRIGGER_ANIMATION);
check = [old_anim];
}
run_time_permissions(integer p)
{
if(p & PERMISSION_TRIGGER_ANIMATION)
{
llSetTimerEvent(0.2);
}
}
timer()
{
if(llGetAgentInfo(owner) & AGENT_WALKING)
{
list anims = llGetAnimationList(owner);
if(~llListFindList(anims, check))
{
status = 1;
llStartAnimation(new_anim);
llStopAnimation(old_anim);
}
}
else if(status)
{
llStopAnimation(new_anim);
status = 0;
}
}
on_rez(integer p)
{
llResetScript();
}
}
関連項目
関数
• | llGetAgentInfo | – | アバターの情報を取得します | |
• | llGetAnimation | – | アバターの基本アニメーションの状態を取得します | |
• | llStartAnimation | – | アバターでアニメーションを開始します | |
• | llStopAnimation | – | アバターで再生しているアニメーションを停止します |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。