自作キャラクターのモデリングが完成したら、今度はそのモデルにポーズをとらせてみましょう。ポージングを取らせるには、リギングという作業が必要です。
リギングとは、キャラクタ―モデルの中に骨を仕込む作業です。実はこの作業、モデリングよりも難易度が高いです。またキャラクターにモーションを付ける場合、モーションを付けやすいリグ構造にしないといけません。初心者がこれを一から作り上げるには知識も経験も足りないことでしょう。
そこで今回は、そんな難易度の高いリギングを劇的に楽にする、RigifyというBlender公式アドオンの使い方を解説します。
Contents
Rigifyとは
Rigifyとは、Blender公式に提供しているリグコントローラー生成アドオンです。標準的な人型をはじめ、獣や鳥類のリグコントローラーも作成することができます。
冒頭でも触れましたが、リギング初心者が一からリグを組み上げることは非常に困難です。モーションを意識したボーン構造、IKのセットアップ、シルエットを調整する補助ボーンの仕込み…..といった風に、膨大な知識と経験が必要となります。
それゆえ、初心者はまず、このRigifyを使ってみることをおすすめします。Rigifyをおすすめする理由は、以下の点です。
- 複雑なIKがセットアップ済み
- FKとの切り替えができる
おすすめ①IKがセットアップ済み
IKとは、Inverse Kinematics(逆運動学)のことで、ボーンの先端からルートに向かって関節の位置角度を調整するメカニズムのことです。モデルをポージングする上において、このIKは非常に重要な役割を果たします。
なぜIKが重要かというと、手足を固定してボーンを移動させることが、 IKを使用すると非常に簡単になるからです。以下のサンプルのように、体幹に近いボーンを動かしても、 IKを適用した手先や足先のボーンはその場にとどまってくれることがわかります。
もし、このIKを無しにポーズを作るとすると、上位に位置するボーン(ex. ルート・腰・肩 )が移動するたびに、手先のボーンを調整しなおす必要が出てきてしまいます。
本来こうしたIKは、すべて手作業で設定していかなければいけないのですが、非常に面倒です。Rigifyを使うと、IKがセットアップ済みのリグを生成することができます。
おすすめ②FKと切り替えられる
IKはポージングで非常に重宝するのですが、残念ながらモーションには向きません。なぜなら、モーションでは、単純な関節回転運動の方が、自然に見える場合が多いからです。特に、
- 歩く
- 投げる
- 振る
といった動作は、肩や股関節を支点にした回転です。これらの動作をIKだけで作ろうとすると、いびつなモーションになってしまいます。Rigifyでは、FKを瞬時に切り替える機能が搭載されており、楽にモーションを作成することができます。
自作のリグを作成する場合、モーション作成まで考慮してリグを構成しなければいけません。しかし、そうしたリグを作ることは、上級者でもかなり難しいことです。Rigifyでは、FKへの変換を前提としたコントローラーを生成してくれるので、非常に効率的にモーションを作成することができます。
Rigifyの導入
それでは、早速Rigifyをセットアップしていきましょう。
Blender標準の機能には、Rigifyは含まれていないので、自分でアドオンを導入する必要があります。導入については、下の記事にまとめてあるので、導入を先に完了させてください。
Rigifyのセットアップ手順
Meta-Rigを位置合わせ
アドオンの導入が完了したら、まず初めにMeta-Rigをシーンに追加します。Meta-RigはBlenderの人体アーマチュアのテンプレートです。Shift + Aで、Armature > Human(Meta-Rig)から追加できます。
次に、Rigifyを設定したいキャラクターモデルに合わせて、 Meta-Rigを大まかに位置合わせをします。 注意点として必ず、エディットモードから編集しましょう。ポーズモードと間違えないように。
ここで調整したボーンを基準に、デフォームボーンとリグコントローラーをRigifyが自動で生成することになります。この作業は、ガイドを作っていると考えてもらうといいかもしれません。
ボーンの位置に関して、あまり神経質になる必要はないです。絶対的な正解はないので、関節位置が大きくズレていなければ問題ありません。このとき、使うことがないボーンがあれば削除してもいいです。たとえば、表情のボーンは使わないのであれば、それらを削除してもかまいません。
ボーン位置を調整する際、ボーンがモデルに隠れて見えにくいと思います。そんなときは、アーマチュアのプロパティから、In Frontにチェックを入れましょう。ボーンが最前面に表示されるようになります。
また、対称にボーンを動かすには、オプションのx-mirrorをオンにします。
Rigifyの生成
Meta-Rigの位置合わせが完了したら、アーマチュアを選択し、プロパティのRigify ButtonsよりGenerate Rigを押下します。このとき、Advanced Optionsからリグの名前や、すでに作ってあるリグへの上書きなどを指定できます。初めてRigifyを使用するなら、不要なので、空けておきましょう。
リグの生成に成功すると、以下のようなオブジェクトがビューポートに配置されます。これ以降、Meta-Rigは使用しないので、シーンから退避しても構いません。削除してもいいのですが、ガイドを調整しなおして再セットアップすることがあるので、残しておくほうが無難です。
Rigifyにウェイトを付ける
Rigifyを生成しても、まだウェイトが付いてないので、モデルにウェイト付けをする必要があります。ウェイトとは、ポリゴンがボーンの移動にどれだけ追随するかを示す影響値のことです。これが設定されていないと、いくらボーンを動かしてもポリゴンがデフォーム(変形)しません。
ウェイト付けについては以下の記事を参考にしてください。
BlenderでWeightPaintを付ける方法まとめ(準備中)
Rigifyの使い方
では、実際にRigifyの使い方を見ていきましょう。Rigifyのセットアップに成功していると、ツールウィンドのItemにRig Main PropatiesやRig Layersが追加されているはずです。この項目はアーマチュアを選択してないと出てこないので注意が必要です。
Rig Layers
順番が前後しますが、こちらの方が簡単なので、先に説明します。Rig Layerの各種ボタンから、リグコントローラーの表示切替を行うことができます。モーションを作成中に触ることがないリグコントローラーはここから非表示にしてしまいます。
Rig Main Propaties
以下の項目は選択した部位によって、ツールシェルフに出るものと出ないものがあります。
IK-FK
※Rigifyでアニメーションを作成する中で、一番重要です!
IKとFKを切り替えるスライダーです。IKの影響値を1にすると、FK用コントローラーの影響を受けなくなります。0にすると、その逆になります。
これの何がいいかというと、ポーズ ⇒ モーション ⇒ ポーズ ⇒ モーション ⇒ ….というふうに、ポーズからポーズへのモーション遷移でFKに移行することができることです。アニメーションを作るうえでかならず覚えておいて欲しいことなのですが、
- IKはポージングに向いてる
- FKはモーションに向いてる
という二点です。ポーズからポーズにIKだけで自然につなげることは非常に困難です。なぜなら、モーションは肩や股関節を軸にした回転運動だからです。弧を描くような動きは、IKで作るのが非常に難しいということを覚えておきましょう。
FK->IK, IK->FK
現在のIKポーズにFKをフィットさせます。IKでポージングし、途中からFKで動きを作る場合に使用します。IK->FKだとその逆で、モーションからポーズに切り替える際に使います。
前述したIK-FKの切り替えと組合わせることで、スムーズなモーション作成に使えます。
FK Limb Follow
1にすると、Torsoの回転が腕や脚に影響しなくなります。まったく動かなくなるわけではなく、角度が硬直する感じです。肩や腰の角度調整で使用します。
似たようなものに、頭部を選択した際に出現するNeck FollowとHead Followが存在します。これらも、Torsoの傾きに影響を受けるかどうかを設定する項目になっています。
IK Stretch
IKでポーズを取らせた際に、可動範囲以上にデフォーム(変形)するかどうかを調整します。標準的な人体モデルなら0(=ストレッチしない)で構いません。
Toggle Pole
膝や肘の方向を固定するために使います。これらは、手先や足先のIKコントローラーを選択しないと、設定することができません。 Toggle Poleをクリックすると、ビューポートに追加のコントローラー(以下Pole)が出現します。
Toggle Pole以下にあるIK Parentでは、IKの親となるIKコントローラーを設定できます。Pole Parentでは、Pole自身の親を設定できます。ここはかなりややこしい部分なので、初心者はあまり深入りしなくても構いません。
変化が分かりずらいのでサンプルを見せます。たとえば、IK Parentを1(つまりルートが親)にすると、手のIKコントローラーはルートの移動に追従します。しかし、IK Parentを0(つまり親無し)にすると、今度は追従しなくなります。
同様に、Pole ParentではPoleの親を設定することができ、Torso ParentではTorsoの親を設定することができます。これらの項目に共通する重要なことは、「IKの範囲を調整できる」という点で、よっぽどのことがない限りは触る必要がありません。
これらのParent系は、IKの影響を一時的に無効化したい場合に、使用するとよいです。「ルートを動かしたいけど、手の位置は動いてほしくない」といったケースに使えます。
Rigifyを使ったモーションの作り方
実際にRigifyを使ったアニメーションを制作していきます。説明が長くなりすぎるので、記事を分けます。こちらより、ご覧ください。
Blenderでアニメーションを付ける方法まとめ(準備中)
Unityに持ち込む場合の注意点
Unityにアニメーションやアーマチュアを出力するには、注意するべき点がいくつかあります。
RigifyをUnityに持っていく場合の注意点(準備中)