見出し画像

動きの付け方② ユニバーサルジョイント (Bone Constraint)

複雑な回転をするジョイントの動かし方を紹介します。
Bone Constraint を活用した方法です。

準備

細かい作業に適した環境設定にします。

左上の Edit → Preferences を開いて Navigation タブを選択します。
Orbit Method を Trackball にし、Orbit Around Selection にチェック。
右上の × ボタンで閉じます。

画像2

3D ビューポート の Transform Orientations を Local 軸にします。

画像3

Armatureの作成と設定

まずは動画で流れを確認してください。以下で詳細を紹介していきます。


アニメーション用の骨格 (Armature) を作成します。

説明のため、入力軸側を赤色、出力軸側を青色に塗りました。

画像4

入力軸側のパーツを選択し、テンキーの "/" (スラッシュ) ボタンを押します。
選択したパーツだけが表示されるローカルモードになります。

画像5

Tab キーを押して Edit モードに入り、
A キーを素早く二回押して選択を解除します。

画像6

画像7

点選択モードにして、

画像8

対角二か所を選択。

画像9

Shift + S キーを押して下図のようなメニューを開き、一番下の Cursor to Selected を選択。

画像10

すると、選択した二点の中間に3Dカーソルが移動します。

画像11

Tab キーを押して Object モードに戻ります。

画像12

Shift + A でメニューを開き、Armature を追加。

画像13

3Dカーソルの位置に Armature が追加されます。

画像14

Armature の詳細情報が表示されるよう設定していきます。
右下の Object Data Property タブの Viewport Display を開き、
Names、Axes、In Front にチェックします。

画像16

Bone の xyz軸と名前が表示され、また他のオブジェクトに隠れないようになります。

画像16

Boneの作成① 入力軸


Armature を構成する Bone の向きをパーツに合わせて調整していきます。

入力軸側のパーツ (赤) を選択し、Shft + S → Cursor to Selected でジョイントの回転中心に3Dカーソルを移動させます。

画像17

Armature を選択し、Tab キーを押して Edit モードに入り、Bone 先端の球を選択。

画像20

Shift + S を押し、今度は一番上の Selection to Cursor を選択。

画像19

これで Bone の長さ方向 (y軸) が入力軸と一致します。

画像20

最後に Bone の z 軸の方向を調整していきます。
まず入力軸側のパーツ (赤) の先端に3Dカーソルを移動させます。
( 頂点を選択して Shft + S → Cursor to Selected )

画像21

次に Armature を選択して Edit モードに入り、
Bone の棒の部分を選択。(先端の球でなく)

画像23

Armature → Bone Roll → Recalculate Roll → Cursor と選択。

画像23

これで Bone の z 軸がジョイントの穴方向に合います。

画像24

Boneの作成② 中間の十字パーツ


入力軸側のパーツ (赤) に対して十字パーツ (薄灰) が回転する動きを表現できるよう、二本目の Bone を作成していきます。

一本目の Bone の先端を選択。

画像25

E キーを押して二本目の Bone を生やします。適当な方向でOK。

画像26

Tab キーを押して Object モードに戻り、テンキーの "/" (スラッシュ) ボタンを押してローカルモードを解除します。

画像27

下図のように、中間の十字パーツ (薄灰) の頂点を選択。
Shft + S → Cursor to Selected で3Dカーソルを移動させます。

画像28

画像29

二本目の Bone 先端の球を選択し、Shft + S → Selection to Cursor で移動させます。

画像30

一本目と同様に、二本目の Bone の z 軸の方向を調整していきます。

下図のように、十字パーツ (薄灰) の別軸の頂点を選択。
Shft + S → Cursor to Selected で3Dカーソルを移動。

画像31

二本目のボーンを選択し、Armature → Bone Roll → Recalculate Roll → Cursor で z 軸の方向を修正すれば完了です。

画像32

Boneの作成③ 出力軸


十字パーツ (薄灰) に対して出力軸側のパーツ (青) が回転する動きを表現できるよう、三本目の Bone を作成していきます。

二本目の Bone の根本を選択。
E キーを押して三本目の Bone を生やします。適当な方向でOK。

画像33

都合よく 3D カーソルが十字パーツ (薄灰) の頂点にあるので、そのまま Shift + S → Selection to Cursor で移動させます。

画像34

最後に Bone の z 軸を出力軸の方向に揃えていきます。

下図のように、出力軸に沿った方向のどこかの点に3Dカーソルを移動させ、
Armature → Bone Roll → Recalculate Roll → Cursor で z 軸の方向を修正すれば完了です。

画像35

画像37

親子関係の確認

三本の Bone が入力軸から出力軸まで正しい順番で繋がっているか確認します。

右上の Outliner を確認し、Bone → Bone.001 → Bone.002 の順に段が深くなっていればOKです。

画像38

下図のように親子関係が間違っていれば修正します。

画像37

Bone.002 が Bone の子になっている

修正は Shift キーを押しながら 子→親 の順に選択し、 Ctrl + P → Keep Offset を選択します。

Boneとパーツの紐づけ

※動画と画像で Bone が緑色なのは無視してください。
※説明する順番を変更したためです。

Armature の各 Bone にパーツが連動して動くように設定していきます。

入力軸側のパーツ (赤) を選択し、Shift キーを押しながら Bone も選択し、
Ctrl + P → Bone で紐づけます。

画像47

画像48

同様に、
十字パーツ (薄灰) は Bone.001、
出力軸側のパーツ (青) は Bone.002 に紐づけます。

Bone Constraintの設定

三本の Bone がジョイントの動きを再現できるよう、回転に制限をかけていきます。

出力軸の中心に3Dカーソルを移動させます。

画像37

Object モードに戻り、
Shift + A → Empty → Plain Axes を追加します。

画像39

画像40

Armature を選択し、Pose モードに入ります。

画像41

Bone.002 を選択して Bone Constraint Propertiesタブを開き、
Add Bone Constraint → Locked Track を追加。

画像42

Target は先ほど追加した Empty、To は Z、Lock は Y を選択。

画像43

※"Y" 軸の方向は固定して、つまりY軸回転のみで Bone.002 の "Z" 軸の方向を Target の方向に向けるという制約になる

Bone.002 の色が薄緑になります。

画像44

続いて同じ操作を Bone.001 にも行います。
To が X なこと以外は同じです。

画像45

Bone.001 の色も薄緑になります。

画像46

完成

一本目の Bone をY軸で回転させればジョイント全体が動くはずです。
Target に設定した Empty を動かせば出力軸の角度も自由自在に動かせます。


おまけ

参考にしたチュートリアル動画です。
このように一直線な姿勢で原点に配置されていれば少し簡単になります。

Armature を使わない方法も。


この記事が気に入ったらサポートをしてみませんか?