|
TVMLのキャラクタとして登録するために、TVMLで認識できるファイルを作成します。このファイルは拡張子.bmの付いたテキストファイルで、これをBMファイルと呼びます。ここには、関節の長さや、その他アニメーションに必要な数値が記述されています。BMファイルは次のようなものです。ここでは、プレイヤーに付属しているもっとも単純なキャラクタ「ボブ」のbob.bmを例にとって、赤茶文字でパラメータの説明をします。
BMファイルの例(bob.bm)
#
BOB bm file ←#始まりの行はコメントです
Version 1.2 ←フォーマットのバージョン番号、1.2としてください
ModelFile bob.bmo ←bmoファイル名を指定して下さい
# 各部品の長さなどの指定 ←単位はメートル(図3参照)
thickness_foot 0.033
length_legLower 0.18
length_legUpper 0.18
length_thigh 0.051
length_chest 0.225
length_shoulder 0.108
length_armUpper 0.18
length_armLower 0.105
length_neck 0.045
ypos_eye 0.38 →目のhead原点からのy座標(lookで使用される目の位置)
zpos_eye 0.12 →目のhead原点からのz座標(lookで使用される目の位置)
# リセットポジションの姿勢の指定
initpose_hiplevel 0.348
→リセットポジションにおける腰の高さ。この値は重要です。通常は、
initpose_hiplevel = length_legLower + length_legUpper - (微小遊び)
とします(注:thickness_footは含みません) ここで(微小遊び)を大きくすると、デフォルトのポーズでひざが曲がったような形になります。BobやMaryがこのタイプです。また、これをゼロにすると、ひざが一直線になります。ただ、いくらか値を持たせたほうが、walkやstepなどの終わりで止まり方がきれいになります。
initpose_LeftLowerArm_rotz 70.0
initpose_RightLowerArm_rotz 70.0
→リセットポジションにおける腕の角度(単位:度)を指定します。使える値は以下です
initpose_LeftUpperArm_rotx, initpose_RightUpperArm_rotx
initpose_LeftUpperArm_roty, initpose_RightUpperArm_roty
initpose_LeftUpperArm_rotz, initpose_RightUpperArm_rotz
initpose_LeftLowerArm_rotx, initpose_RightLowerArm_rotx
initpose_LeftLowerArm_roty, initpose_RightLowerArm_roty
# 歩き方のパラメータの指定
walkstopsit_speed 0.2 →歩きの速度。明確な単位がないのでカット&トライしてください
walkstopsit_stroke 0.402 →歩きの歩幅(m)
walkstopsit_waistline 0.3204 →歩いているときの腰の高さ(m) この値はinitpose_hiplevelより小さくします。walkstopsit_strokとも関係するのでカット&トライで決めます。この値が大きすぎると、歩いている時に足が宙に浮きます。小さすぎると、ひざを曲げて歩きます
walkstopsit_raise 0.081 →歩きの時の足の振り上げ高さ(m)
# 座るときのパラメータの指定
hiplevel_sit 0.18 →座ったときのおしりの高さ(m)
hipzpos_sit -0.15 →座ったときのおしりのz方向の位置(m)
# しゃべりのリップシンクのパラメータの指定
talk_mouth_degree 0.7 ←しゃべり音量に対する口開けのていど
talk_upjaw_degree 10.0 ←上顎の動きのていど
talk_elast_normal -0.002 ←しゃべりにおける体の上下のていど
talk_elast_excite -0.02 ←talkコマンドでemotion=exciteにしたときのしゃべりにおける体の上下のていど
# openmouthのパラメータの指定
openmouth_degree 1.0 ←openmouthにおける口開けのていど
openmouth_upjaw_degree 2.5 ←openmouthにおけるhead(あご以外の頭全体)の回転ていど
# shiverのパラメータの指定
shiver_degree 1.8 ←shiverにおける震えのていど
# 各種動作のスピード ←明確な単位がないのでカット&トライしてください
watch_speed 0.3 ←look、gazeにおける首回しスピード
turn_speed 0.3 ←turnにおける体回しスピード
pose_speed 0.4 ←poseにおける体回しスピード
bow_speed 1.0 ←bowにおける体回しスピード
以上がBMファイルの説明です。これら数値については、既存のファイルを参考にして、適当にモディファイして下さい。パラメータの値が変だったり、パラメータ数が足りなかったりすると、変な動きをしたり動かなかったりします。
各関節間の長さと、キャラクタのスケルトンの関係は以下の通りです。
図3 各関節間の長さと、キャラクタのスケルトンの関係

|