myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

mMeter 高さ長さ奥行きを計るツール

 ちょっと前にbaseでオブジェクトの高さ・長さ・奥行きとバウンディングボックスの位置を出してくれる機能がないですかというスレッドがありました。

ないですよね。あったら教えて下さい。

その時に既に書いてあったスクリプトをちょっといじってて返事しました。
昨日このスクリプトを使っていたけど、複数のオブジェクトは非対応だったため編集することにしました。

そして、出来ました。出来たてです。

土曜日なのにちょっと体調がおかしかった家でスクリプトを書いてます。
でもそろそろ外に出ないと腐っちゃいそう。

それはどうでもいい、
このスクリプトの進化バージョンを公開しようと思っています。


PPG付きの
DOWNLOAD(古い)

DOWNLOAD

選択されたオブジェクト(複数可)のグローバルのX(長さ)Y(高さ)Z(奥行き)情報がでてきます。
そして、その選択のバウンディングボックス(真中の位置情報)も出てきます。
小数点はデフォルトで4桁になっていますが、0~10桁までは可能です。
mMeterPPG.jpg

こんな単純なことはすぐ書けるんだろうと思ったんだけど、意外な問題が出てきたから思ってた以上に時間が掛かってしまいました。

3Dオブジェクトと違ってポイントの位置はローカル情報しかありません
このローカル情報をグローバルに変換してくれるコマンドは XSIMath.MapObjectPositionToWorldSpace です。
これはmAlignerでも使ったことがあるので、使い方はなんとなく分かっています。

しかし、出来たー!と思いきや、色々試してみたら結果が可笑しかった。
わけが分からない数字が出てしまいます。

色んな実験をしてみた結果はどうやら、「XSIMath.MapObjectPositionToWorldSpace 」は親オブジェクトのグローバル位置を足してくれません!本当のグローバルではないので親オブジェクトのグローバル位置を足すように修正しました。 
色々試してみたら上手くいってるようですが、何かがあったら言ってください。
では、俺のSaturdayはこれからです!

Comments

オブジェクトスペースに自身のグローバルトランスフォームを入れるとグローバルの値が取れるようです
set oSel = selection(0)
set oSubs = oSel.Subcomponent.ComponentCollection
set oObj = oSel.Subcomponent.parent3Dobject
set vPos = oSubs(0).Position
set oTrans = oObj.Kinematics.Global.Transform
set vPosGlobal = XSIMath.MapObjectPositionToWorldSpace(oTrans ,vPos)
logmessage vPosGlobal.x &","& vPosGlobal.y &","& vPosGlobal.z

あと、グローバルトランスフォームからマトリクスをゲットして
ポジションにかけても
グローバル値が求められるようです
こっちも知っておくといいような気がします

set oSel = selection(0)
set oSubs = oSel.Subcomponent.ComponentCollection
set oObj = oSel.Subcomponent.parent3Dobject
set vPos = oSubs(0).Position
set oTrans = oObj.Kinematics.Global.Transform

set mObj = XSIMath.CreateMatrix4
oTrans.GetMatrix4 mObj

set vPosGlobalB = XSIMath.CreateVector3
vPosGlobalB.MulByMatrix4 vPos, mObj

logmessage vPosGlobalB.x &","& vPosGlobalB.y &","& vPosGlobalB.z

  • 2012/01/30(月) 19:04:37 |
  • URL |
  • ringpull #mQop/nM.
  • [ Edit ]

Re: No title

りんぷるさんコメントをありがとうございます。
おおおーなるほどです!グローバル入れるとグローバルが取れるって
言われてみればなんか当然ですよね。
なんで思いつかなかったのかなorz
マトリックスも色々試してみます!

  • 2012/01/30(月) 19:56:37 |
  • URL |
  • myara #-
  • [ Edit ]

Post a comment


Only the blog author may view the comment.

Trackbacks

Trackbacks URL
http://myara.blog.fc2.com/tb.php/55-0e1f2916
Use trackback on this entry.