Difference between revisions of "LlGetAnimation/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (Undo revision 849082 by Mako Nozaki (Talk)) |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
{{LSL Function/avatar/ja|id|sim=*}}{{LSL_Function/ja | {{LSL Function/avatar/ja|id|sim=*}}{{LSL_Function/ja | ||
|func_id=162|func_sleep=0.0|func_energy=10.0 | |func_id=162|func_sleep=0.0|func_energy=10.0 | ||
|func=llGetAnimation | |func=llGetAnimation|p1_type=key|p1_name=id | ||
|func_footnote= | |func_footnote={{LSLG/ja|llGetAgentInfo}} はこの関数で対応できないいくつかのアニメーションの状態 (typing, away, busy) について情報提供します。{{LSLG/ja|llGetAnimationList}} は走行アニメーションのもっと詳細な情報を提供しますが、llGetAnimation ほど正確にはアバターの状態を反映していない可能性があります。 | ||
|func_desc | |func_desc=現在再生している '''id''' のアバターの移動アニメーションを string で返します。下のテーブルを参照してください。 | ||
|spec | |spec | ||
|caveats | |caveats=*この関数はアバターがログアウトする間空文字列を返す可能性があります。 | ||
*新しい復帰値がもしかするといつか追加されるかもしれず、このリストは事実上完全なものではないかもしれません。認識できない値を受け取る可能性もあることを前提にスクリプトを書くべきです。 | |||
|constants={{{!}} | |constants={{{!}} | ||
{{!}}-valign="top" | {{!}}-valign="top" | ||
{{!}} | {{!}} | ||
{{{!}}{{Prettytable}} | {{{!}}{{Prettytable|style=margin-top:0;}} | ||
{{!}}-{{Hl2}} | {{!}}-{{Hl2}} | ||
!値 | !値 | ||
!説明 | !説明 | ||
{{!}}- | |||
{{!}}"" | |||
{{!}}ログアウトの間 | |||
{{!}}- | {{!}}- | ||
{{!}}"Crouching" | {{!}}"Crouching" | ||
{{!}} | |||
{{!}}- | |||
{{!}}"CrouchWalking" | |||
{{!}} | |||
{{!}}- | |||
{{!}}"Falling Down" | |||
{{!}} | |||
{{!}}- | |||
{{!}}"Flying" | |||
{{!}} | |||
{{!}}- | |||
{{!}}"FlyingSlow" | |||
{{!}} | {{!}} | ||
{{!}}- | {{!}}- | ||
Line 28: | Line 43: | ||
{{!}}- | {{!}}- | ||
{{!}}"Jumping" | {{!}}"Jumping" | ||
{{!}} | {{!}}ジャンプの間、まだ空中にいるとき | ||
{{!}}- | |||
{{!}}"Landing" | |||
{{!}}ジャンプしてから着地したとき | |||
{{!}}- | {{!}}- | ||
{{!}}"PreJumping" | {{!}}"PreJumping" | ||
{{!}} | {{!}}ジャンプを開始したとき | ||
{{!}}} | {{!}}} | ||
{{!}} | {{!}} | ||
{{{!}}{{Prettytable}} | {{{!}}{{Prettytable|style=margin-top:0;}} | ||
{{!}}-{{Hl2}} | {{!}}-{{Hl2}} | ||
!値 | !値 | ||
!説明 | !説明 | ||
{{!}}- | |||
{{!}}"Init" | |||
{{!}}ログイン時とテレポート直後 | |||
{{!}}- | |||
{{!}}"Running" | |||
{{!}} | |||
{{!}}- | {{!}}- | ||
{{!}}"Sitting" | {{!}}"Sitting" | ||
{{!}} | {{!}}オブジェクトに座っているとき | ||
{{!}}- | {{!}}- | ||
{{!}}"Sitting on Ground" | {{!}}"Sitting on Ground" | ||
{{!}} | {{!}}地面に座っている時 | ||
{{!}}- | {{!}}- | ||
{{!}}"Standing" | {{!}}"Standing" | ||
{{!}} | {{!}} | ||
{{!}}- | {{!}}- | ||
{{!}}"Standing Up" | {{!}}"Standing Up" | ||
{{!}} | {{!}}高いところから落ちた直後。しばしば Hard Landing と称される | ||
{{!}}- | {{!}}- | ||
{{!}}" | {{!}}"Striding" | ||
{{!}} | {{!}}アバターがオブジェクトの端、もしくは他のアバターの上で手詰まりになっているとき | ||
{{!}}- | {{!}}- | ||
{{!}}"Soft Landing" | {{!}}"Soft Landing" | ||
{{!}} | {{!}}短い距離で落下した直後 | ||
{{!}}- | {{!}}- | ||
{{!}}" | {{!}}"Taking Off" | ||
{{!}} | {{!}} | ||
{{!}}- | {{!}}- | ||
Line 91: | Line 94: | ||
{{!}}} | {{!}}} | ||
{{!}}} | {{!}}} | ||
|examples | |examples= | ||
<source lang="lsl2"> | |||
// 単純なアニメーションオーバーライドのサンプルです。 | |||
// ジャンプしたときに、アバターを空中で走らせます。 | |||
key gOwner; // 装着している人のキー | |||
string gLastAnimation; // 最後に確認した llGetAnimation の値 | |||
// ユーザ関数 | |||
Initialize(key id) { | |||
if (id == NULL_KEY) { // 取り外し中 | |||
llSetTimerEvent(0.0); // タイマーを止める | |||
} | |||
else { // 装着されたか、装着したままリセットされた | |||
llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); | |||
gOwner = id; | |||
} | |||
} | |||
// イベントハンドラ | |||
default | |||
{ | |||
state_entry() { | |||
// 既に装着されている時にリセットされた場合に備えて | |||
if (llGetAttached() != 0) { | |||
Initialize(llGetOwner()); | |||
} | |||
} | |||
attach(key id) { | |||
Initialize(id); | |||
} | |||
run_time_permissions(integer perm) { | |||
if (perm & PERMISSION_TRIGGER_ANIMATION) { | |||
llSetTimerEvent(0.25); // ポーリング開始 | |||
} | |||
} | |||
timer() { | |||
string newAnimation = llGetAnimation(gOwner); | |||
if (gLastAnimation != newAnimation) { // 何か変更ある? | |||
if (newAnimation == "Jumping") { | |||
// あなたの持っているアニメーションの邪魔をするようなら、 | |||
// 自由に組み込みアニメーションを止めてもかまいません。 | |||
// 組み込みアニメーションを無差別に止める場合、 | |||
// アバターは手詰まりになる可能性があることと、 | |||
// llGetAgentInfo の結果が正しくない可能性があることに注意しましょう。 | |||
// 常にテストしましょう。 | |||
// llStopAnimation("jump"); | |||
llStartAnimation("run"); | |||
} | |||
else if (gLastAnimation == "Jumping") { // 今しがたジャンプを終了した | |||
// "run" はループアニメーションのため、終わったら止めなければなりません。 | |||
llStopAnimation("run"); | |||
} | |||
gLastAnimation = newAnimation; // 次回のためにとっておく | |||
} | |||
} | |||
} | |||
</source> | |||
|helpers | |helpers | ||
|also_functions={{LSL DefineRow|| | |also_functions={{LSL DefineRow||{{LSLG/ja|llGetAgentInfo}}|}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llGetAnimationList}}|}} | ||
|also_events | |also_events | ||
|also_tests | |also_tests |
Latest revision as of 04:38, 25 February 2016
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llGetAnimation( key id );現在再生している id のアバターの移動アニメーションを string で返します。下のテーブルを参照してください。
• key | id | – | 同一 地域 にいるアバターの UUID |
llGetAgentInfo はこの関数で対応できないいくつかのアニメーションの状態 (typing, away, busy) について情報提供します。llGetAnimationList は走行アニメーションのもっと詳細な情報を提供しますが、llGetAnimation ほど正確にはアバターの状態を反映していない可能性があります。
|
|
警告
- この関数はアバターがログアウトする間空文字列を返す可能性があります。
- 新しい復帰値がもしかするといつか追加されるかもしれず、このリストは事実上完全なものではないかもしれません。認識できない値を受け取る可能性もあることを前提にスクリプトを書くべきです。
サンプル
// 単純なアニメーションオーバーライドのサンプルです。
// ジャンプしたときに、アバターを空中で走らせます。
key gOwner; // 装着している人のキー
string gLastAnimation; // 最後に確認した llGetAnimation の値
// ユーザ関数
Initialize(key id) {
if (id == NULL_KEY) { // 取り外し中
llSetTimerEvent(0.0); // タイマーを止める
}
else { // 装着されたか、装着したままリセットされた
llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
gOwner = id;
}
}
// イベントハンドラ
default
{
state_entry() {
// 既に装着されている時にリセットされた場合に備えて
if (llGetAttached() != 0) {
Initialize(llGetOwner());
}
}
attach(key id) {
Initialize(id);
}
run_time_permissions(integer perm) {
if (perm & PERMISSION_TRIGGER_ANIMATION) {
llSetTimerEvent(0.25); // ポーリング開始
}
}
timer() {
string newAnimation = llGetAnimation(gOwner);
if (gLastAnimation != newAnimation) { // 何か変更ある?
if (newAnimation == "Jumping") {
// あなたの持っているアニメーションの邪魔をするようなら、
// 自由に組み込みアニメーションを止めてもかまいません。
// 組み込みアニメーションを無差別に止める場合、
// アバターは手詰まりになる可能性があることと、
// llGetAgentInfo の結果が正しくない可能性があることに注意しましょう。
// 常にテストしましょう。
// llStopAnimation("jump");
llStartAnimation("run");
}
else if (gLastAnimation == "Jumping") { // 今しがたジャンプを終了した
// "run" はループアニメーションのため、終わったら止めなければなりません。
llStopAnimation("run");
}
gLastAnimation = newAnimation; // 次回のためにとっておく
}
}
}
関連項目
関数
• | llGetAgentInfo | |||
• | llGetAnimationList |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。