Bot3D 1,0 ToolKit TIPS (2) 「表情の作成の仕方」
2004/3/1
Bot3D 1.0 ToolKit を使っての「3Dトーキングヘッド」作成を支援するための、より具体的な「チップス」を、このコーナーで連載しています。
第2回目は 表情の作成の仕方です。
Bot3D では、キャラクターのリップシンク(口唇の会話に従う動き)や、感情表現のための表情変化のためにモーフターゲットを使用します。
モーフターゲットはキャラクターアニメーションではおなじみの手法ですが、いくつかの形状変化した3Dモデル(モーフターゲット)を用意し、このモデルの各頂点をリニアに補間して自由変形するアニメーションを作るものです。
リップシンクのためには、口まわりを変化させたターゲットを作成します。キャラクターのリアルさに合わせて、唇までにするか、舌や歯の変化まで作りこむかはクリエーターの自由です。
Memo:音素について
日本語はすべて「母音」と「子音」の音素「Phoneme」の組み合わせでできあがっています。
母音は、日本語の場合、あ、い、う、え、おの5つです。子音は母音の前にくっつく一瞬の短い音です。50音の縦の列だけあると考えてよいでしょう。日本語では「あいうえお」以外は基本的に「子音+母音」で音の単位ができています。これを専門用語では「モーラ」と呼びます。例外の子音だけの音は「ん」です。
例: あ=a か=ka (k+a) そ=so (s+o) ん=n
「そ」の音では、まず、唇を少し横に引き舌を上の歯の裏にあてた、短い「s」の子音の音の後、「o」の母音の長い音が続きます。
アニメーターを目指すのでしたら、鏡を見たりして自分の唇の動きを一度研究してみるとよいでしょう。
長くてはっきりした母音は重要ですので、あいうえおの5つのターゲットは必ず作るべきです。
子音は一瞬ですし、そうわからないのでどこまで作りこむかはキャラクターによるでしょう。いくつかの音素はひとつで代用させることもできます。「ま」の始めの形「m」は作ったほうがよいようです。
#サンプルのALの場合のモーフターゲットは表をご参考ください。
|
name |
説明 |
|
|
デフォルト |
normal |
ノーマル |
|
リップシンク用:母音 |
lip_a |
A |
|
|
lip_i |
I |
|
|
lip_u |
U |
|
|
lip_e |
E |
|
|
lip_o |
O |
|
リップシンク用:子音 |
lip_m |
M |
|
|
lip_t |
R / T / D / N |
|
|
lip_k |
K/G |
|
|
lip_s |
S / Z / SH / ZH / CH |
|
まばたき用 |
eyeclose |
閉じた目 |
|
感情モーフ用 |
smile |
笑み |
|
|
laugh |
笑い |
|
|
sad |
悲しみ |
|
|
angry |
怒り |
|
|
surprized |
驚き |
Figure 1 ALのモーフターゲットリスト

Figure 2 ALのモーフターゲット(3Dモデル)
Bot3Dでは、Phonemeファイルで音素とモーフターゲットを関連付け、Sentenceファイルで音素のsignを並べることにより、テキスト操作レベルでリップシンクアニメーションを自動的に簡単に作ることができます。
言い忘れましたが、モーフターゲットとして、「ノーマル」は必ず作成ください。これはすべての表情の基本です。それと、まばたき用の両目を閉じた顔も必要です。
表情には、笑み、笑い、怒り、悲しみ…など代表的なものがあります。これらは、口まわりだけでなく、目回り、特に眉の動きが重要です。どんな表情用モーフターゲットを作成するかは、キャラクターや使用目的によります。
#サンプルのALの場合のモーフターゲットは表をご参考ください。
Bot3Dの重要な技術として、Cluster(クラスター)があります。クラスターは3Dモデルの頂点の場合分けのことです。
Bot3Dでは、Cluster単位で別々にモーフィングを行わせることができます。
これは、まず、必要なところだけ動かすことができるので、CPUの負荷を軽くすることができます。
そして、クラスターごとに違ったモーフを行わせることにより、たとえば新しい表情を生み出したりすることもできます。

Figure 3 合成表情
#合成した表情例 a)
悲しい目+笑みの口 b)怒りの目+笑いの口
クラスターとして、口まわり、目回り、眉まわりを設定するのが一般的です。

Figure 4 クラスターの分け方
Clusterファイルを作成するには、クラスターの数だけ、基本オブジェクトを用意し、それぞれにクラスター領域を割り当てて指定します。
(注1)MayaのClusterとは若干使用法がことなるのでご注意ください。
(注2)Bot3Dでは、リップシンクモーフが表情モーフに優先されます。つまり、しゃべっているときは表情変化は口まわりには現れません。もし目回りも動くようでしたら、目回りだけの表情となります。
瞬きアニメーションは、Bot3Dでは、Phonemeファイルで<EyeBlink>タグを指定することにより、自動で行わせることができます。たとえば、こんな感じです。
<Auto>
<EyeBlink>
<closeDur value="0.3"/>
<closeDelt value="0.2"/>
<openDur value="3"/>
<openDelt value="0.5"/>
<openVisume value="open_eye"/>
<closeVisume value="close_eye"/>
</EyeBlink>
</Auto>
次のチップスでは、モデルの組み立て方をご紹介いたします。