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はこれからです!