【MAYA】基本、アニメーションの幅が広がる、エイムコンストレインについて。

アニメーション
アニメーションの拘束関係、エイムコンストレインについて書いてみました。動く物を見つめる目などに使える便利なコンストレインですね。ただオプションが色々あって、分かりづらいなと思うので、その辺りがんばって整理してみました。

【MAYA】基本、アニメーションの幅が広がる、エイムコンストレインについて。

エイムコンストレインは複数のオブジェクトの拘束関係です。”かける方”が移動すると”かけられた方”は”かける方”を追いかけるようにその角度を変えます。(見つめているような状態。)

コンストレインする時は、まず”かける方”を先に選んで”かけられる方”を後に選んで、Constrain→aimを選びます。
この時、aimの横の□をクリックすると、オプションが表示されます。

自分でも後で振り返る時にわからないと困るので(笑)例も合わせて記入しておこうと思います。茶色のテキスト色で記入しようと思います。Cube、Pyramid、Cylinderを配置したシーンを作りました。
aim6

Aim Constrain オプションについて。

Maintain offset

これをクリックするとコンストレインを書ける前の状態で空間や回転の関係が維持されます。このチェックを外して、各XYZに数値を入力すると、この数値は角度になるので、指定した角度でaimコンストレインされます。

Cubeをかける方、Pyramidをかけられる方とすると、Pyramidは指定された方向を常にCubeに向けます。簡単ではありますがaim vectorとmaintain offset はどちらが優先されるかテストしてみたのですが 「maintain offset >Aim vector>maintain offsetのチェックを外して数値入力」 の順番のような気がしているものの、一例しかテストしてないのではっきり言えない状況です。すみません。

aim vector

”かけられる方”が”かける方”に対して向ける方向を指定します。ここで入力した(指定した)方向が常に”かける方”を向きます。

ここでPyramidがCubeに対して向ける方向を指定します。(X,Y,Z)=(0,1,0)と入力するとPyramidのローカルY方向がCubeの方を向きます。

up vector

”かけられる方”が”かける方”にaim vectorを向けつつ、さらに空間で上とされる方向を指定します。(上はデフォルトではY方向ですが、上の方向は指定できます。)

Pyramid がCubeにAim vectorを向けつつ、さらに空間で上を向ける方向を指定します。(X,Y,Z)=(0,0,1)と入力するとPyramidのY方向は常にCubeの方を向きますが、Z方向は上を向きます。

World up type

ここでは空間の上がどこになるのか、指定します。
Scene up
シーンの上が”上”となります。

aim3
Object up
指定したオブジェクトが”上”となります。オブジェクトの指定はWorld up objectにオブジェクトの名前を入力します。(大文字小文字を区別するので注意が必要です。)
たとえばここでCylinderをWorld up objectに入力してオブジェクト指定します。すると、PyramidのAim VectorであるY方向は常にCubeを向きますが、up Vectorは常にCylinderの方向を向きます。cylinderが移動するとそれにあわせてUp Vectorも回転します。aim7
 
Object rotation up
Object upと同様指定したオブジェクトが上になり、オブジェクトの指定はWorld up objectにオブジェクトの名前を入力しますが、この場合はオブジェクトが回転するとそれに合わせて”かけられた方”のup vectorも回転するというものになります。オブジェクトが移動しても、up vectorは反応しませんが、回転すると一緒に回転します。
CylinderをWorld up object入力してオブジェクト指定します。すると、PyramidのAim VectorであるY方向は常にCubeを向きますが、up Vectorは常にCylinderの方向を向きます。シリンダーが回転するとそれにあわせてUp Vectorも回転します。aim1
Vector
これは上を数値していするモードで、world up vectorに up vectorの向く方向を自分で数値入力して決めます。
aim2 up vectorの向く方向は入力する数値によってはきちんと反映されないことがあるようです。aim vectorなどの兼ねあいから決まるのだと思います。
None
Noneは指定しないということらしいですが、ほとんど使わないそうです。

まとめ

エイムコンストレインは”かける方”が移動すると”かけられた方”は”かける方”を追いかけるように指定した角度を変えます。(”かけられる方”が”かける方”を見つめているような状態)
かける時は、まず”かける方”を先に選んで”かけられる方”を後に選んで、Constrain→aimを選びます。
 
Maintain offset・・・チェックを入れるとコンストレインを書ける前の状態で空間や回転の関係が維持されます。外して角度を指定することもできます。
aim vector・・・”かけられる方”が”かける方”に対して向ける方向になります。
up vector・・・”かけられる方”が”かける方”にaim vectorを向けつつ、さらに空間で上を向ける方向を指定します。上は様々に指定することができます。
エイムコンストレインは猫がうごくおもちゃをおいかけるシーンや、手の甲と手のひらをひっくり返すときなど、腕の回転が手の回転についてきますが(逆も言えますが)、そんな時などに有効ですね!

コメント

タイトルとURLをコピーしました