ソラマメブログ

2008年08月28日

REZ_OBJECT について

オブジェクトを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_OBJECT について
親プリムが 指定された中心位置になります、 
範囲オブジェクトをREZした場合は ZERO_ROTATIONになってしまいます、

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

REZ_OBJECT について
親プリムを最上部のプリムとした、リンクオブジェクトは、このように正しくイメージしたまま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値を返します。
幾何学的? ってどんなんだろう^^? 

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










タグ :LSLREZ

同じカテゴリー(REZ_OBJECT)の記事画像
REZ_OBJECT について その2
同じカテゴリー(REZ_OBJECT)の記事
 REZ_OBJECT について その2 (2008-09-12 21:11)
 夏休みの自由研究^^b REZ_BOX (2008-08-28 10:50)
Posted by しんいち at 10:23│Comments(1)REZ_OBJECT
この記事へのコメント
どもども、詳しい検証ありがとうございます。
非常に分かりやすい。
昨日の実験では範囲選択と順番に選択したモノを
別々に考えてなかったですね。

おいらも自分なりにもうちょっと実験してみたいと思います。
Posted by Tako★MASARU at 2008年08月28日 10:32
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。