Bot3D 1,0 ToolKit TIPS (1) 「動作の作成の仕方」
2004/2/6
Bot3D 1.0 ToolKit を使っての「3Dトーキングヘッド」作成を支援するための、より具体的な「チップス」を、このコーナーで連載していきます。
第一回目は 動作の作成の仕方です。
Bot3D Engineでは、バーチャルキャラクターの動作アニメーションは、数秒の「動作単位」として作成し、
それぞれに「記号」を割り当てて、発音記号とまったく同様に扱うことにより実現する方式を取っています。
[memo] Bot3Dの設計として、「会話と動作/表情を一体と扱う」ということをコンセプトとしています。
人間が会話する場合、まず、口まわりが動き、それに伴う音声がでます。
私たちはこの音声を耳で聞いて会話内容を認識します。
さらに、現実に目の前に話し相手がいる場合は、視覚による口唇の動きも認識しています。
言葉は単語を組み立ててできています。すべての単語には意味があり、必要な順で必要な単語が選択されています。
Bot3Dのコンセプトとして、これらとまったく同様に、会話に「視覚」も参加していると考えます。
これには「口唇の動き(リップシンク)」、「表情」、「動作」があります。それぞれの単位を音素(Phonemes)に対応させて、視覚素(Visumes)と呼びます。
人は会話するときに、「表情」、「動作」を気まぐれや無作為で入れているのではなく、意識していないとしても、会話を組み立てる要素のひとつとして、必要な時点で必要な要素を選択して表現しているはずです。
この意味で、視覚素は音素による「単語」とまったく同列に扱えるはずです。
Bot3Dでは、Sentenceファイルにおいて、発音記号と視覚素記号を同列に連続記述することにより、複雑な会話アニメーションを作成しています。
基本ポーズと基本姿勢
Bot3Dでは、動作アニメーションはキーフレームボーンアニメーションにより実現しています。
Bot3Dでボーンアニメーションを設定する場合、基本ポーズと基本姿勢を混乱してはいけません。
基本ポーズとは、スキンとボーン(スケルトン構造)を作成し、ボーンにスキンをバインドする時点でのキャラクターのポーズのことです。
Maya では、Animation->Skin->Bind Skin->Smooth Bindを使用します。
このとき、通常キャラクターモデルは、いわゆる「アジの開き」ポーズとして作成することが一般的のようです。
Bot3D Toolkitの注意事項として、SkinをModel3Dデータに変換保存する場合、この基本ポーズにて行わなければいけない、ということがあります。
もしも、アニメーションをつけてしまった後の場合は、Skin->Go to Bind Poseを行ってから、Model3Dデータを落とせばよいでしょう。

Figure 1 基本ポーズ
基本姿勢とは、個々の動作のスタート時点のポーズです。通常、なにもしていないときの最も自然な姿勢とします。
Bot3Dでは、基本的に、動作単位はこの基本姿勢に始まり、基本姿勢に終わるようキーフレームアニメーションを作成します。こうすることにより、動作が連続しても不連続になることを防ぐことができます。
応用として、基本姿勢をいくつか用意し、基本姿勢A->基本姿勢B .... 基本姿勢B->基本姿勢Aのようにつなげていってアニメーションを作成することもできます。
#Bot3Dでは、Phonemeファイルの<Action>タグでgradというパラメーターを設定することもできます。これは、もしも、ひとつの動作が終わらないうちに次の動作のスタート指示が入っても、このgrad(秒)を遷移期間として、始めの動作の現時点ポーズから、次のポーズの初めのポーズへ滑らかにつなぐ機能を与えます。

Figure 2 基本姿勢
動作の例:
Bot3DサイトにあるAL(シンプルバージョン)の動作単位の例をご紹介します。
このサンプルは、ToolKitのSamples/alBotに含まれています。
BotViewerで、top.xmlを開き、Motion/Sentence Playbackで、動作を選択してプレイバックすることができます。

Figure 3 ALの基本動作
|
no. |
name |
説明 |
no |
name |
説明 |
|
1 |
intro |
自己紹介 |
10 |
exp2 |
説明する(2) |
|
2 |
bow |
おじぎ |
11 |
dontworry |
気にするなよ |
|
3 |
exp1 |
説明する(1) |
12 |
left |
スタイリッシュなポーズ(左) |
|
4 |
no |
いいえと首を振る |
13 |
oversize |
両手を広げる |
|
5 |
question |
疑問 |
14 |
random1 |
ランダムな動き(1) |
|
6 |
surprize |
驚き |
15 |
random2 |
ランダムな動き(2) |
|
7 |
yes |
はいとうなずく |
16 |
right |
スタイリッシュなポーズ(右) |
|
8 |
armsHips |
両腕を腰にあてる |
17 |
thinking1 |
考え中(1) |
|
9 |
hispArms |
腰にあてた両腕を下ろす |
18 |
thinking2 |
考え中(2) |
# armHips -> hipsArms が始めと終わりで異なる基本姿勢を使う例です。
次回のTipsは、表情の作り方として、リップシンクや感情表現のためにどんなモーフターゲットを作成すればよいのかご紹介します。