2014年12月21日日曜日

メッシュでオブジェクトの回転軸を設定する

セカンドライフ技術系Advent Carender 2014でじゅごんさんが前述していた「メッシュ版マイクロプリムの作りかた」を踏まえての、応用技です。


素プリムで回転式ドアを作る際、パスカットなどを用いて片側半分をカットして回す方法がとられてきたわけですが、
 たとえカットされても、プリムの重心(回転軸)は赤いからは移動しないので、それを中心に回転するというプリム独特の性質を利用したものでした。

実はこの技法も、ある手法の応用技だった歴史があるわけですが、今回はそっちの大元の手法のほうが 説明しやすそうなので軽く説明します。

 それはドア用プリムに透明なプリムを親プリムとしてリンクするという方法。
リンクされたオブジェクトは親プリムの重心を回転軸として回転されるという仕様を利用したわけですね。
写真でいえば、を親プリムにしてリンクすることで、パスカットせずともそこを基点に回転します。

それと似た技で、ドアのプリムの幅の2倍ある透明プリムを用意して、そのプリムの右端とドアプリムの右端を合わせてリンクすることで、同じ効果を生み出す手法もありました。
写真でいうと「透明な部分+ドアの右端まで」のプリムということになります。(ただこの場合、ドアをファントムにしておかないとドアを開けたときに反対側にいる人が見えないプリムに叩かれるという楽しい現象が起きるわけで。。。)

どちらの手法も「1枚のドアを作るのに2プリムも使うなんてモッタイナイ」という理由で、前述のパスカット技が普及しました。


さて、メッシュでのお話。
ブレンダ以外のモデリングソフトを使っていないのでブレンダ限定になるかも、ですが、メッシュオブジェクトは基本、回転軸=重心になります。
それをそのままインワールドに持ち込めば、回転軸用のプリムを追加しなければいけない事態になるわけで、なんとなく損した気分を味わってしまいます。

じゅごんさんの記事の2枚目の写真では、見えない三角形の重点=マイクロプリムの重点がピッタリ重なってるため、回転させるときはマイクロプリムの重点を軸に動くように見えるわけですが、
では、その見えない三角形をずらしたらどうなるのか、というのが(やっと)この記事の本題です。 

じゅごんさんの見えない三角形をドアに当てはめて考えると、対角の2点の黄色いが頂点になるわけでドアの重心とピッタリあっている状態。

ココではドアの左端()にオブジェクトの重心を持って行きたいわけですから、 上の黄色いドアの幅のぶん左にずらすことで可能になります。
写真でいうみどりがそれに当たります。

理屈的に言えば、
任意の回転軸を中心点とし、オブジェクトを全て包み込む長方体の対角をなす2つの頂点を見えない三角形で指定することで、重心を本来の位置からずらし、回転軸を設定することができます。

この手法で作られたメッシュオブジェクトをインワールドに持ち込んで編集をかけると、 ブレンダで設定した重心の位置に中心点を表す矢印が表示されるので、そこを基点に回転(移動)させることができるようになります。
これはドア以外でもいろいろ使える技なので、頭の片隅においておくとなかなか便利っ。

もちろん、編集をかけないかぎり見えない三角形はちゃんと見えないのでご安心。

0 件のコメント:

コメントを投稿