Doc:JA/2.6/Manual/Your First Animation/2.Animating the Gingerbread Man
30プラス30分でできる初めてのアニメーション Part II
静止画を求めているのであれば、ここまでの私たちの作業で十分なのですが、しかし我々はGusを動かしたいのです!次のステップでは彼に骨格やアーマチュアなどの、動かすのに必要なものをつけていきましょう。これは美術分野ではリギングと呼ばれています。GUSがもっているのは非常にシンプルなリギング:四肢(二本の腕と二本の脚)といくつかの関節(肘はなく、膝のみ)で、足先や手はありません。
リギング
リギングの追加:
- Object modeで、カーソルをGusの肩の位置に置き、 ⇧ ShiftA >> Add >> Armature >> Single bone と押します。 菱形のオブジェクトが出現し、それがアーマチュアシステムの骨格となります。 Edit mode に入って下さい。 骨のend末端、または tip先端が選択されます(黄色)。
- さて Edit modeで、(G) でボーンをつかんで動かし、その先端をGusの手の位置におきましょう, (Adding the first bone, an elbowless arm)。 他のボーンは今は必要ではありません。これで、肩から手の範囲をつらぬくボーンを得ました。先端を移動すると、ボーンが大きくなることに気づくでしょう - 実際ボーンはスケールアップされます。
プロセスをより効果的にすすめるために、ジンジャーブレッドマンとアーマチュアをいろいろな方向から定期的に見て、アーマチュアがジンジャーブレッドマンの内部 にあるかを確認するようにしましょう。ちょうど骨が人体の内側にあるのと同じように。ボーンが、例えば体の前方や後方にあると、スキニングで失敗してしまうでしょう。多くの異なる視点から点検することは、3Dモデルを作成するうえで共通のテクニックです。
About Bones’ Ends
ボーンの両端は、いろいろな名前でよばれます。Blenderでは、いまのところ"head"/"tail"と呼ばれています(前者が"太い"端部で、後者が"細い"端部です)。しかしながら歴史的には、"root" / "tip"という名称もあり、そのほうがいくらか混乱が少ないと考えられることもあって...
|
- Edit modeのまま、股関節の位置にカーソルを移動し、⇧ ShiftAで新しくボーンを追加します。
- (G)でつかみ、新しいボーンの黄色いクチバシが膝のあたりにくるように動かします。
- さて足の領域でCtrlLMB して、新しいボーンを膝から足に “chain” させていきましょう。 新しく チェーンされた ボーンは、膝から足のさきっぽまでが自動的につながった状態で現れます (Adding the second and third bones, a leg bone chain)。 新しいボーンをチェーンにするもう一つの方法は、 E ショートカットを使用して押し出しをすることです。 このバリエーションで新しい骨を作成すると、あなたは自動的にグラブモードに移されます。 LMB クリックして、骨の先端の現在の位置を有効にしましょう。
Bone position
我々がボーン追加すると、Gusの体のメッシュはゆがみます。きちんとした結果を生成するには、図に示すように、骨の関節を配置してみてください。
|
Bone roll
ボーンを (Adding the second and third bones, a leg bone chain) のように整列させたければ、下腿のボーンを選択して CtrlN, 3 を押し、 Bone Rollを調整する必要があります。
|
我々は現在、Gusのアーマチュアを構成する3つのボーンを持っています。
- では中央にカーソルを置き(⇧ ShiftC)、 すべてのボーンを選択します A。 ⇧ ShiftD でそれらを複製したら、すぐに Escでグラブモードを終了します。 カーソルが回転/拡大縮小ピボットとして選択されていることを確認します (3Dウィンドウのヘッダー内の Pivot ドロップダウンリスト)。 CtrlM 続いて Xで、複製されたボーンをX軸周りに反転させます。 LMB クリックしてミラー化の操作を確定します。 完了すると (The complete armature after duplicating and flipping)のようになります。
いずれかのボーンが選択されているとき、 Object Data context にはアーマチュア全体の設定が表示され、 名前も Armature Object と同じになってアーマチュア表示のためのセッティングになり、 Object Data にはアクティブな Bone およびボーン固有の設定が表示されます。
Names チェックボックスにチェックをいれて (Armature context, Display panel) 、3Dビュー内のボーンの名前を見えるようにし、それぞれのボーンを選択して、Bones contextのボーンの名前を LMB クリックし、(Armature Bones context)をみながら、ボーンの名前を Arm.R
, Arm.L
, UpLeg.R
, LoLeg.R
, UpLeg.L
LoLeg.L
のようないくらか相応しいものに変えましょう。 ⇆ TabでEdit mode から抜けておきます。
Naming Bones
ボーンに名前をつける際、左右を区別するために末尾に “
.L ” や “.R ” とつけることはとても重要です。 そうしておけば Action Editor で自動的にポーズ反転できるようになるようになるからです。 |
スキニング
さて、私たちは、アーマチュアの変形と、それが引き起こすボディの変形を一致させていく必要があります。 skinningでこれを行います。頂点をボーンに割り当て、前者は後者の動きに従属します。
- Object mode でGusの体を選択し、 続けて ⇧ Shift でアーマチュアも選択すると、ボディは濃いオレンジ色になりアーマチュアは明るいオレンジ色になります 。
- さて、私たちは、ボディとアーマチュアを親子関係にする必要があります。 これは CtrlP)を押すことによって実現できます。 (Parenting menu) が表示されるでしょう。 Armature Deform >> With Automatic Weights と選択しましょう。
Vertex Groups, Envelopes and the order of modifiers
メッシュをスキニングするとき、メッシュオブジェクトは、そのモディファイアのスタックのいちばん下に加えられた Armature modifier を取得します。 Gusのメッシュはすでにスタック上に Subdivision Surface modifier を持っています。 メッシュを滑らかに変形させるためには、 Armature modifier を Subdivision Surface modifier よりも上の位置に移動させる必要があります。これは Modifier context の Move Modifier buttons をクリックすることで行えます (The modifier stack in the Modifiers context)。
また、それぞれのボーンは、エンベロープと呼ばれる、影響力のおよぶ領域を持ちます。 アーマチュアは、割り当てられた頂点グループとボーンのエンベロープの両方のメッシュを変形させます。 これは望ましくない結果につながることもあり、我々の場合には、Armature Modifier の Bone Envelopes を無効にしておくことが重要です (The modifier stack in the Modifiers context)。
|
- さてGusの体を選択し、 Edit mode に切り替えます (⇆ Tab)。 Object Data context には、 Vertex Groups をまとめて管理できる Vertex Groups panel があることもお知らせしておきます (The vertex groups controls in the Object Data context)。
頂点グループのパネルでスクロールをすると、使用可能なすべての頂点のグループを見ることができます – 我々の場合は6個です。 しかし、本当に複雑なキャラクターを、手先から足先まで完璧に造ったら、頂点グループは何十個にもなります! (The vertex groups controls in the Object Data context)をご覧ください。 Select と Deselect のボタンはそのとき選択されているグループのすべての頂点を(非)選択し、どの頂点がどのグループに属しているのかを調べられます。
右腕のグループを選択し(Arm.R
) 、全ての頂点を選択解除して (必要に応じてA)、 Selectを押します 。 (Gus in Edit mode with all the vertices of group Arm.R
selected)のように表示されるはずです。
ぴったり正確な位置ににボーンを配置したはずなのに、もし同じものが表示されないとしたら、 auto skinning process がボーンと頂点をマッチングさせるときに過剰に働いてしまったのかもしれません。 スキニングプロセスが、あなたの期待とまったく同じように骨の頂点にをそろえてくれる可能性はほとんどありません。 この場合、あなたは手動でのグループ化の調整を、以下のセクションで説明するように行うことが必要です。
(Gus in Edit mode with all the vertices of group Arm.R
selected) の赤い丸で印のついた頂点は 、含まれるべきではないのに変形グループに属してしまっているものです。
auto skinning process は、それらの頂点がボーンのとても近くにあると判断すると、それらを変形グループに追加します。 そのグループにそれらを入れたくなくても、Gusの反対側や胸部の頂点のいくつかが、変形のグループに追加されて体のパーツを歪めてしまいます。
そういった頂点を取り除くために、そうではない残しておくべき 頂点をすべて選択解除しておき、ボックス選択(B)と、LMB ではなくMMB を使って、 ボックスを固定して、非選択にするすべての頂点を範囲におさめましょう。
“望ましくない”頂点を選択しおえたら、Remove button を押して(The vertex groups controls in the Object Data context)、 Arm.R
グループからそれらを除去します。 すべてを選択解除してから(A) 他のグループのチェックにうつりましょう。 他もすべてチェックし、それらが (The six vertex groups)のように見えるか確認してください。
頂点グループ
頂点グループへの頂点の割り当てや削除は入念に行いましょう。後で予期しない変形を見かけたとしたら、いくつかの頂点を見落としているか、余分な頂点がグループに置かれている可能性があります。頂点グループの変更はいつでも行えます。
Other details
変形はGusのボディだけに作用し、彼の目、口、ボタンは別個のオブジェクトなので作用されません。 これはこの単純なアニメーションにとどまる問題ではなく、もっと複雑なプロジェクトでも考慮する必要があり、たとえば(頂点の)ペアレント化や、ほかにも多種のパーツを接続して単一のメッシュとしてのボディを作るときにも関係してきます (そういったオプションの詳細はすべて manual に載っています)。
|
ポージング
Gusのリグ化とスキン化が済んだら、彼を人形のようにいじって遊べるようになります。ボーンを動かしてその結果を見てみることにしましょう。
- アーマチュアだけを選択し、そしてMode menu から Pose Mode を選びます (Mode menu in the 3D window header) – またはシンプルに Ctrl⇆ Tabと打ちます。このオプションはアーマチュアが選択されている時にだけ利用できます。
- アーマチュア内の選択したボーンは青色に変わります。 これでもうあなたは Pose mode に入っています。 ここでボーンを選択し、 (G)で動かしたり、 (R)で回転させると、 体はそれに応じて変形します!
Original position
Blenderはボーンの元の位置を記憶しています。 AltRを押してボーンの回転をクリア、 AltG を押してボーンの位置をクリア、というようにアーマチュアの設定を戻せます。 また、Object Data context の Rest Position button は、元の位置を一時的に見るために使用するとよいでしょう。
Inverse Kinematics
Inverse Kinematics (IK) とは、チェーンの 端から ボーンの位置を定義するもので、 “end effector”と呼ばれることもあります。 他のすべてのボーンは、アルゴリズムによって位置を推測され、その位置は IK solverによって自動的に計算され、チェーンはとぎれることなく保たれます (すなわちIKが数学的にチェーンの位置を導き出してくれるわけです)。 IKを使うと手や足の位置決めがはるかに容易で正確になります。
Forward Kinematics
Pose modeでボーンを扱っていると、それらは端に球状関節を有する剛体として振る舞い、堅くて曲げられないことに気づくでしょう。 つかむことができるのはチェーンの最初のボーンだけで、他のすべてはそれに従います。 チェーンでの後続のボーンはどれも掴んで移動することはできず、回転だけが可能で、選択されたボーンはチェーンでの前のボーンに従って回転し、続くすべてのボーンもこの回転に追従します。
この手続きは、 Forward Kinematics (FK)と呼ばれ、扱いが容易な反面、チェーンの最後の骨の正確な設置は難しくなります。 我々はFKを使用し、足運びを4つのステージに分けそれに対応する4つの異なるポーズ定義して、Gusに歩いてもらいましょう。 Blenderはこの作業を流体アニメーションで行います。
- まず、タイムラインの frame 1 にいることを確認してください。 フレーム番号は、 Timeline window のヘッダの数値フィールドに表示されます(The current frame numeric field in the Timeline window header)。 それが 1に設定されていない場合は、今 1 に設定します。
- さて、ボーンをひとつづつ回転させて(R)、
UpLeg.L
を上げ、LoLeg.L
をうしろに曲げ、それと同時にArm.R
を少し上げArm.L
を少し下げて、 (Our first pose)と同じようにします。
- Aですべてのボーンを選択します。 マウスポインタを 3D window にのせて、 Iを押しましょう。 メニューがポップアップします(Storing the pose to the frame)。このメニューから LocRot を選択します。これですべてのボーンの位置と向きが取得され、ひとつのポーズとして frame 1 に格納されます。 これはGusが足を踏み出す途中を表すポーズで、左足が地面から上がりながら前に動くところです。
- さて、数値フィールドに数値を入力するか ↑を押して、フレーム11 に移動します。 そして、(Our second pose)のように、ガスを動かして別のポーズにします。 前述の要領で、あらかじめ AltR を使用して両腕の回転をクリアしておきます。トップビューから見ながら、
Arm.R
をわずかに前方へと回転させ、Arm.L
はすこしだけ後方へと回転させます。 最後に、左足を前に、右脚は後ろにポーズをつけ、両足とも少し曲げておきます。 Gusがその場で歩いています!
- もう一度すべてのボーンを選択し、 I を押してポーズをフレーム 11に格納したら、Rotを選びます。
- 我々が今必要なのは、frame 21となる第三のポーズで、 右脚を上げたところ、つまりはストライドの真ん中から残り半分です。 このポーズは我々がフレーム1で定義したもののミラーです。ですので、すべてのボーンが選択された状態でフレーム1に戻り、3D window のヘッダのPoseメニューで、Copy Pose という見出しを選択します、 (Pose menu)参照。 もしくは CtrlCを使いましょう。 これで、この時点のポーズがバッファにコピーされました。
- frame 21 に移動し、Pose menu の Paste X-Flipped Pose option でポーズをペーストします、 (Pose menu)参照。もしくは ⇧ ShiftCtrlVを使いましょう。 これはカットしたポーズの添え字が“
.L
” のボーンと “.R
”のボーンの位置を切り替えてペーストするものです。効果的にひっくり返してくれます!
Bone roll
X-flipped pose でペーストする場合、Gusが間違った方向に曲がることがあり、ボーンの回転に問題がおこるかもしれません。 Edit Mode ですべてのボーンを選択して CtrlN, 3 と押し、ボーンの回転を整理しましょう。その後、 frame 1 と 11 に戻ってとポーズを調整しましょう。 frame 1 からポーズを再コピーし、 frame 21 で x-flipped pose を再びペーストしてみましょう。
|
ポーズはここにありますが、まだ格納されてはいません! すべてのボーンを選択して I » Rot と押す必要があります。
- ここでも同じ手順を適用し、 frame 11 でポーズをコピーし、それを反転して 31, にペーストします。
- サイクルを完成させるために、frame 1 のポーズを回転させずに frame 41にコピーする必要があります。 いつものようにコピーして、そして Paste Pose entryを使用しましょう 。または CtrlV を使用しましょう。 I » Rot でポーズを格納し、手順を終了します。
Checking the animation
アニメーションをプレビューするには、 current frame を 1 にセットして 3D window で AltA と押します。
|
Gusが歩いてる!
その場でのシングルステップは歩行動作の中核であり、ここまでにひとつ定義してきましたが、他にもキャラクターを複雑な道すじに沿って歩くかせるテクニックの数々もあります。 ただ、私たちのクイックスタートという目的においては、このくらいのその場でのシングルステップで十分でしょう。
- Properties window の Render context で、開始フレーム (Start) を 1 (デフォルトですでに 1 になっているはず) 設定し、 最後のフレーム(End) を 40 (これはデフォルトで 250 に設定されている、 Settings for an animation in the Render context参照)。 frame 41 は frame 1 と同じなので、 完全なサイクルを生成するためにレンダリングする必要があるのは 1 から 40 までのフレームだけです。
- Output panel のテキストフィールドに //render/ とタイプしましょう (Settings for an animation in the Render sub-context)。
- Format panel でファイルの形式として AVI Raw を選択します (Settings for an animation in the Render sub-context)。 これは一般的には最良の選択とはいえず、主にファイルサイズの問題があるとはいえ、高速で、任意のマシン上で実行できるので、我々のニーズには適しています。また、よりコンパクトなファイルを生成する AVI Jpeg を選択することもできます。 ただし、非可逆JPEG圧縮を使用して動画を生成すると、いくつかの外部プレーヤーでは再生できないこともあります。
最後に、Render panel で Animation button を押してください。 あなたがアニメーションで使用する すべての レイヤーを表示しておく必要があることに気をつけましょう! 私たちのケースでは、レイヤー 1 と 10 です。
Stopping a Rendering
間違えたとき、たとえばレイヤー10を消し忘れたなんて時は、 Escでレンダリングプロセスを停止することができます。
|
私たちのシーンは非常に単純で、そしてBlenderはたぶん数秒かそこらで40の画像それぞれをレンダリングしてしまうでしょう。表示されたら、それらを見てみましょう。
Stills
もちろん、あなたはいつでも、アニメーションのひとつひとつのフレームを静止画としてレンダリングすることができます。レンダリングしたいフレームを選択して RENDER buttonを押すだけです。
|
レンダリングが完了したら、あなたはもう 0001_0040.avi
という名前の付いたファイルを取得しているはずです。カレントディレクトリの render
subdirectory で .blend
ファイルなどが入っているところです。 ディレクトリは Output panel から変更できます。
top menu の Play Rendered Animation を押すと (または CtrlF11 を使用すると)、ブレンダー内で直接このファイルを再生することもできます。 アニメーションは自動的に循環します。停止するには Esc を押してください。 私たちは、ごく基本的な歩行サイクルを作成しました。 Blenderにはまだまだたくさんの機能があり、 whole manualを読んでいけばすぐに発見していけるでしょう!