REZ_OBJECT について

しんいち

2008年08月28日 10:23


オブジェクトをREZするための関数は2つあるんですね^^ 今知りました^^ この違いをちょっと実験しました

【資料】をながめてみました
http://wiki.secondlife.com/wiki/LlRezObject
http://wiki.secondlife.com/wiki/LlRezAtRoot

Instantiate inventory object at pos with velocity vel and rotation rot with start parameter param
• string inventory – an object in the prim's inventory
• vector pos – position (in region coordinates)
• vector vel – velocity (max magnitude is 250)
• rotation rot – rotation
• integer param – on_rez event parameter and value returned by llGetStartParameter in the rezzed object.
パラメータの並び、数は同じ仕様ですね

The root of inventory is not at pos but the center of inventory is.
To have the root prim at pos use llRezAtRoot instead.
ルートぷりむに指定して使用するためには、llRezAtRoot を使用することが良いようです?

To rez an object so its center is at pos (instead of the root) use llRezObject instead.
オブジェクトの中心をPOS指定するためには、llRezObject が良いという違いがあるようです 

少し実験してみました、 以下レポート
では
【リンクされたオブジェクトとは当然きれいにREZできる リンクされていないけど 範囲選択した持ち物オブジェクトだってきれいにREZできる】実験


★実験 1)リンクされたオブジェクトにおいて、オブジェクトの中心であるか? 親ぷりむを パラメータで指定するのかが異なります

1)まず位置POSだけで ZEROROTATIONのぷりむ構成である、3個のぷりむ直線 重心は真ん中です

POS=<100,100,100>を目標REZにて実験 vel=ZERO_VECTOR rot=ZERO_ROTATION

LlRezObject関数では
りんく重心になります 親の位置に影響なし(親が左、真ん中、右のどこでもおなじ状態になりました)
 
重心<100,100,100>の位置にREZされています



LlRezAtRoot関数では
リンクオブジェクトの親ぷりむPOSになります==最後に選択したぷりむPOS が、POS=<100,100,100>になりました、

親プリムの位置が異なる場合には、REZされる状態が変化します。



おまけ、持ち物からREZしたときは、 
マウスの中心あたりにとりだせました(親が左、真ん中、右のどこでもおなじ状態になりました)




★実験 2)ではリンクされていない オブジェクトにおいて 検証
2)向き・回転ROTについて 5個のぷりむL字 範囲選択したオブジェクト
LlRezObject
回転ROTがZERO_ROTATIONになってしいました、相対的な位置は保持されていますが、 向き回転はだめですね^^;

LlRezAtRoot
それぞれの向き・位置が保持されて REZされました
リンクオブジェクトは親ぷりむPOSになります==最後に選択したぷりむPOS になりました
範囲選択 LASTリンクナンバーのPOS==はじめに選択したぷりむPOS になりました


【結果】
範囲選択したオブジェクトの名前は、最後に選択したぷりむ、になりました 
REZ_AT_ROOTされるのは、はじめに選択したぷりむPOS・ROTを数値・設定することになりました

範囲されたままでTAKEできるオブジェクトは持ち物がファイルでいっぱいにならないので、以外に便利です
スクリプト商品は個別として動作できるので、 リンクしないでTAKEする必要も良くありますので便利ですね^^b



親プリムが 指定された中心位置になります、 
範囲オブジェクトをREZした場合は ZERO_ROTATIONになってしまいます、


親プリム以外は回転ROTが異なります、
リンクされたオブジェクトは正しくイメージしたままREZできました、REZ_AT_ROOTも同じこのようになりました、
範囲オブジェクトをREZ_AT_ROOTした場合も、このようになりました、


親プリムを最上部のプリムとした、リンクオブジェクトは、このように正しくイメージしたままREZ_AT_ROOTできました
範囲オブジェクトをREZ_AT_ROOTした場合では、最上部のプリムをはじめに選択した場合に、このようになりました、



参考
//オブジェクトについて 重心とか中心はちがうのか?
http://wiki.secondlife.com/wiki/LlGetMass/ja
スクリプトが動いているオブジェクトの質量を取得します。
llGetObjectMass( key id );
idの質量のfloat値を返します。
Sim内のアバターかオブジェクト。
アバタの質量はシェイプ/サイズと相対的で、アタッチメントによる影響はありません。

http://wiki.secondlife.com/wiki/LlGetCenterOfMass/ja
vector llGetCenterOfMass( );
プリム自身の質量の中心(ルートプリムから呼ばれるのでなければ、オブジェクト自身の質量中心点)のvector値を返します。

vector llGetGeometricCenter( );
スクリプトが添付されたリンクセットの、ルートプリムと相対的な幾何学的中心のvector値を返します。
幾何学的? ってどんなんだろう^^? 

気になるが^^; 上手く説明できないので、今回は記事としてはパス^^;








REZ_OBJECT