3DCG演習/2022?|2022.09.06 -
前回は、オブジェクトがシーンの中で移動・回転する事例を紹介しましたが、今回は、オブジェクトの形状を変形されるアニメーションを紹介します。
アメーバのように形を変えたり、顔の表情を変えたり、特定のオブジェクトを構成する頂点座標の相対的移動によって変形するアニメーションを作成する際に使用する技術です。以下、メッシュの変形事例を紹介します。
対象オブジェクトを選択して、プロパティーエディタ の ObjectData タブを開きます(右図)。
以下の作業は、ワイヤーフレームモードで行うことを推奨します。
キーフレームの記録方法は、これまでと同様です。
アニメーションの当該フレームまでタイムカーソルを進める 各キーの変形度合いをValueで調整して目的の表情をつくる 各キーごとに ''Value入力エリアの上で [ I ] Key''
Armature はキャラクターアニメーションを実現する際の骨組みとなる部品で、単体ではレンダリングされませんが、Armature に関連付けられたオブジェクトはArmature の関節を利用して自在に変形させることが可能になります。
Armature は、他のオブジェクトと同様に、原点(origin)、位置(position)、回転(rotation)、倍率(scale factor)といった情報を持つとともに、EditMode 内で編集可能なデータブロックを持っています。
編集モードでは、位置・回転・倍率に関するデフォルト形状を Rest Position というデータとして保持していますが、Object Mode とPoseMode でキーフレームを設定することにより、ポーズを付けていくことができます。
Armature を配置する場合は、一般に以下の手順で作業を行います。
[SHIFT] + [C] でカーソルをワールドの原点に置く [Numpad1] で ワールドを正面ビューに切り替える HeaderMenu > Add > Armature
骨格は、初期 Bone を Extrude してつくります。
[TAB] で EditMode に入る Bone の端点を選択して、[E] Key > 枝を伸ばす
Armature 自体はデフォーマ(変形制御のためのオブジェクト)であって、レンダリング時には透明になります。Armature を骨格として機能させるためには、動かしたいオブジェクトと親子関係を設定する必要があります。
Armature は通常複数の Bone(骨)から構成されますが、オブジェクトとの対応関係には2通りの方法が考えられます。ひとつはオブジェクトの関節に相当する部分の頂点をArmatureの関節に関連付ける方法、もうひとつは複数のオブジェクトをArmatureを構成するBoneひとつひとつに関連付ける方法です。前者は「Armatureの動きに従ってオブジェクトが変形」、後者は「Armatureの動きに従って各オブジェクトが移動」という違いになります。
以下の作業は、ワイヤーフレームモードで行うことを推奨します。
Object Mode に入る(TAB) オブジェクト → Armatureの順に両方選択して Object > Parent( [CTRL]+[P] ) > With Automatic Weight自動的に近接する頂点が関節に結びつけられます。
オブジェクト → Armature の順に両方選択 PoseMode に入る( [CTRL] + [TAB] ) オブジェクトと関連づける Boneを選択 Pose > Parent( [CTRL]+[P] ) > Boneすべてのオブジェクトとボーンについて、この関係づくりを行います。
Armature の Bone をアニメーションさせるには、PoseMode を使用します。
[CTRL] + [TAB]
PoseMode では、それぞれの Bone を回転させて、ポーズをつけながらキーフレームを記録することで「振り付け」ができます。
関節の動きを伴うキャラクターのアニメーションでは、階層上の親が子をコントロールする Forward Kinematics と、子から逆に親をコントロールする Inverse Kinematics とがあります。特に後者は、指先をつかんで腕の動きをコントロールするなど、「振り付け」がしやすい点で重要な手法です。
Header Menu > Pose > Inverse Kinematics > Add IK to Bone プロパティエディタ > Bone Constraints Property > Add Constraint > IK
Latticeは3Dの格子から成る外部コントロール構造で、それ自体はレンダリングされませんが、関連付けられたオブジェクトは、Latticeの頂点の起伏に応じて滑らかにその形状を変化させた形でレンダリングされます。波打つような形状変化をさせたい場合などに有効な手段です。
Add > Lattice プロパティエディタ > U と V の値でグリッドの数を調節 エディットモードで Lattice 各頂点の位置を編集
オブジェクト → Latticeの順に選択 Object > Parent( [CTRL] + [P] ) > Lattice Deform
オブジェクトを動かし、Latticeによる形状変形の効果を確認してください。