
アニメーションⅠ・Ⅱ(アニメーションセットアップ)
■第14回目(後期)
●ギミックのリギング
●ピボットポイントの設定
ロボットなどの間接部分には、回転軸が必要である。そのためにピボットポイントの設定が重要になる。
ピボットポイントの配置を考えながらモデリング作業を進める必要がある。


●ギミックのリギング
ロケータを回転軸の中心に配置する。これは直接、ピボットポイントを配置する場合でも同じである。
まずは、回転軸の中心には、十字ラインのエッジが必要になる。
スナップポイント(Vキー)で、どちらかの軸の十字の頂点にスナップする。(マニピュレータの中心)

もう1つの軸だけに合わせるために、マニピュレータの1つを選択して、黄色表示にする。(アクティブになる)

そろえたいエッジラインの任意の頂点の上をVキ ーを押しながら、中ボタンドラッグすると、その方向のみスナップする。
これで十字ラインの回転軸に中心にロケータ(ピボットポイント)を配置することができる。
●マジックハンドのリギング(1)

オモチャのマジックハンド、電車のパンタグラフのような動く仕組みを作成する。方法はいろいろある。


ディスプレイレイヤで「L_arm_layer」は非表示にする。


R_arm02とR_Arm03のピボットポイントを、それぞれのオブジェクトのlocator_endに移動する。([Ctrl]+[V])
R_arm01のピボットポイントは、そのままオブジェクトの中心にする。


R_arm01のlocator_top⇒R_arm02の順に選択して、[コンストレイント]>[ポイント]□(オプション)を選択する。

R_arm01のlocator_topとR_arm02のピボットポイントの位置は違うので、「オフセットの保持」をオンにして実行する。

R_arm02のlocator_top⇒R_arm03の順に選択して、[コンストレイント]>[ポイント]を実行する。([G]キーで繰り返し)


R_arm02とR_arm03は、独立して、ポイントコンストレイントのノードがペアレントされている。
R_arm01とR_arm02を回転すると、下のオブジェクトは回転しないで、移動だけ追従するようになる。

アニメーションメニューセットから、[キー]>[ドリブンキーの設定]>[設定]□を選択する。


R_arm01を選択して「ドライバのロード」ボタンをクリックする。
R_arm02とR_arm03を選択して「ドリブンのロード」ボタンをクリックする。


ドライバの「回転Y」、ドリブンのR_arm02とR_arm03を選択し、さらに「回転Y」を選択して、「キー」ボタンをクリックする。
R_arm02とR_arm03の回転Yにドリブンキーのキーが設定された。



ドライバのR_arm01の回転Yに「-50」を入力する。
ドリブンのR_arm02の回転Yに「50」、R_arm03の回転Yに「-50」を入力する。


R_arm02の回転Yは、R_arm01の回転Yに「-1」をかけた値になる。
R_arm03の回転Yは、R_arm01の回転Yと同じ値になる。
ドリブンのR_arm02とR_arm03を選択して、キーを実行する。

これで、R_arm01を回転すると、連動してR_arm02とR_arm03は伸びるようになったが、
それぞれの中心がZ軸から微妙にズレてしまう。これは、ドリブンキーの加速・減速が働いているためである。

[ウィンドウ]>[アニメーションエディタ]>[グラフグラフエディタ]を選択する。

アニメーションカーブが曲線になっているので、加速・減速しているのが分かる。

接線の設定を「スプライン」または「リニア」に設定して、アニメーションカーブを直線に変更する。


ディスプレイレイヤで、「R_arm_layer」を非表示にして、「L_arm_layer」を表示にする。


L_arm02とL_arm03のピボットポイントを移動して、接合部分で回転するようにする。

R_armと同じように、ロケータがオブジェクトをポイントコンストレイントで移動する設定を行う。

L_arm01を選択して「ドライバのロード」ボタンをクリックする。
L_arm02とL_arm03を選択して「ドリブンのロード」ボタンをクリックする。
ドライバの「回転Y」、ドリブンのL_arm02とL_arm03を選択し、さらに「回転Y」を選択して、「キー」ボタンをクリックする。
L_arm02とL_arm03の回転Yにドリブンキーのキーが設定された。



ドライバのL_arm01の回転Yに「50」を入力する。
ドリブンのL_arm02の回転Yに「-50」、L_arm03の回転Yに「50」を入力する。

L_arm02の回転Yは、L_arm01の回転Yに「-1」をかけた値になる。
L_arm03の回転Yは、L_arm01の回転Yと同じ値になる。
ドリブンのL_arm02とL_arm03を選択して、キーを実行する。

グラフエディタで、接線の設定を「スプライン」または「リニア」に設定して、アニメーションカーブを直線に変更する。


[作成]>[カーブツール]>[CVカーブツール]で、コントローラを作成する。
[修正]>[中央にピボットポイントを移動]を実行する。


[作成]>[NURBSプリミティブ]>[円]を選択して、移動、回転、スケールを調整する。
オブジェクト名を「arm_Ctrl」と「all_Ctrl」に変更して、[修正]>[トランスフォームのフリーズ]を実行する。

ドライバに、arm_Ctrlをロードして、「移動Z」を選択する。
ドリブンにL_arm01とR_arm01をロードして、「回転Y」を選択する。

ドリブンキーを設定して、コントローラとL_arm01とR_arm01が連動する仕組みを設定する。

グラフエディタで、接線の設定を「スプライン」または「リニア」に設定して、アニメーションカーブを直線に変更する。


6つのオブジェクト(L_arm01~03、R_arm01~03)とarm_Ctrlを選択して、最後にall_Ctrlを選択する。
[P]キーでペアレントする。最後に選択したのが親になる。
●マジックハンドのリギング(2)

6つのオブジェクト(L_arm01~03、R_arm01~03)とarm_Ctrlを選択して、グラフエディタを起動する。
すべてのキーを選択して削除する。これで連動する回転はしない。ポイントコンストレイントは有効のままになっている。

[ウィンドウ]>[アニメーションエディタ]>[エクスプレッションエディタ]を選択する。

エクスプレッションとは、時間の経過に伴ってアトリビュートを制御するための命令。
アトリビュートとは、スケール X (Scale X)、移動 Y (Translate Y)、可視性(visibility)などの オブジェクトの特性になる。
エクスプレッションの別の目的は、1 つのアトリビュートを変更することによって他のアトリビュートの動作を制御すること。
たとえば、自動車の前進または後退に合わせてタイヤを回転させることができる。
エクスプレッションは通常、わずか数行の単純な式で作成できる。

エクスプレッションの入力欄に入力する。
R_arm02.ry=R_arm01.ry*-1;
R_arm03.ry=R_arm01.ry*;
※[Ctrl]キーを押しながら、マウスのホイールを回転すると、表示を拡大・縮小することができる。
「ry」⇒rototeY(回転Y)の略。移動X(translateX)⇒tx、スケールZ(scaleZ))⇒sz

「作成」ボタンをクリックする。R_arm01を回転して確認する。

L側のエクスプレッションを作成する。
エクスプレッションの[フィルタの選択]から[エクスプレッション名]をオンにする。

作成したエクスプレッションが表示される。この場合は、略さない形式で表示される。
入力した式をドラッグして選択して、[Ctrl]+[c]でコピーする。

3行目に[Ctrl]+[V]でペーストする。4ヶ所の「R」を「L」に変更する。

式を変更した場合は、[編集]ボタンをクリックする。

あとは、(1)と同じように、コントローラとドリブンキーで連動するように設定する。
●マジックハンドのリギング(3)

リギングメニューセットから[スケルトン]>[ジョイントを作成]を選択する。

スナップポイント([Ctrl]+[D]キー)で、ジョイントを作成する。
R_arm01のlocator_mid⇒joint1
R_arm01のlocator_top⇒joint2
R_arm03のlocator_end⇒joint3
R_arm03のlocator_mid⇒joint4

「ジョイントのX線表示」をオンにして、frontビュー、sideビューで、ジョイントが1平面上に配置されているのを確認する。

ジョイントを作成することで、階層構造、ピボットポイントの配置は完了する。


ジョイントを作成したが、関節部分(ジョイント部分)は変形しないので、バインドする必要はない。
ジョイント⇒オブジェクトの順に選択して、[コンストレイント]>[ペアレント]を実行する。
joint1⇒R_arm01
joint2⇒R_arm02
Joint3⇒R_arm03


ジョイントを選択して、回転して確認する。


ジョイントによって、階層構造とピボットポイントは設定された。
ペアレントコンストレイントによってオブジェクトとの関連付けもされたので、
(1)のドリブンキー、または(2)のエクスプレッションによる制御も可能である。



IKハンドルを使用する方法を紹介する。
[スケルトン]>[IKハンドルの作成]□(オプション)を選択する。
「現在のソルバ」は「回転プレーンソルバ」でも「シングルチェーンソルバ」でも構わない。
joint1とjoint4をクリックして、IKハンドルを作成する。
IKハンドルを移動すると、アームが伸び縮みする。





ディスプレイレイヤを切り替えて、L_armのジョイントを作成する。
L_arm01のlocator_mid⇒joint5
L_arm01のlocator_top⇒joint6
L_arm03のlocator_end⇒joint7
L_arm03のlocator_mid⇒joint8
frontビュー、sideビューで、ジョイントが1平面上に配置されているのを確認する。
ジョイント⇒オブジェクトの順に選択して、[コンスト レイント]>[ペアレント]を実行する。
joint5⇒L_arm01
joint6⇒L_arm02
Joint7⇒L_arm03
joint5とjoint7をクリックして、IKハンドルを作成する。
IKハンドルを移動すると、アームが伸び縮みする。






ikHandle1とikHandle2を移動すると、すべてのアームが伸び縮みする。


(1)と(2)と同じように、ドリブンキーでコントローラとIKハンドルを連動する。
ドリブンキーの自動接線(加速・減速)をスプライン(等速)に設定する。
アームのオブジェクトはジョイントによって制御させているので、ジョイントとIKハンドルを「all_Ctrl」にペアレントする。