Doc:JA/2.4/Tutorials/Animation/BSoD/Character Animation/Upper body armature
目次
リギングの基本
キャラクターをアニメーションにする方法について考えていきましょう。 ひとつひとつのフレームごとに各頂点を移動させるなんて方法は、絶対嫌でしょう。 その代わり、我々はボーンを生成し、スケルトンを完成させ、ボーンを動かすことでキャラクターに動作をさせられるようにします。 このプロセスは、 riggingと呼ばれています。
Blenderでは、このスケルトンは Armatureと呼ばれています。 その意図はこのようなものです:
- アーマチュアは、多くのボーンで構成されます。
- それぞれのボーンには、いくつかの頂点を割り当てることができます。
- ボーンを動かすと、それに割り当てられている頂点だけが動き、他のすべての頂点はそのままの位置にとどまります。
- 目標は、アーマチュア内のボーンをセットアップし、隣接するボーンによって隣接する頂点をスムーズかつ自然に動かせるようにすることです。
前もって言っておくことは、まず上体のアーマチュアを作成し、そしてそれが済んだら下半身に移っていくということです。 脚と足を正しくするのにもう少し作業を要しますが、うまくいけばそこにたどり着く頃には、上半身での作業からの経験が身についていることでしょう。
For "real" armatures . . .
ここでデザインするものは、基本を示すためのものであり、非常に単純なアーマチュアです。 キャラクターをより制御しやすくする工夫に興味のある方は、 Rigging BSoD projectを参照してみてください。 そこでは、最も要求の厳しい用途にも適するリグに関する情報がたくさん見つかるでしょう。 ここにあるのは、Blenderのツールを説明するためだけのシンプルなリグでしかありませんから。
ミラーモディファイアを適用する
これまで、我々は、メッシュの片側に操作をくわえて、そして反対側はミラーモディファイアによって自動的に更新させていました。 ミラーモディファイアがメッシュの反対側に作成したのは仮想の頂点であり、アーマチュアをメッシュに取り付ける前にそれらの頂点を実体化させる必要があります。
Important: キャラクターのメッシュが、あなたの望むとおりになっていることを確認しておいてください。 私達はこれを最後にミラーモディファイアを立ち去ります。 メッシュの変更は後になってもいつでもできますが、ミラーモディファイアを使用した場合ほど容易にはできないでしょう。
- キャラクターのメッシュを選択した状態で、エディットボタンのところに行きましょう
- ミラーモディファイアで、 Applyをクリックします (Applying the Mirror modifier to make the mirrored vertices real)
- "Modifier is not first"のようなエラーメッセージが表示されることがあります ("Modifer is not first")。 これは、モディファイアの重なり順を指すもので、そのままメッセージをクリックすると、ミラーモディファイアが自動的にスタックの最上位に移動されます。
- 次に見ることになるメッセージは、 "Applying will delete mesh sticky, keys, and vertex groups"です (Second warning message)。 そのメッセージをクリックして、承認してください。 我々はまだそのようなグループを作成していないので、それでOKです。 とはいえ、これから 大 量 に 頂点グループ作っていくことになります -- ミラーモディファイアを後ではなく今適用するのは、これが理由なのです!!!
アーマチュアの追加
アーマチュアを追加する時間です。 対称的にモデリングするツールの利点を活かすために、アーマチュアの中心を、キャラクターのメッシュの中心線上にしておきたいところです。 これを行うには、
- メッシュを選択して、そしてエディットモードに入ります。
- メッシュの中心線上の頂点を選択します。
- ⇧ ShiftS でスナップメニューを呼び出します
- Cursor to Selection をつかって、選択した頂点にカーソルをスナップします
- これでもうカーソルは、中心線にくっつきました (3D Cursor on centerline of mesh)。
- オブジェクトモードに切り替え、フロントビューにします (1 NumPad)。
- Space>>Add>>Armatureで、アーマチュアオブジェクトを追加します。
IMPORTANT: 製作につかうアーマチュアのツールの多くにおいては、アーマチュアオブジェクトのX、Y、Zでの回転が(0,0,0)になっている必要があります。どのビューでアーマチュアを追加したかに応じて、アーマチュアの回転や場所が異なるものになることがあります。 アーマチュア オブジェクトをリセットして、そのデフォルトの方向に戻すには、
- アーマチュアのObjectモードに切り替えます。
- AltR を使用して、アーマチュアオブジェクトの回転をクリアします。
- ここでアーマチュアのエディットモードに戻ります。 それ以上の回転や移動は、 エディットモードで行う必要があります。
アーマチュアがちょうど追加されて、そしてそれは、単一のボーンで構成されています。 ちょうどメッシュと同じように、アーマチュアはオブジェクトモードと編集モードを持っており、アーマチュアを追加すると、自動的に編集モードに入ります。 あなたが編集モードにいるかどうかは、ボーンの端点が黄色 (選択状態) またはピンク (非選択状態) になっているのを見れば判別できるでしょう。
- それぞれのボーンは、 ROOT (平べったい端) と TIP (先のとがった端)を持っています (Anatomy of a Bone)。 少なくとも、デフォルトの八面体の描画タイプの方法で表示されます。 後ほど他の描画タイプも使用していきますが、そのときはルートとティップはあまり明白ではなくなります。
リグの残りの作成を開始する前に、いくつか設定しておくことがあります。 アーマチュアがそのまま選択状態のままであれば、これらの設定は編集ボタンのところで見つかるはずです。
- Important: 編集ボタンの下のアーマチュアパネルで、 X-Axis Mirror Edit が選択されていることを確認します。 これで、私たちは対称的にボーンを押し出して、骨格を作っていけます。
- また、 X-Ray が選択されていることも確認しましょう。 これは、メッシュを透かしてボーンが見えるようなるもので、編集がしやすくしてくれます - これでもう体内のボーンを見るためにビューをワイヤフレームに切り替える必要はなくなります (Bone display settings)。
Extruding the spine
- 追加したボーンを選択してください。 ボーンの真ん中をクリックすると、ボーン全体を選択します。 またボーンの選択は、そのルートを選択することによっても行え、さらにその後ティップをShift-選択することもできます。
- サイドビューに切り替えて、ボーンを動かして骨盤に近い位置にし、体の中心に近づけ、だいたい首と一直線になるようにします。
- ティップちょうどを選択します。
- ティップをつかんで上に移動させて、Z軸方向にボーンを少し拡大し (G and Z) 、 Lengthening the spine1 boneのようにします。
- ティップが選択されている状態で、 E,Z をつかってZ軸に沿った制約押し出しを行い、チェーンに第二のボーンを作ります (Extruding the spine 1)。
- さらに3回Z拘束押し出しを実行して、脊椎のボーンが合計5つになるようにします (Extruded spine)。 人間の肋骨は曲がらないので、この背骨は本物の人間のものよりも、少しだけ柔軟です。
- 首と頭のボーンを押し出します。 頭のボーンが、頭のてっぺんよりも少し上に延びていることに注目してください。 これは、たとえアーマチュアの X-Ray がオフにされている場合でも、ボーンを簡単に選択できるようにするためです。
これらのボーンに名前を付けておくとよいでしょう。 名前は、インターフェイスの他の部分でも表示されますので、後で混乱を避けるためにも、今それらに意味のある名前を付けておくと便利です。
- ボーンを選択した状態で、ボーンの名前を変更することができ、 Edit ボタンのところにあるアーマチュアボーンパネルで行えます (Armature Bones panel in the Edit buttons)。 私は底部のボーンを選択し、名前を spine1に変えました。
- 脊椎内の他のそれぞれのボーンを選択し、それらに意味のある名前を付けましょう。 私は下から、 spine1, spine2, spine3, spine4, spine5, neck, そして headと命名しました。 それらがすべて選択されている場合、すべて編集ボタンに表示されます (Named spine bones)。
腕を対称的に押し出す
- フロントビューに戻ります (1 NumPad)
- spine4のティップを選択します。
- 新しい事柄: ⇧ ShiftE で対称的に押し出して、肩の骨を作成し、 Symmetrically extrude the shoulder bonesのようにします。 左右対称の押し出しは、X軸ミラー編集モードがオンになっている場合にのみ機能するので、 (conveniently enough!) 一連の手順ではオンにしておきましょう。
- 肩のティップが選択されている状態のまま、 ⇧ ShiftE でさらに対称押し出しを行って、上腕のボーンを生成します (Symmetrically extrude the upper arm bones)。
- 対称的な押し出しを続けて、前腕を作ります . . .
- . . .手のボーン . . .
- . . .そして指のボーンを2つ。
腕のボーンはすべてできたので、ここからはもう少し良い位置に調整していきます。 頂点がメッシュ内のどこにあるのかをおおまかに見ることができれば、この作業を行うのが簡単になります。 我々はアーマチュアの編集モードで作業しているので、メッシュでのエディットモードのように頂点を表示することはできません。 代わりに、
- ⇆ Tab でアーマチュアの編集モードを抜けましょう。
- キャラクターのメッシュを選択します。
- Subsurf モディファイアのところで "Subsurf in interactive view" をオフにしてください。 こうすると、本来のベースメッシュを見ることができ、それに沿ってボーンが並びます (この手順を行わずにワイヤフレームモードにしてみれば、私の言いたいことがよく分かるはずです)。
- Zでワイヤフレームビューに切り替えます。
- 再びアーマチュアを選択し、そして編集モードに入ります (⇆ Tab)。
- 肘を調整して、メッシュの肘の三つの頂点内に収まるようにします (Adjusting the elbow from Front View)
- トップビューから、同じ操作を行います (Adjusting the elbow from Top View)。
- トップビューからも、すべての腕のボーンがメッシュ内に収まっていることを確認しておきましょう (Top view of arm bones)。
- ⇆ Tab 、キャラクターのメッシュを選択、インタラクティブビューでSubsurfをオンに戻す、再び Z を押してシェーディングモードにする
- 再びアーマチュアを選択して、編集モードに入ります。
ボーンの命名
さて、次は命名についていくつかとりあげます。 これらのボーンの命名については注意が必要です。
ボーンの命名規則
いくつかの非常に便利なX軸のミラーツールに活躍してもらえるように、対称なボーンには、左のボーンには "bone.L" 、そしてそれに相当する右のボーンには "bone.R" 、というように名前を付ける必要があります。
また、 "bone.l" と "bone.r"、 または "Left.Bone" と "Right.Bone"を使用することもできます . . . 対称ツールは、両方の対称の骨が同じ命名規則を持っている間 だ け、 とてもスマートです。
一貫性を保つために、私が使用するつもりなのは:
- left と right を表す"l" および "r"を含めて、ボーンの名前はすべて小文字に
- 二語のボーンは、名前をアンダースコアで区切る (upper_arm.l)
- 左側と言う時はキャラクターから見た左側です。 フロントビューでは、多くの場合、左または右であるかを決める前にちょっと考える必要があるということです。
- ボーンの名前を意味の通るようなものに変更します。 左右のボーンがちゃんと対称になっていることを確認してください。 Edit ボタンの下で (X-Ray と X-Axis Mirror Edit をオンにしたところと同じ場所で)、 Draw Namesをオンにすることができます。 こうするとボーンの名前が表示され、命名し忘れたボーンがないかどうかを確認するのに便利です。
下の、Bone namesは、私が使用したボーンの名前のスクリーンショットです。 たぶん、画像をクリックしてフルサイズで表示させると、ボーンの名前を確認できるはずです。 奇妙な角度になっているのは、すべてのボーン名がはっきりと見えるようにするためです。 私が使用した名前は次のとおりです:
- shoulder.l
- upper_arm.l
- lower_arm.l
- hand.l
- finger1.l
- finger2.l
and
- shoulder.r
- upper_arm.r
- lower_arm.r
- hand.r
- finger1.r
- finger2.r
リグのテスト、およびAuto- IKのために腕を調整
ここまでくれば、オブジェクトモードとエディットモードは使い慣れているでしょう。 我々はアーマチュアに固有な別のモードを使用していきます: Pose modeです
- アーマチュアを選択し、 Ctrl⇆ Tabを押します。 こうすると、実質的に、ポーズモードがオブジェクトモードと入れ替わります。 言い換えれば、今 ⇆ Tab を押すと、ポーズモードとエディットモードの間で切り替わることになります。 オブジェクトモードに戻す必要がある場合は、再び Ctrl⇆ Tab を押し、そしてその後、 ⇆ Tabでオブジェクトモードとエディットモードを切り替えられるようになります。 あなたがポーズモードいるかどうかは、ボーンを選択したときのアウトラインがライトブルーになっているかどうかで確認できます。
アーマチュアにおいて、 Edit mode は、アーマチュアを構築するために使用します。 Object mode は、アーマチュア全体をまるごと移動するものです。 Pose mode は、もちろん、ポーズをつけるために使用します。 Pose modeでは、個々のボーンそれぞれを、グラブ、回転、および拡大することができます。
- ポーズモードで上腕を選択し、フロントビューで腕を回してみてください。 その "下流" のすべてのボーンも同じように回転されていることに注目してください。
- さて前腕を選択し、フロントビューでそれを回転させてみましょう。 上腕はもとの場所にとどまりましたが、前腕よりも "下流" はすべて回転されました。 これが、 parentingの本質です。
つまり、上腕は、前腕の 親 というわけです。 前腕は、今度は手のひらのボーンの親になります。 言い換えると、手のひらが前腕の子であるということです。 これらの親子関係は、ボーンを押し出す時に自動的に作成されます。 押出されたボーンは、押し出し元の子になります。 脊椎の下部から始めて上向きに押し出していったのはこれが理由で、肩から始めて指に向かって押し出したのも同様です。
- すべてのボーンの回転を解除するために、 A を二度使用してすべてを選択し、 AltR で回転をクリアします。 ボーンはもう、初期状態の回転にリセットされました。 たくさんのコマンドの締めくくりは、これに関連するコマンド AltGで、位置をクリアするものです。
- エディットボタンの下にある、アーマチュアパネルで Auto IK をオンにします。
- 腕のティップを選択して、 Gを使って移動させます。今はまったく異なる動きをすることに注目してください!
少し説明: Forward Kinematics(順運動学)、またはFKは、我々が最初に使用した、ボーンを動かす方法です。 つまり、上腕を回転させると、その子も (そして子の子も!) ついてきます。 の反対は Inverse Kinematics (IK)で、子を動かすと、親がついてきます。 実際には、空想の数学がバックグラウンドで進行し、ボーンの鎖がターゲットのほうを指すように仕向けます。 ターゲットとは何? Auto-IKの場合、あなたが選択した任意のボーンです。 この場合、ターゲットは finger2.l ボーンです。 チェーンとは何? それはボーンの系譜で、 曽-曽-曽-(中略)-祖父母へとさかのぼります。
私たちのアーマチュアで、指のボーンを移動すると、チェーン内のすべてのボーンは、それを移動した場所を指そうとします。 オレンジ色のラインが現れ、 finger2.l ボーンを spine1 ボーンへ接続します。 オレンジ色のラインは、チェーンのルートのほうを指します: spine1 は finger2.l, の最上位の親であり、そしてチェーンはすべて spine1 と finger2.lの間にあります。
我々が腕を動かすときは、背骨はあまり動かないほうがいいですね。 これを解決するには、実質的には肩でIKチェーンを切ればよく、そうするだけで腕を動かしても脊柱はそのままの位置にとどまります。
- ⇆ TabでアーマチュアのEditモードに入ります。 たとえポーズモードでボーンを移動させても、Editモードに入るとすべてが元通りに戻ってしまうということに注意してください。 In エディットモードでは、ボーンが Rest positionにあるものとして表示され、一旦ポーズモードに戻ると、アーマチュアが返ってきます。
- エディットモードで upper_arm.l ボーンを選択してください。
- Edit ボタンの下の Armature Bones のパネルで、 Con ボタンの選択を解除します。 このパネルでは、 child of: メニューにこのボーンが表示され、 upper_arm.lが shoulder.lの子であることを示しています。 我々はその関係を維持してやりたいですが、しかし、やむなく upper_arm.l が shoulder.lから離れ離れになることを認めましょう . . . というわけで、IKチェーンを切ります。 Con はConnected を表します。 このボタンを選択解除することで、 upper_arm.l ボーンを shoulder.l ボーンから非接続にします
- この新しい設定をテストするために、ポーズモードに切り替えます (⇆ Tab)。
- アーマチュアをリセットするために、 A を二度押してすべてのボーンを選択し、 AltG を押して場所をクリアし、そして AltR で回転をクリアします。
- さあ、再び finger2.l ボーンを移動しましょう。 かなり変わっています! オレンジ色の線は現在、チェーンのルートを指し、これは upper_arm.l ボーンです。
ボーンを対称的に押し出すことができた一方で、設定の変更は別個に行う必要があります。 upper_arm.r ボーンを shoulder.r から非接続にするには、同じように、:
- アーマチュアのEditモードに切り替えます
- upper_arm.rを選択します。
- Con ボタンの選択を解除します。
- アーマチュアをテストします。
メッシュにアーマチュアモディファイアを追加する
さて、アーマチュアはできたので、この時間でそれをメッシュにくっつけていきます。 これを行うには、メッシュにアーマチュアモディファイアを追加します。
- オブジェクトモードで、キャラクターのメッシュを選択
- Edit ボタンで、 Add Modifier>>Armatureと選択します
- 重要: 上矢印をつかって、アーマチュアモディファイアをモディファイアスタックの一番上に移動させましょう。そうしないと、その後、メッシュが奇妙な方法で変形してしまうかもしれません。
- Ob: テキストボックスで、アーマチュアオブジェクトの名前を入力します (Enter the name of the armature object into the armature modifier)。 デフォルトのアーマチュア名は、十分に論理的な、 "Armature"です。 アーマチュアの名前を二重にチェックするために、アーマチュアを選択して、Editボタンのところで OB: テキストボックスを探し、 Checking the name of the armatureのようになっているか確認しましょう。
- アーマチュアモディファイアで、 Vertex Groups ボタンだけが選択されていることを確認します。 このチュートリアルでは Envelopes は使用しません。
今 Blender は、アーマチュアがキャラクターのメッシュに影響してほしいという要望を知っています。 次は、我々がupper_arm.lなどを動かしたときに、どの頂点を移動させるのかを、Blender に指示する必要があります。
まとめ
我々は、アーマチュアオブジェクトを追加し、順次ボーンを押し出ながら、上半身のアーマチュアを作りました。 後で使うことになる時のために、 Auto-IKが使いやすくなるようないくつかの変更を加えました。!
|
Next: Upper body: weight painting
Previous: Materials and textures