LogoMark.png

reserved02 のバックアップ(No.2)


第13回 様々な形状変形の方法

3DCG演習/2023?2022.08.24 -

解説動画

 [[既読確認>]]

CONTENTS




はじめに

前回は、オブジェクトがシーンの中で移動・回転する事例を紹介しましたが、今回は、オブジェクトの形状を変形されるアニメーションを紹介します。



SapeKeys

アメーバのように形を変えたり、顔の表情を変えたり、特定のオブジェクトを構成する頂点座標の相対的移動によって変形するアニメーションを作成する際に使用する技術です。以下、メッシュの変形事例を紹介します。

シェイプキーの作成

ShapeKeys.jpg

対象オブジェクトを選択して、プロパティーエディタ の ObjectData タブを開きます(右図)。

以下の作業は、ワイヤーフレームモードで行うことを推奨します。

キーフレームの記録

キーフレームの記録方法は、これまでと同様です。

アニメーションの当該フレームまでタイムカーソルを進める
各キーの変形度合いをValueで調整して目的の表情をつくる
各キーごとに ''Value入力エリアの上で [ I ] Key''




Armature

Armature はキャラクターアニメーションを実現する際の骨組みとなる部品で、単体ではレンダリングされませんが、Armature に関連付けられたオブジェクトはArmature の関節を利用して自在に変形させることが可能になります。

Armature オブジェクトの配置と骨格づくり

Armature は、他のオブジェクトと同様に、原点(origin)、位置(position)、回転(rotation)、倍率(scale factor)といった情報を持つとともに、EditMode 内で編集可能なデータブロックを持っています。

編集モードでは、位置・回転・倍率に関するデフォルト形状を Rest Position というデータとして保持していますが、Object Mode とPoseMode でキーフレームを設定することにより、ポーズを付けていくことができます。

Armature1.jpg

Armature を配置する場合は、一般に以下の手順で作業を行います。

[SHIFT] + [C] でカーソルをワールドの原点に置く
[Numpad1] で ワールドを正面ビューに切り替える
HeaderMenu > Add > Armature
Armature2.jpg

骨格は、初期 Bone を Extrude してつくります。

[TAB] で EditMode に入る
Bone の端点を選択して、[E] Key > 枝を伸ばす


Skinning

Armature 自体はデフォーマ(変形制御のためのオブジェクト)であって、レンダリング時には透明になります。Armature を骨格として機能させるためには、動かしたいオブジェクトと親子関係を設定する必要があります。

Armature は通常複数の Bone(骨)から構成されますが、オブジェクトとの対応関係には2通りの方法が考えられます。ひとつはオブジェクトの関節に相当する部分の頂点をArmatureの関節に関連付ける方法、もうひとつは複数のオブジェクトをArmatureを構成するBoneひとつひとつに関連付ける方法です。前者は「Armatureの動きに従ってオブジェクトが変形」、後者は「Armatureの動きに従って各オブジェクトが移動」という違いになります。

以下の作業は、ワイヤーフレームモードで行うことを推奨します。

Object > Armature の場合

SetParentArmatureDeform.jpg

Object > Bone の場合

SetParentBone.jpg

Pose 編集

Armature の Bone をアニメーションさせるには、PoseMode を使用します。

[CTRL] + [TAB]
Skinning1.jpg

PoseMode では、それぞれの Bone を回転させて、ポーズをつけながらキーフレームを記録することで「振り付け」ができます。

Inverse Kinematics|IK

関節の動きを伴うキャラクターのアニメーションでは、階層上の親が子をコントロールする Forward Kinematics と、子から逆に親をコントロールする Inverse Kinematics とがあります。特に後者は、指先をつかんで腕の動きをコントロールするなど、「振り付け」がしやすい点で重要な手法です。

Lattice

Latticeは3Dの格子から成る外部コントロール構造で、それ自体はレンダリングされませんが、関連付けられたオブジェクトは、Latticeの頂点の起伏に応じて滑らかにその形状を変化させた形でレンダリングされます。波打つような形状変化をさせたい場合などに有効な手段です。

設定の手順

オブジェクトを動かし、Latticeによる形状変形の効果を確認してください。