2012年10月30日

2013の新機能を探る その44 3dsmax 2013 SP2

今回も前回に引き続きMassFXのコンストレイントを調べてみたい。前回はMassFXのツールバーにあるコンストレイントのフライアウトボタンについて、どんな動作のコンストレイントかをざっと見てみた。

fig02

今回はより詳細に調べてみたい。

まずはコンストレイントの基本的な設定方法から。下のシーンは円柱をダイナミックリジッドボディに、BOXをキネマティックリジッドボディに設定してあり、

fig01

BOXにはキーフレームアニメーションが付けてある。このままシミュレーションしても、円柱とBOXには何のつながりも無いので、このような結果になる。

fig02

このシーンではこのBOXの動きにあわせて円柱の回転軸を移動させて、円柱を地面の上で転がせてみたい。自由な回転軸はTwist Constraintで与えられるのでBOXと円柱の間で設定してみる。

まず動きの親になるBOXを選択し、次に子となる円柱を追加選択する。

fig03

次にMassFXのツールバーのコンストレイントフライアウトボタンを押してフライアウトを開き、「Create Twist Constraint」を選ぶ。

fig04

するとこのように緑の円盤が出て来て、マウスの動きにあわせて大きさが変わる。これがコンストレイントの拘束を表わすアイコンで、大きさは動作に無関係なので適当な大きさのところでマウスの左ボタンを押して確定する。

fig05

するとこのようにBOXと円柱の間にコンストレイントが設定される。

fig06

作成されたコンストレイントオブジェクトの「General」ロールアウトを見ると、ParentにBOX、Childに円柱が設定されているのがわかる。

fig10

今のところ回転軸はBOXの基点から円柱の基点への方向に沿っていて回転軸の基点はBOXの基点と一致している。

fig07

この状態でシミュレーションをしても、回転軸の向きがおかしいので円柱はうまく回転しない。

fig08

ここで回転軸の位置と方向を調整する。コンストレイントのGeneralロールアウトのChild側の「Move to Child's Pivot(子の基点に移動)」ボタンを押して、コンストレイントの基点を子の基点にあわせる。

fig09

これでコンストレイントの位置と方向が円柱と一致する。ただ、twistの回転軸が上を向いちゃっているので修正する必要がある。

fig11

こんな事なら位置合わせツール使った方がよかったかなw

とりあえず角度スナップとかONにして

fig13

90度回転して回転軸を円柱の軸にあわせた。

fig12

そしてシミュレーションしてみたのがこれ。円柱の転がり方がイマイチな感じだ。

fig19

これは円柱が地面からちょっと浮いちゃってるせいのようで、地面と接触させるためには円柱を地面に接触するまで落としてやる必要がある。そこでコンストレイントの垂直方向の拘束を外して垂直方向には自由に上下できるようにしてみた。

fig17

移動方向の拘束は「Translation Limits」ロールアウトにあり、Z軸をFreeに設定した。  

fig16

今度は円柱が地面に沿って転がっているのがわかる。

fig14

これで地面に沿って上下しながら追従する回転軸がBOXに引っ張られ、それによって地面との摩擦で転がる車輪が出来た。同じ作業を残りの3つの円柱にも行ってやったのが下のGIFアニメだ。コンストレイントのアイコンがちょっと大きかったので「General」ロールアウトの「Icon Size」を変更して調整し、さらに車輪の側面に見えるようにX軸方向にちょっと移動させた。

fig15

さらにMassFXの「World Parameter」パネルの「Scene Settings」ロールアウトの「Use Ground Collisions」をOFFにしてかわりにでこぼこの地面を配置すれば、こんな感じで車輪が地面の凹凸に上下方向の運動で追従するのがわかる。

fig18

以上のようにコンストレイントは親→子の順にリジッドボディを選択してからコンストレイントの作成ボタンを押せば簡単に設定できる。コンストレイントオブジェクトは最初は親側の位置に子側の方向を向いた状態で作成されるけど、基本的に下のようにコンストレイントの本体があって、そこから2本の腕が伸びでコンストレイントされているリジッドオブジェクトの基点に繋がっている形になっている。

fig22

fig20そしてこのコンストレイントオブジェクトのローカル座標に対してX、Y、Z方向に完全に拘束したり、ある範囲の移動を許したり、完全に自由にしたりと言った事が「TranslationLimits」のロールアウトによって設定出来るようになっている。

fig21同様にコンストレイントオブジェクトのローカル軸回りの回転についても完全に拘束したり、ある範囲の回転を許したり、完全に自由にしたりが「Swing & Twist Limits」ロールアウトの設定で出来るようになっている。

Lockedが完全拘束で、Limitedがある範囲の自由度を持たせた拘束で、Freeが完全に自由になる設定だ。

これらの設定によってアイコンの絵が変化する。

例えばTwistがFreeになっている場合はアイコンがこのようになり、

fig23

Limitの場合は回転範囲の扇形になる。

fig24

移動をLimitにするとこのような移動範囲の軸も表示される。

fig25

いろいろな設定が組み合わさると円弧も立体的になってくる。

fig26

次回は各パラメータの詳細を調べてみたい。それではまた次回。

今回使ったサンプルシーンはアップしておいたよ。

maxまとめページ



take_z_ultima at 11:30│Comments(0)TrackBack(0)3ds Max | CG

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 

Archives