Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
目次
1 アプリケーション概要 ................................................................................................................................................... 4
1-1 アプリケーションの起動と制御 ............................................................................................................................... 5
1-1-1 ビューワの起動 ....................................................................................................... 5
1-1-2 ビューワの設定ファイル ........................................................................................ 6
1-1-3 ビューワの制御 ....................................................................................................... 7
1-2 機能概要 ......................................................................................................................................................................... 8
1-2-1 キャラクタコマンド ................................................................................................ 8
1-2-2 カメラコマンド ....................................................................................................... 8
1-2-3 スタジオセットコマンド ........................................................................................ 8
1-2-4 小道具コマンド ....................................................................................................... 8
1-2-5 照明コマンド ........................................................................................................... 8
1-2-6 スーパーインポーズコマンド ................................................................................. 8
1-2-7 サウンドコマンド ................................................................................................... 8
1-2-8 ナレーションコマンド ............................................................................................ 8
1-2-9 ドローイングコマンド ............................................................................................ 8
1-2-10 ムービーコマンド ................................................................................................ 8
1-2-11 タイトルコマンド ................................................................................................ 8
1-2-12 ビデオ(スイッチャー)コマンド ...................................................................... 8
1-2-13 CGコマンド ....................................................................................................... 8
2 モデルファイル ............................................................................................................................................................... 9
2-1 セット・小道具モデル .................................................................................................................................................. 9
2-2 キャラクタモデル .......................................................................................................................................................... 9
2-2-1 bvhアニメーション .............................................................................................. 11
2-2-2 bmファイル .......................................................................................................... 17
2-2-3 bmoファイル ........................................................................................................ 20
2-3 モデルファイルの圧縮 .............................................................................................................................................21
AnimeViewer説明
4/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
1 アプリケーション概要 TVML ビューワアプリケーション(AnimeViewer.exe 以下本アプリケーションといいます)は
TVML スクリプトを解析、内容に従って外部データ(モデルファイル・モーションデータ・音声フ
ァイル・動画ファイル)の読込み、シーンの描画を行います。
[モデルファイル]
Wavefront OBJ
DirectX Xfile
[音声ファイル]
Wave ファイル
MP3ファイル
TVML ビューワ
(AnimeViewer)
・ Wave ファイル音声
・ 音声認識プログラム
・ テキスト読み上げ音声
[モーション]
BVH
図 1 TVMLビューワ概略図
[動画ファイル]
DirectShow
対応のファイル
TVIF
共有メモリ
クライアント
プログラム
クライアント
プログラム
tvmlSocket
(LAN) クライアント
プログラム
クライアント
プログラム
スクリプト・ビューワ制御データ
スクリプト
カメラ位置等
AnimeViewer説明
5/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
1-1 アプリケーションの起動と制御
本アプリケーションは大きく 6つのモジュールから成り立っています。
AnimeViewer : TVMLスクリプトを解析、内容に従ってファイルの読込み、描画を実行す
る。
TVIF : 共有メモリを介して、ビューワとクライアントプログラムを繋ぐモジュール。TVML
スクリプト、ビューワの制御コマンド(ウィンドウ操作、起動、リセット等)がビューワに送られ
る。(別紙“TVML外部制御機能ドキュメント TVIF”を参照して下さい)
tvmlSocket : ローカルエリアネットワークを介してクライアントからスクリプト、カメラ・小道
具・キャラクタの描画情報(位置、回転、スケール)を送信する為のモジュール。
(別紙”TVML外部制御機能ドキュメント tvmlSocket”を参照して下さい)
tvSpeak : 外部音声入力から音量を取得するためのモジュール。視覚素を取得するイ
ンターフェースを備えているが、現在は未実装。
(別紙”tvSpeak ドキュメント”を参照してください)
tvMedia : サウンドファイルをコントロールするためのモジュール。
tvFont : フォントデータ(ビットマップ)を作成するモジュール。
1-1-1 ビューワの起動
ビューワの起動方法には 2種類の方法があります、1つは”AnimeViewer.exe”を単体で起動する
方法、もう1つは TVIFのAPIを利用して起動する方法です。
それぞれの方法には以下のような特徴があります。
単体起動 : ビューワが枠つきのウィンドウで起動、ウィンドウサイズ・位置等はビューワ内で記述
されたデフォルトになる。tvmlSocketで開くホスト名・ポート番号は同フォルダ内にあ
る”AnimeViewer.ini”に準ずる。 TVIFによる起動 : ウィンドウサイズ・位置や、ホスト名・ポート番号は TVIFの APIでクライアント
から指定された値が適用される。
ビューワを単体で起動する場合、以下の起動オプションを指定することが出来ます。
- tvmlCode “文字列” AnimeViewerを識別する識別名の設定
- caption “文字列” ウィンドウタイトルの文字列
- hostname “文字列” ホスト名(PC名称、IPアドレス、”localhost”)
- hostport 数値 オープンするポートの番号
起動オプションでのホスト名、ポート番号の指定は”AnimeViewer.ini”内での設定より優先されま
す。
AnimeViewer説明
6/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
1-1-2 ビューワの設定ファイル
ビューワの設定ファイル”AnimeViewer.ini”では以下の項目について設定を記述することが出来
ます。
名称 パラメータ([]内はデフォルト) 解説
windowMode [true] or false falseでフルスクリーン
cullingMode [true] or false 背面カリングの有無
lightInverse true or [false] ライトの向き反転の有無
modelstation [true] or false リセット時 CGモデル解放の有無
(falseでリセット時に解放)
shadowResolution 数値 [1024] 影生成用シャドウマップテクス
チャの解像度
filepath “フォルダ名” マルチメディアファイルの検索
対象フォルダ(複数記述可)
defaultmodel “ファイル名(“.bm”)” キャラクタモデル(“.bm”)が見つ
からなかった場合のデフォルト。
loadmodel “モデル名”, “ファイル名
(“.bm”)”
ビューワ起動時に読み込むモデ
ルファイル
hostname IPアドレス or [PC名称] or
localhost
ビューワがバインドするアドレ
ス(起動オプションが優先)
hostport 数値 [10000] ビューワがバインドするポート
番号(起動オプションが優先)
defaultvoice 音声名称 [“”] スクリプトで指定された音声合
成が見つからなかった場合のデ
フォルト
sharepose [true] or false ポーズ(definepose等)をキャラ
クタ間での共有の有無。
recoServerName IPアドレス or PC名称 or
[localhost]
音声認識アプリケーションが起
動している PCのアドレス
recoServerPort 数値 [6001] 同ポート番号
showfps true or [false] 画面左下隅に FPSを表示する。
framerate 数値 [30] フレームレート(1 ~ 60)
speakAdjustLpf 数値 [0] 合成音声に掛かるローパスフィ
ルタのデフォルト値。
speakAdjustLevel 数値 [1] 合成音声の音量に対する口パク
のデフォルト感度。
sounddevice 出力音声デバイス名称 音声出力先のデバイス名
readContinueTime 数値 [10] (ミリ秒) パラメータ”wait=no”のスクリプ
トが読み込まれた後、次のスクリ
プトが読み込まれるまでの待ち
時間。
(この間、スクリプト、描画のア
ップデートは実行されません)
AnimeViewer説明
7/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
windowType 数値(0~3) [0] ビューワのウィンドウ形式を数
値で指定。
0:ウィンドウ枠あり
1:ウィンドウ枠無し
2:メインウィンドウにフルサイ
ズ表示(枠無し)
3:サブウィンドウにフルサイズ
表示(枠無し)
1-1-3 ビューワの制御
起動したビューワに対して TVML スクリプトを発行するには、TVIF又は tvmlSocketの APIを利
用します。
TVIFで発行したスクリプトは共有メモリにコピーされ、ビューワによる読込み待ちの状態になりま
す。複数のクライアントプログラムがあった場合でも、このような待機状態に入るスクリプトは常に1つ
であり、ビューワの読込み・解析が終了しスクリプトの上書きが可能になったタイミングで発行された
スクリプトのうち、唯一つが共有メモリに上書きされ、待機状態に入ります。
tvmlSocketで発行されたスクリプトはビューワ内のキューに順次追加されます、ビューワは
tvmlSocket経由で取得したスクリプトを TVIFからのスクリプトに優先して解析する為、キューに格納
されたスクリプトの解析が全て終了するまで TVIFで新たなスクリプトを発行することは出来ません。
tvmlSocketからはカメラ・小道具の位置・回転・スケール、キャラクタタのジョイント情報が送信さ
れます、これらのデータは camera:movenentや character:keyframe等のスクリプトで決定されるそれ
ぞれのパラメータに優先して利用されます。
TVMLビューワ カメラパラメータ
小道具パラメータ
キャラクタジョイント情報
スクリプトキュー
character:pose…
character:talk..
drawing:position.
. …..
…..
共有メモリ
prop:position….
TVIF
tvmlSocket
①
②
③
数値は優先度
図 2 外部制御の概略図
AnimeViewer説明
8/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
1-2 機能概要
本アプリケーションに実装されている TVML スクリプトの実行機能。
1-2-1 キャラクタコマンド
キャラクタモデル(DirectX Xfile)の読込み・アニメーション・描画、Microsoft Speech API(以下
SAPI といいます)によるテキスト読み上げを実行します。
キャラクタ発声の際にはキャプションの表示・モーフィングによる口の動作表現を行います。
1-2-2 カメラコマンド
カメラの移動、画角の設定等を実行します。
1-2-3 スタジオセットコマンド
スタジオセットモデル(Wavefront OBJ)の読込み・描画を実行します。
1-2-4 小道具コマンド
小道具モデル(Wavefront OBJ)の読込み・描画、配置の設定、表示・非表示の切り替えを実行し
ます。
1-2-5 照明コマンド
CGの光源(平行光源、点光源、スポットライト)の作成、各光源のパラメータ設定を実行します。
1-2-6 スーパーインポーズコマンド
スーパーインポーズの描画を実行します。
1-2-7 サウンドコマンド
サウンド(Wave ファイル)の読込み、コントロール(再生・停止)を実行します。
1-2-8 ナレーションコマンド
SAPIによるテキストの読み上げ、ナレーション音声の再生を実行します。
音声再生時にはキャプションの表示を行います。
1-2-9 ドローイングコマンド
イメージファイルをレイアウトして組み合わせたテクスチャを作成、小道具(3Dの板)に表示しま
す。
1-2-10 ムービーコマンド
DirectShow を利用してムービーファイルからテクスチャを作成、小道具(3Dの板)での表示・全画
面表示を実行します。
1-2-11 タイトルコマンド
タイトル画面(パターン(白・黒・カラーバー)、イメージデータ等)を設定します。
1-2-12 ビデオ(スイッチャー)コマンド
通常描画、タイトル画面、ムービー等の画面のスイッチングを実行します。
1-2-13 CGコマンド
鏡面の描画、影の描画等のエフェクトを操作します。
AnimeViewer説明
9/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
2 モデルファイル 2-1 セット・小道具モデル
セット・小道具として読み込むモデルは単一のモデルファイルで、読み込み可能なフォーマット
は “obj” ・ ”x”(DirectX)、又”obj”のマテリアル定義ファイル”mtl”にも対応しています。
モデルは右手系、Z軸正の向きを正面にして作成する必要があります(現行 TVMLの“obj”ファイ
ルをそのまま利用するため)。
2-2 キャラクタモデル
キャラクタに関するアニメーションパラメータ、モデルファイル名等は”.bm”ファイルと”.bmo”ファイ
ルに分割して記述します。
“.bm”ファイルにはアニメーションのパラメータ・初期姿勢のパラメータ・スキンメッシュのボーンに
掛けるスケール値等、主にボーン構造に対するパラメータを、“.bmo”ファイルにはモデルファイル
名(体・頭等)、モデルファイル数に依存するモーフィング用パラメータ等を記述します。
TVMLビューワは右手系を採用していますが、キャラクタモデルは全て左手系で作成されている
必要があります、これは DirectX付属のビューワとの整合性を採る為のものです。
右手系で作成されたキャラクタを用いなければならない場合は、”bone_scale_z”・”body_scale_z”に
負のスケールを設定して調整を行う必要があります。頭部のモデルパーツは体モデル内のボーン
情報を用いて描画されている為、”bone_scale_*”によるスケールの影響を受けます。”body_scale_*”
は体のメッシュそのものに対するスケールですので、頭部が影響を受けることはありません。
従って、体のみが右手系の場合には”body_scale_z”、体・頭部両方の場合は”bone_scale_z”、頭
部のみの場合には”bone_scale_z”・”body_scale_z”両方に負のスケールを設定する必要があります。
又、キャラクタモデルは腰のボーン(“Frame_Hips”)を原点に Yの正方向が頭頂の方向、体の正
面が Z軸正の方向を向くように作成する必要があります。
Y
X
Z
図 3 モデルデータの軸方向
AnimeViewer説明
10/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
頭部のモーフィングに関するパラメータは”.bmo”ファイルに記述します、頭部モデルは大きく7つ
のパーツから構成されています。
頭:口パク”あ、い、う、え、お、ん”の 6つのモデル
瞼:左右のモデル、それぞれに開閉の 2つのモデル
目:左右のモデル
眉毛:左右のモデル
髪モデル
耳モデル
鼻モデル
それぞれのモデルファイルを指定する項目名(下記 ”体モデル、モーフィング用の頭部モデルフ
ァイル名”参照)は同一名称のものを”.bmo”ファイル内に複数記述できます。この場合、ファイル先
頭から順番に 0を基準としたインデックスが割り振られます。
例 1)
eyebrowL "eyebrowL.x"
eyebrowL "eyebrowL_hpy.x"
例 1のように記述されていた場合は”eyebrowL.x”のインデックスは 0、”eyebrowL_hpy.x”のインデ
ックスは 1になります。同様に “eyebrowR.x”が 0、”eyebrowR_hpy.x”は 1になります。
顔・瞼は構成されるモデル全てで1つとみなされ、1組に対して1つのインデックスが割り振られま
す。
例 2)
eyelidLO "eyelidL.x"
eyelidLC "eyelidL_close.x"
eyelidLO "eyelidL_hpy.x"
eyelidLC "eyelidL_hpy_close.x"
瞼は開閉モデル一対で構成されているので(O と C)、例 2の場合”eyelidL.x”・”eyelidL_close.x”
のインデックスは 0、”eyelidL_hpy.x”・”eyelidL_hpy_close.x”のインデックスは 1になります。又、1組
のモデルをまとめて記述する必要はありません、下記例 3でも例 2 と同様のインデックスが割り振ら
れます。
例 3)
eyelidLO "eyelidL.x"
eyelidLO "eyelidL_hpy.x"
eyelidLC "eyelidL_close.x"
eyelidLC "eyelidL_hpy_close.x"
同様に顔モデルも faceA・faceI・faceU・faceE・faceO・faceMの 1組に対して 1つのインデックスと
なります。
このようにして割り振られたインデックスは、表情を定義する”expression_*”で使用します。”*”の
部分にはコマンド character:expression のパラメータ”type”で指定する文字列を記述します。
“expression_*”に続く数値はそれぞれ顔・瞼・眉毛・目・髪・耳・鼻のモデルデータのインデックス
になります。
AnimeViewer説明
11/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
例 4)
expression_happy 0 1 1 2 1 2 3
例 4のように記述した場合は、TVML コマンド
character:expression(name=CharacterA, type=happy)
によって、顔は 0番、瞼は 1番、眉毛は 1番、目は 2番、髪は1番、耳は2番、鼻は3番のモデル
が描画されます。
モーフィングによる描画モデル生成時に、ウェイト値を適用する2種類の方式があります。
morph : ウェイト値に基づいてモデルの中間状態を生成し、滑らかにモデルを変更
switch : 最大のウェイト値を持つモデルに瞬時に切り替わる
モーフィング方式の設定は”.bmo”ファイル内の”type_*”で行います。又、表情によるモーフィング
以外の独自のモーフィングを持つモデル(口:口パク、瞼:まばたき)に対する設定は、morph・switch
を”_”でつないで1番目に表情によるモーフィングの方式、2番目に独自モーフィングの方式を設定
します。
例 5)
type_head switch_morph
type_eyelid morph_switch
type_eye morph
type_eyebrow switch
2-2-1 bvhアニメーション
BVHファイルに記録されたアニメーションを AnimeViewerのキャラクタで再生することが出来ま
す。ボーン名称と同じ名称のジョイントが BVH ファイルに記述されていた場合に、対応するボーン
に値が適用されます。ボーン名称に対応しないジョイントのデータは切り捨てられます。
ボーン名称
ボーン名称 体の部位
Hips 腰(体の基準位置)
Chest 胸(1)
Chest1 胸(1)
Chest2 胸(2)
Chest3 胸(3)
Neck 首
Head 頭の付け根
RightCollar 首と右肩の間
RightShoulder 右肩
RightElbow 右肘
RightWrist 右手首
AnimeViewer説明
12/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
LeftCollar 首と左肩の間
LeftShoulder 左肩
LeftElbow 左肘
LeftWrist 左手首
RightHip 右ももの付け根
RightKnee 右ひざ
RightAnkle 右かかと
LeftHip 左ももの付け根
LeftKnee 左ひざ
LeftAnkle 左かかと
RightEye 右目
LeftEye 左目
RightThumb1 右手親指第一関節
RightThumb2 右手親指第二関節
RightThumb3 右手親指第三関節
RightThumbEff 右手親指先端
RightIndex1 右手人差し指第一関節
RightIndex2 右手人差し指第二関節
RightIndex3 右手人差し指第三関節
RightIndexEff 右手人差し指先端
RightMiddle1 右手人差し指第一関節
RightMiddle2 右手人差し指第二関節
RightMiddle3 右手人差し指第三関節
RightMiddleEff 右手人差し指先端
RightRing1 右手薬指第一関節
RightRing2 右手薬指第二関節
RightRing3 右手薬指第三関節
RightRingEff 右手薬指先端
RightPinky1 右手小指第一関節
RightPinky2 右手小指第二関節
RightPinky3 右手小指第三関節
RightPinkyEff 右手小指先端
LeftThumb1 左手親指第一関節
LeftThumb2 左手親指第二関節
LeftThumb3 左手親指第三関節
LeftThumbEff 左手親指先端
LeftIndex1 左手人差し指第一関節
AnimeViewer説明
13/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
LeftIndex2 左手人差し指第二関節
LeftIndex3 左手人差し指第三関節
LeftIndexEff 左手人差し指先端
LeftMiddle1 左手人差し指第一関節
LeftMiddle2 左手人差し指第二関節
LeftMiddle3 左手人差し指第三関節
LeftMiddleEff 左手人差し指先端
LeftRing1 左手薬指第一関節
LeftRing2 左手薬指第二関節
LeftRing3 左手薬指第三関節
LeftRingEff 左手薬指先端
LeftPinky1 左手小指第一関節
LeftPinky2 左手小指第二関節
LeftPinky3 左手小指第三関節
LeftPinkyEff 左手小指先端
Tail1 尻尾(1)
Tail2 尻尾(2)
Tail3 尻尾(3)
RightHorn1 右角(1)
RightHorn2 右角(2)
LeftHorn1 左角(1)
LeftHorn2 左角(2)
RightThumb0 右手親指第 0関節
RightIndex0 右手人差し指第 0関節
RightMiddle0 右手中指第 0関節
RightRing0 右手薬指第 0関節
RightPinky0 右手小指第 0関節
LeftThumb0 左手親指第 0関節
LeftIndex0 左手人差し指第 0関節
LeftMiddle0 左手中指第 0関節
LeftRing0 左手薬指第 0関節
LeftPinky0 左手小指第 0関節
ForeHead 額
NoseUp 鼻の付け根(鼻根)
NoseTop 鼻の頭
L_Nose 左鼻翼
L_NoseBridge 鼻梁中央の左側
AnimeViewer説明
14/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
R_Nose 右鼻翼
R_NoseBridge 鼻梁中央の右側
L_Brow01 左眉頭
L_Brow02 左眉山
L_Brow03 左眉尻
R_Brow01 右眉頭
R_Brow02 右眉山
R_Brow03 右眉尻
L_Up_Eye 左上眼瞼
L_Low_Eye 左下眼瞼
L_Eye_Corner 左目尻
R_Up_Eye 右上眼瞼
R_Low_Eye 右下眼瞼
R_Eye_Corner 右目じり
Center_Up_Mouth 上唇中央
Center_Low_Mouth 下唇中央
L_Up_Mouth 上唇左側
L_Side_Mouth 左口角
L_Low_Mouth 下唇左側
R_Up_Mouth 上唇右側
R_Side_Mouth 右口角
R_Low_Mouth 下唇右側
Jaw_Root 顎付け根
Center_Jaw 顎下部
Center_Up_Jaw 顎上部
L_Jaw01 顎左側
L_Jaw02 顎左関節
R_Jaw01 顎右側
R_Jaw02 顎右関節
Tongue01 舌付け根
Tongue02 舌中央
Tongue03 舌先端
Tongue04 舌先端左側
Tongue05 舌先端右側
Low_Teeth01 上顎の歯(付け根部分)
Up_Teeth01 下顎の歯(付け根部分)
L_Cheek01 左上頬内側
AnimeViewer説明
15/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
L_Cheek02 左上頬中央
L_Cheek03 左上頬外側
L_Cheek04 左下頬内側
L_Cheek05 左下頬中央
L_Cheek06 左下頬外側
R_Cheek01 右上頬内側
R_Cheek02 右上頬中央
R_Cheek03 右上頬外側
R_Cheek04 右下頬内側
R_Cheek05 右下頬中央
R_Cheek06 右下頬外側
1つのBVHファイルから取得したアニメーションデータは一括してキャラクタのデータとして管理
されますが、BVH ファイルにチャンネルの記述が無いボーンについてはアニメーション無しとして
取り扱われ、他のアニメーションと合成する場合には無視されます。
BVHアニメーション再生状態は再生コマンド character:keyframeのパラメータでコントロールす
ることが出来ます。
・character:keyframeパラメータ
BVH 1 BVH 2 合成結果
図 4 BVHアニメーションの合成
AnimeViewer説明
16/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
キャラクタの原点位置である Hipsの位置はキャプチャされた状況に依存します。そのままアニメ
ーションとして適用した場合、BVH ファイルのデータより腰位置の高いキャラクタは足が沈み、腰位
置の低いキャラクタは空中に浮いてしまいます。
名称 パラメータ([]内はデフォルト) 解説
ycale スケール値 [1.0] キャラクタの原点(Hips)の動きに対
する縦方向のスケール値
xzscale スケール値[1.0] キャラクタの原点(Hips)の動きに対
する平面上の動きのスケール値
stopmode [“reset”] or “remain” アニメーション後の処理の設定
“reset” : デフォルトポーズ(直立)
に戻る
“remain”: アニメーション最後のポ
ーズのまま停止
resettime 秒 [1.0] stopmodeが”reset”の場合に、アニ
メーション終了からデフォルトポー
ズに戻るまでの時間を指定
preresettime 秒 [1.0] 同トラックで再生中のアニメーショ
ンとのブレンド時間を設定。
BVHアニメーション開始から
preresettime経過後に直前のアニ
メーションは停止する。
repeat ループ回数 [1] BVHアニメーションのループ再生回
数を指定。0の場合は∞ループで、
同トラックに他のアニメーションが
追加されるまで再生を続ける。
speedratio スピード [1.0] アニメーション再生スピードに対す
る倍率。
from フレーム番号 [-1] BVHアニメーション開始フレーム番
号。-1なら先頭から。
to フレーム番号 [-1] BVHアニメーション終了フレーム番
号。-1なら最後まで。
rootjoint ジョイント名 BVHファイルに記述されているジョ
イント名を指定することで、指定ジ
ョイント以降の階層のアニメーショ
ンのみを再生する
usettrans “on” or [“off”] BVHファイルに記述されているポジ
ション値を反映させるかどうかを指
定する。
ydiff “on” or [“off”] “on”を指定すると、キャラクタの原
点(Hips)の移動アニメーションは初
期位置からの差分のみが適用される
track 番号 [0] アニメーションミキサー内のトラッ
ク番号。(エラー! 参照元が見つか
りません。)参照。
AnimeViewer説明
17/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
bmファイルに設定する値”bvh_scale”は腰位置の移動値に対するスケール値で、これを利用す
ることで BVHアニメーション再生中の腰位置の不具合を修正することが出来ます。図 5の例の場
合、左側には”bvh_scale”を 1.0未満に、右側には 1.0より上の値を指定すれば、足を床に設置させ
ることが出来ます。又、”bvh_scale”の値は平面上の移動(x,z)にも適用される為、腰の高さ(≒足の
長さ)に合う移動を実現できます。
bmファイルで”bvh_scale”を設定しなかった場合は、キャラクタの腰の高さを BVH ファイルでの
腰の初期高さで割った数値が割り当てられます。従って指定無しの場合は、再生する BVH ファイ
ルによって”bvh_scale”の値が変動することになります。
2-2-2 bm ファイル
・モデル描画パラメータ
名称 解説
ModelFile “.bmo”ファイル名
bone_scale_x bodyモデルから取得したジョイントのデータを
利用する際に掛けるスケール値(X軸)
bone_scale_y bodyモデルから取得したジョイントのデータを
利用する際に掛けるスケール値(Y軸)
bone_scale_z bodyモデルから取得したジョイントのデータを
利用する際に掛けるスケール値(Z軸)
body_scale_x bodyモデル描画に掛かるスケール値(X軸)
body_scale_y bodyモデル描画に掛かるスケール値(Y軸)
body_scale_z bodyモデル描画に掛かるスケール値(Z軸)
face_rotate_x face*モデルに掛ける回転値(X軸)
face_rotate_y face*モデルに掛ける回転値(Y軸)
face_rotate_z face*モデルに掛ける回転値(Z軸)
bvh_scale BVHアニメーションデータをモデルに適用する際
に掛けるスケール値
t_pose T型ポーズキャラクタフラグ(T字のキャラクタの
場合 trueに設定、デフォルトは false)
図 5 BVHアニメーションの腰位置
AnimeViewer説明
18/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
leye_translate x y z 左目の位置調整
reye_translate x y z 右目の位置調整
leyebrow_translate x y z 左眉の位置調整
reyebrow_translate x y z 右眉の位置調整
Leyelid_translate x y z 左まぶたの位置調整
reyelid_translate x y z 右まぶたの位置調整
hair_translate x y z 髪の位置調整
ear_traslate x y z 耳の位置調整
nose_tranlate x y z 腰の高さ
・初期姿勢用パラメータ
名称 解説
initpose_LeftUpperArm_rotx 左上腕の x角度
initpose_RightUpperArm_rotx 右上腕の x角度
initpose_LeftUpperArm_roty 左上腕の y角度
initpose_RightUpperArm_roty 右上腕の y角度
initpose_LeftUpperArm_rotz 左上腕の z角度
initpose_RightUpperArm_rotz 右上腕の z角度
initpose_LeftLowerArm_rotx 左前腕の x角度
initpose_RightLowerArm_rotx 右前腕の x角度
initpose_LeftHand_roty 左手の y角度
initpose_RightHand_roty 右手の y角度
initpose_hiplevel 腰の高さ
・カメラクローズアップ位置決定用パラメータ
名称 解説
where_of_camera_look_at カメラ注視点の調整(加算)
width_face 頭の幅(モデルの数値より優先)
height_face 頭の高さ(モデルの数値より優先)
・口パク調整用パラメータ
名称 解説
speak_adjust_level 音圧に対する口パクの感度(0.0~)
speak_adjust_lpf 合成音声にかかるローパスフィルタ係数(0.0
~1.0)
TVML スクリプトアニメーション用パラメータ
名称 解説
walkstopsit_speed 歩きのスピード
walkstopsit_stroke 歩きの歩幅
walkstopsit_waistline 歩いているときの腰の高さ
AnimeViewer説明
19/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
walstopsit_raise 歩きの足振り上げの高さ
walk_hipswing 歩行時の腰振り幅(コマンド walkのパラメータ
hipswingのデフォルト)
walk_chestswing 歩行時の胸振り幅(コマンド walkのパラメータ
chestswingのデフォルト)
walk_headswing 歩行時の頭振り幅(コマンド walkのパラメータ
headswingのデフォルト)
walk_armswing 歩行時の腕振り幅(コマンド walkのパラメータ
armswingのデフォルト)
walk_updown 歩行時の体の上下動(コマンド walkのパラメータ
updownのデフォルト)
hiplevel_sit 座った時の腰の高さ(デフォルトはキャラクタモデ
ルのひざの高さ)
hipzpos_sit 座ったときの腰の前後位置(デフォルトはキャラク
タモデルの腿の長さ)
initpose_hiplevel 立っている時の腰の高さ(デフォルトはキャラクタ
モデルの腰の高さ)
turn_speed character:turnのスピード
swing_speed character:swingのスピード
swing_degree character:swingの程度
watch_speed character:look,gazeのスピード
bow_speed character:bowのスピード
shiver_degree character:shakeの程度
where_of_camera_look_at character:lookでカメラ目線を指定した時に、カ
メラ位置 y軸にこの値を足した点を注視する。
talk_arm_excite character:talkで emotion = exciteの時の腕の動
作程度
talk_hand_excite character:talkで emotion = exciteの時の手の動
作程度
gesture_type character:gestureのパラメータ typeのデフォル
ト文字列
gesture_swing_speed gestureの type“swing”に対応するスピード
gesture_swing_degree gestureの type”swing”に対応する程度
gesture_twist_speed gestureの type“twist”に対応するスピード
gesture_twist_degree gestureの type”twist”に対応する程度
gesture_pitch_speed gestureの type“pitch”に対応するスピード
gesture_pitch_degree gestureの type”pitch”に対応する程度
gesture_hand_speed gestureの type“hand”に対応するスピード
gesture_hand_degree gestureの type”hand”に対応する程度
gesture_arm_speed gestureの type“arm”に対応するスピード
gesture_arm_degree gestureの type”arm”に対応する程度
gesture_stress_speeed gestureの type“stress”に対応するスピード
gesture_stress_degree gestureの type”stress”に対応する程度
gesture_arm_upper_roty gestureの type”arm”に対応する上腕振り y角度
AnimeViewer説明
20/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
gesture_arm_upper_rotz gestureの type”arm”に対応する上腕振り z角度
gesture_hand_upper_rotx gestureの type”hand”に対応する上腕振り x角度
gesture_hand_upper_roty gestureの type”hand”に対応する上腕振り y角度
gesture_hand_lower_rotx gestureの type”hand”に対応する前腕振り x角度
swing_sw swingの初期動作フラグ(0 or 1)
blink_sw blinkの初期動作フラグ(0 or 1)
blink_interval_time 1回の瞬きにかかる時間(秒)
blink_duration_closed 目を閉じている時間(秒)
blink_interpol_time 瞼の開閉にかかる時間(秒)
2-2-3 bmo ファイル
・モデルファイル名、モーフィング用パラメータ
名称 解説
body 頭以外の体のモデルデータ
vertOpt メッシュの頂点最適化フラグ。
頂点最適化方法は、DirectXの D3DXMESHOPTに依存し
ます。(“D3DXMESHOPT_”に続く文字列の列挙で指定し
ます。)
faceM 口を閉じた状態の頭のモデルデータ
faceA 口を”あ”の字に開いた状態のモデルデータ
faceI 口を”い”の字に開いた状態のモデルデータ
faceU 口を”う”の字に開いた状態のモデルデータ
faceE 口を”え”の字に開いた状態のモデルデータ
faceO 口を”お”の字に開いた状態のモデルデータ
eyelidLO 左瞼、開いた状態のモデルデータ
eyelidLC 左瞼、閉じた状態のモデルデータ
eyelidRO 右瞼、開いた状態のモデルデータ
eyelidRC 右瞼、閉じた状態のモデルデータ
eyebrowL 左眉毛のモデルデータ
eyebrowR 右眉毛のモデルデータ
eyeL 左目のモデルデータ
eyeR 右目のモデルデータ
head 髪のモデルデータ
ear 耳のモデルデータ
nose 鼻のモデルデータ
faceM_Key 口を閉じるアニメーション
faceA_Key 口を”あ”の字に開くアニメーション
faceI_Key 口を”い”の字に開くアニメーション
faceU_Key 口を”う”の字に開くアニメーション
faceE_Key 口を”え”の字に開くアニメーション
faceO_Key 口を”お”の字に開くアニメーション
eyelid_Key 瞼を閉じるアニメーション(閉じた状態で終了)
expression_Key 表情のアニメーション
AnimeViewer説明
21/21
Copyright NHK(Japan Broadcasting Corporation) All rights reserved.
許可なく転載することを禁じます。
faceBlend 口パクアニメーションの適用方法(MIX, REPLACE,
MODULATE, ADD)
blinkBlend まばたきアニメーションの適用方法(MIX, REPLACE,
MODULATE, ADD)
expressionBlend 表情アニメーションの適用方法(MIX, REPLACE,
MODULATE, ADD)
face_Factor 口パクアニメーションの適用具合(比率)
blink_Factor まばたきアニメーションの適用具合(比率)
expression_Factor 表情アニメーションの適用具合(比率)
type_* モーフィング方式の設定
expression_* 表情の構成データ、”*”の部分の文字列が
character:expressionの typeになる。
2-3 モデルファイルの圧縮
AnimeViewerは zip圧縮されたモデルデータに対応しています。
セット・小道具・キャラクタのモデルデータ(“obj”, “x”, “bm”,”bmo”,テクスチャ)をモデル毎に zipフ
ァイルに圧縮、(set, prop, character) openmodel コマンドで読み込むことができます。
AnimeViewerは圧縮ファイル(zip)かどうかをファイルの内容(ヘッダ部分)で判断していますので、
圧縮ファイル自体の拡張子は自由につけることが出来ます。