動きの付け方② ユニバーサルジョイント (Bone Constraint)
複雑な回転をするジョイントの動かし方を紹介します。
Bone Constraint を活用した方法です。
準備
細かい作業に適した環境設定にします。
左上の Edit → Preferences を開いて Navigation タブを選択します。
Orbit Method を Trackball にし、Orbit Around Selection にチェック。
右上の × ボタンで閉じます。
3D ビューポート の Transform Orientations を Local 軸にします。
Armatureの作成と設定
まずは動画で流れを確認してください。以下で詳細を紹介していきます。
アニメーション用の骨格 (Armature) を作成します。
説明のため、入力軸側を赤色、出力軸側を青色に塗りました。
入力軸側のパーツを選択し、テンキーの "/" (スラッシュ) ボタンを押します。
選択したパーツだけが表示されるローカルモードになります。
Tab キーを押して Edit モードに入り、
A キーを素早く二回押して選択を解除します。
点選択モードにして、
対角二か所を選択。
Shift + S キーを押して下図のようなメニューを開き、一番下の Cursor to Selected を選択。
すると、選択した二点の中間に3Dカーソルが移動します。
Tab キーを押して Object モードに戻ります。
Shift + A でメニューを開き、Armature を追加。
3Dカーソルの位置に Armature が追加されます。
Armature の詳細情報が表示されるよう設定していきます。
右下の Object Data Property タブの Viewport Display を開き、
Names、Axes、In Front にチェックします。
Bone の xyz軸と名前が表示され、また他のオブジェクトに隠れないようになります。
Boneの作成① 入力軸
Armature を構成する Bone の向きをパーツに合わせて調整していきます。
入力軸側のパーツ (赤) を選択し、Shft + S → Cursor to Selected でジョイントの回転中心に3Dカーソルを移動させます。
Armature を選択し、Tab キーを押して Edit モードに入り、Bone 先端の球を選択。
Shift + S を押し、今度は一番上の Selection to Cursor を選択。
これで Bone の長さ方向 (y軸) が入力軸と一致します。
最後に Bone の z 軸の方向を調整していきます。
まず入力軸側のパーツ (赤) の先端に3Dカーソルを移動させます。
( 頂点を選択して Shft + S → Cursor to Selected )
次に Armature を選択して Edit モードに入り、
Bone の棒の部分を選択。(先端の球でなく)
Armature → Bone Roll → Recalculate Roll → Cursor と選択。
これで Bone の z 軸がジョイントの穴方向に合います。
Boneの作成② 中間の十字パーツ
入力軸側のパーツ (赤) に対して十字パーツ (薄灰) が回転する動きを表現できるよう、二本目の Bone を作成していきます。
一本目の Bone の先端を選択。
E キーを押して二本目の Bone を生やします。適当な方向でOK。
Tab キーを押して Object モードに戻り、テンキーの "/" (スラッシュ) ボタンを押してローカルモードを解除します。
下図のように、中間の十字パーツ (薄灰) の頂点を選択。
Shft + S → Cursor to Selected で3Dカーソルを移動させます。
二本目の Bone 先端の球を選択し、Shft + S → Selection to Cursor で移動させます。
一本目と同様に、二本目の Bone の z 軸の方向を調整していきます。
下図のように、十字パーツ (薄灰) の別軸の頂点を選択。
Shft + S → Cursor to Selected で3Dカーソルを移動。
二本目のボーンを選択し、Armature → Bone Roll → Recalculate Roll → Cursor で z 軸の方向を修正すれば完了です。
Boneの作成③ 出力軸
十字パーツ (薄灰) に対して出力軸側のパーツ (青) が回転する動きを表現できるよう、三本目の Bone を作成していきます。
二本目の Bone の根本を選択。
E キーを押して三本目の Bone を生やします。適当な方向でOK。
都合よく 3D カーソルが十字パーツ (薄灰) の頂点にあるので、そのまま Shift + S → Selection to Cursor で移動させます。
最後に Bone の z 軸を出力軸の方向に揃えていきます。
下図のように、出力軸に沿った方向のどこかの点に3Dカーソルを移動させ、
Armature → Bone Roll → Recalculate Roll → Cursor で z 軸の方向を修正すれば完了です。
親子関係の確認
三本の Bone が入力軸から出力軸まで正しい順番で繋がっているか確認します。
右上の Outliner を確認し、Bone → Bone.001 → Bone.002 の順に段が深くなっていればOKです。
下図のように親子関係が間違っていれば修正します。
Bone.002 が Bone の子になっている
修正は Shift キーを押しながら 子→親 の順に選択し、 Ctrl + P → Keep Offset を選択します。
Boneとパーツの紐づけ
※動画と画像で Bone が緑色なのは無視してください。
※説明する順番を変更したためです。
Armature の各 Bone にパーツが連動して動くように設定していきます。
入力軸側のパーツ (赤) を選択し、Shift キーを押しながら Bone も選択し、
Ctrl + P → Bone で紐づけます。
同様に、
十字パーツ (薄灰) は Bone.001、
出力軸側のパーツ (青) は Bone.002 に紐づけます。
Bone Constraintの設定
三本の Bone がジョイントの動きを再現できるよう、回転に制限をかけていきます。
出力軸の中心に3Dカーソルを移動させます。
Object モードに戻り、
Shift + A → Empty → Plain Axes を追加します。
Armature を選択し、Pose モードに入ります。
Bone.002 を選択して Bone Constraint Propertiesタブを開き、
Add Bone Constraint → Locked Track を追加。
Target は先ほど追加した Empty、To は Z、Lock は Y を選択。
※"Y" 軸の方向は固定して、つまりY軸回転のみで Bone.002 の "Z" 軸の方向を Target の方向に向けるという制約になる
Bone.002 の色が薄緑になります。
続いて同じ操作を Bone.001 にも行います。
To が X なこと以外は同じです。
Bone.001 の色も薄緑になります。
完成
一本目の Bone をY軸で回転させればジョイント全体が動くはずです。
Target に設定した Empty を動かせば出力軸の角度も自由自在に動かせます。
おまけ
参考にしたチュートリアル動画です。
このように一直線な姿勢で原点に配置されていれば少し簡単になります。
Armature を使わない方法も。
この記事が気に入ったらサポートをしてみませんか?