Site search
2008年11月12日水曜日
身長を測るスクリプト
今回はタッチしたアバターの身長を測るスクリプトです。
アバターのサイズを調べる関数はllGetAgentSizeですね。
こんな感じで簡単に出せます^^
でもこれだけだと、ここで記事が終わっちゃうのでw プリムが計測した身長と同じ高さになるスクリプトを書いてみました。
ただ実際に高さを比べてみたらアバターのほうが高いんですよね。靴かなって思ったんですけど、靴脱いでもやっぱり高いみたいです?_?
アバターのサイズを調べる関数はllGetAgentSizeですね。
default
{
touch_start(integer total_number)
{
key agent=llDetectedKey(0); // タッチしたアバターのキー
vector size=llGetAgentSize(agent); // アバターのサイズ
llSay(0,(string)size.z); // Z方向のサイズをチャットで表示
}
}
こんな感じで簡単に出せます^^
でもこれだけだと、ここで記事が終わっちゃうのでw プリムが計測した身長と同じ高さになるスクリプトを書いてみました。
ただ実際に高さを比べてみたらアバターのほうが高いんですよね。靴かなって思ったんですけど、靴脱いでもやっぱり高いみたいです?_?
// タッチしたアバターの身長と同じ高さになるプリム
default
{
touch_start(integer total_number)
{
key agent=llDetectedKey(0); // タッチしたアバターのキー
string name=llDetectedName(0); // アバターの名前
vector size=llGetAgentSize(agent); // アバターのサイズ
if (size != ZERO_VECTOR) { // サイズが0でなかったら
integer i=(integer)llRound(size.z*100); // Zのサイズ(身長)をcmに換算
llSay(0,name +" is "+(string)i+"cm tall."); // チャットで表示
vector pos=llGetPos(); // プリムの位置
vector scale=llGetScale(); // プリムのサイズ
pos.z+=(size.z-scale.z)/2; // サイズ変更後のプリムの位置を計算
llSetPrimitiveParams([PRIM_SIZE,size, PRIM_POSITION,pos]); // プリムのサイズと位置変更
}
}
}
登録:
コメントの投稿 (Atom)
こんちは
返信削除llGetAgentSize で得られる身長は、腰の高さ(Pelvis)から
足の位置(Left Foot 、Right Foot)までの長さの2倍らしいです。
以前どこかでちら見した情報なので、間違ってたらごめんなさい。
こんにちは。
返信削除ってことは、実際の高さが合わなくてOKってことなんですねw
どこか間違えてて、自分だけ正確に測れてないのかも。。。っていう不安が解消できただけでも収穫です。情報ありがとうございました^^