LlGetAgentSize/ja
From Second Life Wiki
Second Life Wiki > LlGetAgentSize/ja
警告
- 返却されたベクトルはアバターの靴を含めた現在のシェイプをもとに計算された推測値です。x は定数 0.45[1] で、y は定数 0.60[2]、z はある一定の分だけレンダリングされた高さより小さくなります。0.17 足すと頭のてっぺんから足底までの高さに、0.195 足すと頭のてっぺんから地面までの高さになります (立っているアバターは微妙に床や地面より上に描かれます) 。[3]
- 返却された値は同じ幅と奥行ですが、立った時に、アバターの Bounding Box として報告された値から 0.05 メートル短くなります。アバターの Bounding Box はアバターが座ると変更されますが、llGetAgentSize はシェイプが変更されない限り不変です。
サンプル
//オーナーの頭の上に箱を浮かせるスクリプトです。 default { state_entry() { key owner = llGetOwner(); vector pos = llList2Vector(llGetObjectDetails(owner, [OBJECT_POS]),0); vector agent = llGetAgentSize(owner); pos.z += 0.5 + agent.z / 2;// オーナーの上に表示されるように "pos" を調節する必要があります if(agent)//オーナーを見つけることができたか確認します。ゼロベクトルの場合 false となります llSetPos(pos); } touch_start(integer num) { llResetScript(); } }
注意点
- この関数は次のことを手早く調べるのにいい方法です...
- アバターが同じ地域にいるか
- 既に地域にあると分かっている UUID がアバターをさすものか
この関数を使っていずれかのケースを調べるのには、次のようにします。
if(llGetAgentSize(uuid)) { //uuid は地域にいるアバターです } else { //uuid は地域にいるアバターではありません }
特記事項
議論
JIRA で関連記事を検索脚注
- ^ const F32 DEFAULT_AGENT_DEPTH = 0.45f;
- ^ const F32 DEFAULT_AGENT_WIDTH = 0.60f;
- ^ llGetAgentSize は LLVOAvatar::computeBodySize() と同じ値を返します。 indra/llcommon/indra_constants.h で初期値と限界値を見てください。
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。

