Blender事始め – No.16(Armature③)

対象バージョン:Blender v2.82a

Qちゃん(メッシュデータ)にポーズを付ける

Blender事始め No.14(Armature①)」で作成したQちゃん

Qちゃん

にポーズをとらせていこうと思います。(「リギング」かな?)

ポーズを取らせるには、前回(Armature②)説明したArmatureを使います。

QちゃんのArmatureは、一から作成するのではなく、Blenderに標準で搭載されている人型のArmatureを利用します。

また、説明の中で「Camera」や「Light」がないですが、とりあえず邪魔なので、削除してあるためです。

Human(Meta-Rig)

設置

Qちゃんと関連付けるArmatureをViewportに設置します。

Object Modeにて、[Add]メニューから、[Armature]→[Human(Meta-Rig)]を選択します。

([Armature]の中に[Single Bone]しかない場合は、「Blender事始め No.14(Armature①)」の事前準備を行ってください。)

Qちゃんの足元に小さい人型のArmatureが表示されました。

(Armatureが小さいのではなく、Qちゃんがデカい(12.5m)のですが…)

Outlinerには、このArmatureは「metarig」という名前になっています。「Armature」ではないので留意しておきます。

※「Qchan」はQちゃんのメッシュデータです。名前を変更しています。

Viewの設定

Armatureの編集がしやすい様に、View(見え方)についていくつか設定します。

前面設定

メッシュデータとArmatureが重なってしまうと、Armatureが隠れてしまうため、常に(前面に)表示されるように[In Front]設定を行います。

Armature(metarig)が選択された状態、Propertiesパネルの[Object Properties]タブを開き、[Viewport Display]グループの[In Front]にチェックを入れます。

Qちゃんの足元に隠れていたArmatureの全体が見えるようになりました。

Bone名表示

Human(Meta-Rig)は、Boneの数が非常に多いですが、それぞれのBoneには位置に応じた名前が付けられています。

後々、不要なBoneは削除しますが、必要なBoneまで削除しない様に、区別しやすい様にBone名を表示しておきます。

Propertiesパネルの[Object Data Properties]タブを開き、[Viewport Display]グループの[Names]にチェックを入れます

これで、各Boneの名前が表示されるようになりました。
(Bone間の位置が近いと、名前が重なってしまい見づらいですが…)

大まかなサイズ調整

今のままでは、QちゃんとArmatureの間に大きさに差があり過ぎるので、大まかにサイズを合わせます。

「S」キーを押して、Resizeモードに変更し、Armatureの大きさをQちゃんの大きさに合わせます。

(モズクガニの様だ…)

各Boneの位置・サイズの調整

各Boneの位置・サイズ調整は、Edit Modeで行います。

また、間接位置が分かりやすい様にWireframe表示に変更します(お好みに合わせて)。

後は、Armatureの各関節がQちゃんの各関節位置にあう様に各Boneの位置を合わせていきます。

また、QちゃんとArmatureともにX軸に対して対象の図形なので、片側だけの操作で済む見ように[X Axis Mirror](X軸対称)にチェックを入れておきます。

また、手を構成するBoneや顔を構成するBoneはQちゃんには不要なので、削除します。

ここでは、説明は省きますが、Rigを生成するとき([Generate Rig]の実行時)にエラーにならない様にするためには下記のBoneは残しておきます。
Rigは生成しない場合は、下記の中のBoneも削除しても構いません。

実際のBoneの配置は下記の様に行います。

BoneやそのHead(Tail)の移動はX/Y/Z軸固定で移動するのが良いです。

Boneの削除は、削除したBoneを選択して、[DEL]キーを押し、表示されたダイアログで[Bones]を選択します。

(もちろん、指や顔の細かい部品のあるメッシュデータの場合は、Boneは削除せず、部品に合わせて配置します)

顔の部分の様な複雑な部分のBoneの削除は、間違えて他の部分のBoneを選択してしまわない様に、Outlinerで選択し、Viewportで削除するというような事を繰り返して行っています。

出来るだけ、メッシュデータとArmatureの位置は合わせた方がいいと思いますが、最悪、後述の「Weight Paintモードで不自然さの解消」で修正するので、そこまで神経質にならなくても良いと思います。

メッシュデータとArmatureの関連付け

Armatureの各Boneの位置・サイズ調整が完了したら、Qちゃん(メッシュデータ)とArmatureの関連付けを行います。

① Object Modeにして、Qちゃんを選択した後、Armatureを追加選択する。

メッシュデータが暗いオレンジ、ArmatureがActive(明るいオレンジ)になっている事を確認する。

② [CTRL] + Pキーで[Set Parent To]メニューを表示して、[(Armature Deform) With Automatic Weights]を選択します。

※右クリックの[Object Context Menu]のParentから選択する場合、[(Armature Deform) With Automatic Weights]の位置が、[Set Parent To]メニューと位置(順番)が違うので注意しましょう。

これで関連付け(親子関係、重みづけ)が完了しました。

Pose Modeでの不自然さの確認

Boneを動かして確認

Armature(metarig)とQちゃん(メッシュデータ)の関連付けができたら、Pose Modeにして、各Boneを動作させて、メッシュデータの変形(Vertexの追従)に不自然さがないかを、確認します。

Object ModeでArmature(metarig)を選択して、Pose Modeにして、色々なポーズを取らせてみます。

どう?

Boneを移動(Gキー)や回転(Rキー)で動かす場合は、X/Y/Z軸固定で動かした方が不自然に曲げられると思います。

動かしすぎるとどうしても不自然にはなるので、移動・回転はほどほどにします。

サイズ変更(Sキー)は、通常あまり使う事はないかも…(ルフィのギガントピストルみたいなのには使えるのかな?)

Qちゃんについては、肘や膝を曲げた時や、腕を上げた時に、若干胴体のVertexが引っ張られるのが不自然に感じました。他にも不自然な部分(上腕を動かしたら、首や頭が変形してしまうなど)があれば、修正したいですね。

Armatureを初期値に戻す

Boneを動かしすぎて「訳が分からなくなった」「Undoで初期位置に戻せなくなった」という場合には、下記手順で初期位置に戻します。

※これは、いつでもできるので、ポーズを取らしたまま、次の工程に進んでもいいかと思います。

  • 「A」キーで全選択
  • [Pose]メニューの[Clear Transform]→[All]を選択

Weight Paintモードで不自然さの解消

(以下はRigを用いない場合のみ行ってください。Rigを使うとここで行っている事の意味がなくなってしまうためです)

もし、Boneを移動・回転した時に不自然さがある場合には、Weight Paintモードで、Vertexの重みを変更して、不自然さを解消していきます。

Object Modeに変更してメッシュデータ(Qちゃん)を選択してから、Weight Modeに変更します。

  • 0.0(青)に近づければ、追従しなくなる
  • 1.0(赤)に近づければ、追従する

ポーズをとったままWeight PaintモードでWeightを変更すると、Vertexの追従性を確認しながら作業できますが、ポーズによっては、特定のVertexだけを変更するのが難しくなります。(悩ましい所です)

Auto IKの有効化

さて、ArmatureでQちゃんにポーズを取らせる事が出来るようになりましたが、思ったようなポーズを取らせるのは中々骨が折れます。

例えば、「手をこの位置に持っていきたい!」と思った場合、

upper_arm(上腕)→forearm(前腕)→hand(手)

の様に順番に位置・角度を決めていく必要があります。
(これを、FK(Forward Kinematics)と呼ぶ(と思う))

hand(手)を移動したら、勝手にforearm(前腕)→ upper_arm(上腕)も変形してくれると、ポーズを取りやすいですね。

hand(手)→forearm(前腕)→upper_arm(上腕)

(これを、IK(Inverse Kinematics)と呼ぶ(と思う))

Armatureを自分で構築した場合は、このIKの様な機能を実現したい場合は、自分で設定する必要がありますが、今回使用した[Human(Meta-Rig)]にはその設定が既にされています。

ただし、デフォルトではIK機能は有効になっていないので、下記手順で有効化します。

【修正】(すみません、間違えていました。[Auto IK]はHuman(Meta-Rig)でなくても有効になる機能でしたm(_ _)m)

各BoneのHeadとTailが接続されている部分については、IKを利用する事が出来ます。

ただし、デフォルトでは有効にはなっていないため、下記手順で有効化します。

  • Pose Modeに変更
  • サイドバーを開き、[Tool]タブを選択
  • [Pose Options]の中の[Auto IK]にチェックを入れる

Auto IKを有効にする事により、手の位置の移動が格段に楽になります。

IKでの関節の曲がり方の調整

不自然な関節の曲がり方

Auto IKで手の位置を自由な場所に持っていけるようになりましたが、たまに、間接があらぬ方向に曲がってしまうう場合があります。

ぐぎっ…

Blender本家のYoutubeのTutorialを見ていると、やたらテクニカルな方法が紹介されていますが、ここではお手軽な方法を紹介します。

BoneのAxes(座標軸)の表示

関節の曲がる方向を制限する前に、各Boneのローカル座標のAxes(座標軸)を表示します。

Propertiesパネルの[Object Data Properties]タブを開き、[Viewport Display]内の[Axes]にチェックを入れます。

各BoneのTail(先端)にXYZの座標軸が表示されるようになりました。

※Wireframe表示にすれば、Bone内の座標軸が透けて見えるようになります。

各BoneのLock IK設定

forearm(前腕)を例にとってみます。

通常、手のひらを下にして両手を広げた時、X軸周りに回転し、Z軸周りやY軸周りには回転しません。(関節が柔らかい人は別ですが)

そのため、Y軸、Z軸周りの回転をしない様に制限したいと思います。

Armatureの位置をリセットした後、forearm_Lを選択します。

Propertiesパネルの[Bone Properties]タブを開き、[Inverse Kinematics]内のLock IK項目のY、Zの鍵マークのトグルボタンをクリックして、鍵が掛かった状態にします。

手の位置を優先した不自然な曲がり方はなくなりましたが、間接が逆方向に曲がってしまう場合があります。

たまに、曲がる人もいますが…

各Boneの回転範囲設定

前腕の設定を続けます。

Armatureの位置をリセットした後、forearm_Lを選択します。

Propertiesパネルの[Bone Properties]タブを開き、[Inverse Kinematics]内のLimit Xにチェックをいれ、Minを0°、Maxを180°に設定します。

Viewportを見ると、X軸周りの回転範囲が、赤い弧で表示されています。

これで、逆関節にもならない様になりました。

曲がらんぞ!

補足

不自然な曲がり方をする各BoneにLock IK設定、回転範囲設定を行います。

これで、間接はおかしな曲がり方をしないかというと、少し違います。

Lock IK設定や回転範囲設定は、あくまで、IK(Inverse Kinematics)時の設定ですので、各Boneの移動や回転自体に制限をかける訳ではないので、自由な方向に関節は曲げられてしまいます。

範囲超えても曲げられます

IKを使えば、また、制限が復活しますので、これは、このままにしておきます。

ポーズの保存

ポーズの作成

FK、IKでQちゃんにポーズを取らせることが出来るようになりました。

わーい

自分は、この時思いました。

「Armatureの初期化は出来るけど、ポーズは毎回、初期状態から作成しないといけないの?」

「せっかく、なかなかいいポーズが出来たんだけど、もう一回作れる自信がない…」

まぁ、そんな心配は不要なのですが、知らないと困ってしまいます。

作成したポーズの追加

保存したいポーズが出来たら、下記手順で保存を行います。

  • 「A」キーを押して全選択
  • [Pose]メニューの[Pose Library]の[Add New]を選択
    (ショートカット:[SHIFT] + L)
  • Adjust Last Operaton(PoseLib Add Pose)パネルのPose Nameを更新

ポーズを作成したら、同様にポーズを追加しておきます。

また、Armatureの初期位置もポーズの一つに追加しておいても良いと思います。

ポーズの読み出し

ポーズを追加(保存)しても、読みだせなければ意味がありません。

ポーズの読み出し手順は下記となります。

[Pose]メニューの[Pose Library]の[Browse Poses]を選択
(ショートカット:[CTRL] + L)

パッと見、何も変わらないと思うかも知れませんが、ポーズ表示モードになっています。

マウスのホイールの回転や、方向キー(↑↓←→)でポーズを切り替え、マウス左ボタンクリック、もしくは[ENTER]キーで確定します。

※当然ですが、ファイルに保存しなければ、追加したポーズも消えてしまいますので、ファイル保存は忘れずにしましょう。


さて、今回はBlenderのHuman(Meta-Rig)のArmatureを使って、Qちゃんにポーズを取らせました。

ポーズを取らせる方法として、Human(Meta-Rig)から、Rig(リグ)を作成する方法もあります。

リグを使った場合、しゃがんだりするポーズが楽にできたり、顔の表情(目の動き)などが簡単に操作できる様ですが、Qちゃんを動かすには、機能過多なため、今回の方法でポーズを取らせる事にしました。


前の記事次の記事
No.15(Armature②)No.17(Armature④)