Difference between revisions of "LlStartAnimation/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (Undo revision 849572 by Mako Nozaki (Talk)) |
Mako Nozaki (talk | contribs) |
||
Line 2: | Line 2: | ||
|func_id=129|func_sleep=0.0|func_energy=10.0 | |func_id=129|func_sleep=0.0|func_energy=10.0 | ||
|func=llStartAnimation|sort=StartAnimation | |func=llStartAnimation|sort=StartAnimation | ||
|p1_type=string|p1_name=anim | |p1_type=string|p1_name=anim|p1_desc= or {{LSLG/ja|Internal Animations|組み込みアニメーション}} | ||
|func_footnote | |func_footnote | ||
|func_desc= | |func_desc=権限が剥奪されていない場合、 {{LSLG/ja|PERMISSION_TRIGGER_ANIMATION}} を許可したエージェントで '''anim''' のアニメーションを開始します。 | ||
|return_text | |return_text | ||
|spec | |spec | ||
|caveats | |caveats=* サーバコード 1.25.3 以前は、基本的に一度に再生できるアニメーションの数に限りはありませんでした。 1.25.3 で、同時に発生するアニメーションの数が 15 に制限され、 1.25.4 で、その数が 30 に増やされました。 | ||
|constants | |constants | ||
|examples= | |examples= | ||
Line 30: | Line 30: | ||
llSetTimerEvent(0.0); | llSetTimerEvent(0.0); | ||
llStopAnimation("sit"); | llStopAnimation("sit"); | ||
} | |||
} | |||
</lsl> | |||
アニメーションやポーズを、スクリプトが入っているオブジェクトと同じオブジェクトに追加します。 | |||
<lsl> | |||
string animation; // インベントリの最初のアニメーションが自動的に使用されます | |||
// アニメーションの名前は、立った時にそのアニメーションを停止できるようにするために、グローバル変数に格納されていなければなりません。 | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
// 着座ポイントを設定します。そうでないとこれは動きません。 | |||
llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION); | |||
} | |||
changed(integer change) | |||
{ | |||
if (change & CHANGED_LINK) | |||
{ | |||
key av = llAvatarOnSitTarget(); | |||
if (av) //NULL_KEY や不正なキーでなければ、 true と判定されます | |||
llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION); | |||
else // アバターが立とうとしています | |||
{ | |||
if (animation) | |||
llStopAnimation(animation); // 開始したアニメーションを停止します | |||
llResetScript(); // アバターのアニメーション権限を解除します | |||
} | |||
} | |||
} | |||
run_time_permissions(integer perm) | |||
{ | |||
if (perm & PERMISSION_TRIGGER_ANIMATION) | |||
{ | |||
animation = llGetInventoryName(INVENTORY_ANIMATION,0); // インベントリの最初のアニメーションを取得します | |||
if (animation) | |||
{ | |||
llStopAnimation("sit"); // デフォルトの座るアニメーションを停止します | |||
llStartAnimation(animation); | |||
} | |||
} | |||
} | } | ||
} | } | ||
</lsl> | </lsl> | ||
|helpers | |helpers | ||
|also_functions={{LSL DefineRow|| | |also_functions={{LSL DefineRow||{{LSLG/ja|llStopAnimation}}|}} | ||
|also_tests | |also_tests | ||
|also_events | |also_events | ||
|also_articles={{LSL DefineRow|| | |also_articles={{LSL DefineRow||{{LSLG/ja|Internal Animations|組み込みアニメーション}}|常に使用可能な組み込みアニメーションのリスト}} | ||
|notes | |notes | ||
|cat1=Animation | |cat1=Animation |
Revision as of 00:16, 15 May 2010
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llStartAnimation( string anim );権限が剥奪されていない場合、 PERMISSION_TRIGGER_ANIMATION を許可したエージェントで anim のアニメーションを開始します。
• string | anim | – | プリムの インベントリ の中にあるアイテム or 組み込みアニメーション |
実行するには、llRequestPermissions による PERMISSION_TRIGGER_ANIMATION 権限が必要です。
警告
- 権限の自動付与に頼らないようにしましょう。常に run_time_permissions イベントを使用しましょう。
- スクリプトに PERMISSION_TRIGGER_ANIMATION の権限が不足していると、スクリプトはエラーを DEBUG_CHANNEL で叫び、操作に失敗します (しかしスクリプトは処理を続けます)。
- いったん PERMISSION_TRIGGER_ANIMATION 権限が付与されると、スクリプトの中で (例えば、新しい llRequestPermissions 呼び出しなどにより) 権限をはく奪することができません。スクリプトはオブジェクトが derez (削除、取り外し、取り込み) されない限り権限が失われません。
- anim がプリムの中で見つからない場合、エラーが DEBUG_CHANNEL 上で叫ばれます。
- サーバコード 1.25.3 以前は、基本的に一度に再生できるアニメーションの数に限りはありませんでした。 1.25.3 で、同時に発生するアニメーションの数が 15 に制限され、 1.25.4 で、その数が 30 に増やされました。
サンプル
<lsl> default {
touch_start(integer detected) { llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION); } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llStartAnimation("sit"); llOwnerSay("animation will end in 5 seconds"); llSetTimerEvent(5.0); } } timer() { llSetTimerEvent(0.0); llStopAnimation("sit"); }
} </lsl> アニメーションやポーズを、スクリプトが入っているオブジェクトと同じオブジェクトに追加します。 <lsl> string animation; // インベントリの最初のアニメーションが自動的に使用されます
// アニメーションの名前は、立った時にそのアニメーションを停止できるようにするために、グローバル変数に格納されていなければなりません。
default {
state_entry() { // 着座ポイントを設定します。そうでないとこれは動きません。 llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION); } changed(integer change) { if (change & CHANGED_LINK) { key av = llAvatarOnSitTarget(); if (av) //NULL_KEY や不正なキーでなければ、 true と判定されます llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION); else // アバターが立とうとしています { if (animation) llStopAnimation(animation); // 開始したアニメーションを停止します llResetScript(); // アバターのアニメーション権限を解除します } } } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { animation = llGetInventoryName(INVENTORY_ANIMATION,0); // インベントリの最初のアニメーションを取得します if (animation) { llStopAnimation("sit"); // デフォルトの座るアニメーションを停止します llStartAnimation(animation); } } }
}
</lsl>関連項目
イベント
• | run_time_permissions | – | 権限取得イベント |
関数
• | llGetPermissions | – | 付与されている権限を取得します | |
• | llGetPermissionsKey | – | 権限を許可したエージェントを取得します | |
• | llRequestPermissions | – | 権限を要求します | |
• | llStopAnimation |
記事
• | 権限/スクリプト | |||
• | 組み込みアニメーション | – | 常に使用可能な組み込みアニメーションのリスト |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。