top of page
■第14回目(後期)
●ギミックのリギング

​●ピボットポイントの設定

ロボットなどの間接部分には、回転軸が必要である。そのためにピボットポイントの設定が重要になる。
​ピボットポイントの配置を考えながらモデリング作業を進める必要がある。

●ギミックのリギング

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

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

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

●マジックハンドのリギング(1)
mj00.jpg

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

mj01.jpg
mj02.jpg

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

mj03.jpg
mj04.jpg

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

R_arm01のピボットポイントは、そのままオブジェクトの中心にする。

mj07.jpg
mj08.jpg

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

mj09.jpg

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

mj10.jpg

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

mj11.jpg
mj12.jpg

​R_arm02とR_arm03は、独立して、ポイントコンストレイントのノードがペアレントされている。

​R_arm01とR_arm02を回転すると、下のオブジェクトは回転しないで、移動だけ追従するようになる。

mj13.jpg

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

mj14.jpg
mj15.jpg

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

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

mj16.jpg
mj17.jpg

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

R_arm02とR_arm03の回転Yにドリブンキーのキーが設定された。

mj19.jpg
mj20.jpg
mj21.jpg

​ドライバのR_arm01の回転Yに「-50」を入力する。

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

mj18.jpg
mj15.jpg

​R_arm02の回転Yは、R_arm01の回転Yに「-1」をかけた値になる。

R_arm03の回転Yは、R_arm01の回転Yと同じ値になる。

​ドリブンのR_arm02とR_arm03を選択して、キーを実行する。

mj22.jpg

これで、R_arm01を回転すると、連動してR_arm02とR_arm03は伸びるようになったが、

​それぞれの中心がZ軸から微妙にズレてしまう。これは、ドリブンキーの加速・減速が働いているためである。

mj23.jpg

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

mj24.jpg

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

mj25.jpg

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

mj48.jpg
mj26.jpg

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

mj27.jpg
mj49.jpg

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

mj28.jpg

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

mj29.jpg

L_arm01を選択して「ドライバのロード」ボタンをクリックする。

L_arm02とL_arm03を選択して「ドリブンのロード」ボタンをクリックする。

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

L_arm02とL_arm03の回転Yにドリブンキーのキーが設定された。

mj30.jpg
mj31.jpg
mj32.jpg

​ドライバのL_arm01の回転Yに「50」を入力する。

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

mj50.jpg

​L_arm02の回転Yは、L_arm01の回転Yに「-1」をかけた値になる。

L_arm03の回転Yは、L_arm01の回転Yと同じ値になる。

​ドリブンのL_arm02とL_arm03を選択して、キーを実行する。

mj33.jpg

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

mj34.jpg
mj35.jpg

[作成]>[カーブツール]>[CVカーブツール]で、コントローラを作成する。

​[修正]>[中央にピボットポイントを移動]を実行する。

mj36.jpg
ma91.jpg

[作成]>[NURBSプリミティブ]>[円]を選択して、移動、回転、スケールを調整する。

​オブジェクト名を「arm_Ctrl」と「all_Ctrl」に変更して、[修正]>[トランスフォームのフリーズ]を実行する。

mj37.jpg

ドライバに、arm_Ctrlをロードして、「移動Z」を選択する。

ドリブンにL_arm01とR_arm01をロードして、「回転Y」を選択する。

mj38.jpg

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

mj39.jpg

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

mj40.jpg
mj41.jpg

6つのオブジェクト(L_arm01~03、R_arm01~03)とarm_Ctrlを選択して、最後にall_Ctrlを選択する。

​[P]キーでペアレントする。最後に選択したのが親になる。

●マジックハンドのリギング(2)
mj45.jpg

6つのオブジェクト(L_arm01~03、R_arm01~03)とarm_Ctrlを選択して、グラフエディタを起動する。

​すべてのキーを選択して削除する。これで連動する回転はしない。ポイントコンストレイントは有効のままになっている。

mj42.jpg

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

mj43.jpg

エクスプレッションとは、時間の経過に伴ってアトリビュートを制御するための命令。

アトリビュートとは、スケール X (Scale X)、移動 Y (Translate Y)、可視性(visibility)などのオブジェクトの特性になる。

エクスプレッションの別の目的は、1 つのアトリビュートを変更することによって他のアトリビュートの動作を制御すること。

たとえば、自動車の前進または後退に合わせてタイヤを回転させることができる。

エクスプレッションは通常、わずか数行の単純な式で作成できる。

mj44.jpg

エクスプレッションの入力欄に入力する。

R_arm02.ry=R_arm01.ry*-1;

R_arm03.ry=R_arm01.ry*;

​※[Ctrl]キーを押しながら、マウスのホイールを回転すると、表示を拡大・縮小することができる。

「ry」⇒rototeY(回転Y)の略。移動X(translateX)⇒tx、スケールZ(scaleZ))⇒sz

mj22.jpg

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

mj46.jpg

L側のエクスプレッションを作成する。

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

mj52.jpg

作成したエクスプレッションが表示される。この場合は、略さない形式で表示される。

入力した式をドラッグして選択して、[Ctrl]+[c]でコピーする。

mj53.jpg

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

mj54.jpg

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

mj38.jpg

​あとは、(1)と同じように、コントローラとドリブンキーで連動するように設定する。

●マジックハンドのリギング(3)
mj56.jpg

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

mj55.jpg

スナップポイント([Ctrl]+[D]キー)で、ジョイントを作成する。

R_arm01のlocator_mid⇒joint1

R_arm01のlocator_top⇒joint2

R_arm03のlocator_end⇒joint3

​R_arm03のlocator_mid⇒joint4

mj57.jpg

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

mj58.jpg

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

mj64.jpg
mj65.jpg

ジョイントを作成したが、関節部分(ジョイント部分)は変形しないので、バインドする必要はない。

ジョイント⇒オブジェクトの順に選択して、[コンストレイント]>[ペアレント]を実行する。

joint1⇒R_arm01

joint2⇒R_arm02

Joint3⇒R_arm03

mj66.jpg
mj67.jpg

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

mj59.jpg
mj60.jpg

ジョイントによって、階層構造とピボットポイントは設定された。

ペアレントコンストレイントによってオブジェクトとの関連付けもされたので、

(1)のドリブンキー、または(2)のエクスプレッションによる制御も可能である。

mj61.jpg
mj62.jpg
mj63.jpg

IKハンドルを使用する方法を紹介する。

[スケルトン]>[IKハンドルの作成]□(オプション)を選択する。

​「現在のソルバ」は「回転プレーンソルバ」でも「シングルチェーンソルバ」でも構わない。

joint1とjoint4をクリックして、IKハンドルを作成する。

​IKハンドルを移動すると、アームが伸び縮みする。

mj68.jpg
mj69.jpg
mj70.jpg
mj71.jpg
mj72.jpg

ディスプレイレイヤを切り替えて、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ハンドルを移動すると、アームが伸び縮みする。

mj73.jpg
mj74.jpg
mj75.jpg
mj76.jpg
mj77.jpg
mj78.jpg

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

mj79.jpg
mj80.jpg

(1)と(2)と同じように、ドリブンキーでコントローラとIKハンドルを連動する。

ドリブンキーの自動接線(加速・減速)をスプライン(等速)に設定する。

アームのオブジェクトはジョイントによって制御させているので、ジョイントとIKハンドルを「all_Ctrl」にペアレントする。

© 2020 by Kurita   Japan  Electronics  College  Computer  Graphics  Department

bottom of page