Bot3D 1,0 ToolKit  TIPS (3)  モデルの組み立て方

 

Bot3D 1.0 ToolKit を使っての「3Dトーキングヘッド」作成を支援するための、より具体的な「チップス」を、このコーナーで連載しています。

 

一回目の補足として、第3回目はモデルの組み立て方をご紹介します。

 

Bot3Dのモデルはボーンで変形されるスキン部分と、スキンを変形するボーン部分、そして、ボーンにアタッチされたbone asigined meshからなります。

 

 

Figure 1 スキンの作成の仕方

 

スキンは図のように、頭部、腕、体、それを包む服とするとよいでしょう。

手首から先は、bone asigned meshとなります。このメッシュはボーンで変形されないので、CPUにあまり負荷をかけません。

もうひとつBot3Dでの高速化テクニックとしてWrapテクニックが使えます。これはMayaWrap Deformerに似た技術ですが少し制限があります。頭部はWrapとするのがとても効果的です。

 

#詳しくは Bot3D 1.0 ToolKit Tutorial をご覧ください。

 

[memo] Wrapとは

Wrap技術は、ボーンモーフアニメーションなどを高速化させるために使われるテクニックです。

たとえば、MAYAでは、「ラップベースオブジェクト」と呼ばれる、より少ないポリゴンで構成されたメッシュを作り、これに、「ラップインフルエンスオブジェクト」と呼ばれる、それが影響する実際のポリゴンジオメトリに割り当てます。

その後、ラップベースオブジェクトをスキンとしてスケルトンに割り当てます。スケルトンの変形に伴い、ラップベースオブジェクトが変形するのですが、さらに、ラップインフルエンスオブジェクトをラップベースオブジェクトの変形に伴って変形させます。これには、FFD(Free Form Deformation)技術が使われます。FFDには等分格子が一般には使われますが、MAYAでは、任意の形状のラップベースオブジェクトをFFDのために使用することができます。

ボーンモーフのための計算頂点が少なくなるので、高速化が計られるのですが、Wrapを使わない場合の変形に比べると、変形が大雑把となりズレが生じます。

 

Bot3D 1.0では、Wrap変形のためのFFDとして、「不等分格子」を使用しています。

「等分格子」とは、例えば、ルービックキューブみたいなものを想像してもらえばいいのですが、「不等分格子」とは、直方体をx/y/z軸方向に任意数に分割したもので、分割間の比率は一定でなくともよいものです。これを使えば、任意形状をWrapとする場合よりも、変形を高速化するアルゴリズムが使えるのです。

 

Figure 2   Wrap部分をBotViewerで表示

「不等分格子」であるため、例えば、人体全体のモデルをWrapするにはふさわしくありません。Bot3D 1.0Wrap技術は、「トーキングヘッド」を構成することを念頭に考えられています。

まず、頭部部分の詳細メッシュを作成し、この中のクラスターをターゲットモーフさせて、リップシンクや表情変化を作ります。頭部詳細メッシュは、図のような、不等分格子でWrapします。Wrapメッシュは、さらに、スキンの一部としてスケルトン構造にスムースバインドします。

 

このような分割にする理由は次のとおりです-- 人の頭部は首は曲がりますが、首より上はボーンにより変形しません。しかも、ターゲットモーフが集中するのは、このボーンで変形しない部分にです!

 

Bot3D 1.0Wrap技術は、「トーキングヘッド」をリアルタイムにアニメーションさせるために、有効なオプチマイズ技術なのです。

 

 

 

 

Figure 3 ボーンの入れ方

 

バーチャルキャラクターにボーンを入れるには、図のようなやりかたが一般的です。

ただし、指までボーンを入れるのは標準のPCのパワーとしてはちょっと重たいのでやめたほうがよいでしょう。

 

Mayaで、このスキンとボーンをSmooth Bindして、ボーンによる滑らかな変形アニメーションを作成することができます。

アニメーションデータはMotion3Dファイルに保存されます。

 

Figure 4              頭部の作り方

頭部は詳しくは図のように作成するとよいでしょう。

図の斜線の部分がTips 2で説明したモーフターゲットとなるパーツです。

 

補足でテクスチャ用イメージデータの作成のしかたをご紹介します。

 

Bot3Dでは、RLAファイルをテクスチャ用イメージとして使用します。これは512×512など、縦横とも2の倍数のpixel数になっている必要があります。

 

RLA作成には、Mayaのコマンドラインツールimgcvtを利用するとよいでしょう。

 

#詳しくはMayaのドキュメントなどご参照ください。

 

 

テクスチャにレフレクションマップ使えます。(テクスチャやカラーとの合成はできません。)

 

次回のTipsは、少し上級編として、Bot3Dでの目の動かし方をご紹介いたします。

 

戻る