セグメントヘッダは,セグメント名,フレーム数,1フレームの秒数,データフィールド名を空白文字(タブやスペース)で区切って並べたもの,データ単位を空白文字で区切って並べたものの各行から構成される.
フレームデータはデータフィールドに記述されている意味を持つ,空白文字で区切られた数値の並びである.
Segment: Hip Frames: 4568 Frame Time: 0.033333 XTRAN YTRAN ZTRAN XROT YROT ZROT XSCALE YSCALE ZSCALE INCHES INCHES INCHES DEGREES DEGREES DEGREES PERCENT PERCENT PERCENT
# Title: 新しい踊りファイルヘッダの後ろには,各部位の情報を記述する.その構造は,
# Author: 湯川 崇
# Date: 1998/09/21 17:22:13
部位コード: その部位に対応するセンサー名のコンマで区切られた並び
動作の開始フレーム数1: 動作の舞踊符1
動作の開始フレーム数2: 動作の舞踊符2
:
動作の開始フレーム数n: 動作の舞踊符n
という形式で,これを部位数回繰り返す.
舞踊コンバーターはこのファイルを,身体の各部位の動作を一体の動作に合成するときに,舞踊符とモーションファイル中のデータの対応を知るために使用する.
このファイルは,motion.datという名前で舞踊コンポーザーおよび舞踊コンバーターの実行ディレクトリに置かれなくてはならない.
空白文字のみの行と#から始まる行は無視される. 行は行頭から行末まで,ブロックはbegin ブロック名とend ブロック名で囲まれた部分が有効範囲である.
名前,コードや説明などの文字列は"(ダブルコーテーション)で囲む. リストは,項目を,(コンマ)でつなげたものを"で囲む. フレーム範囲は,開始フレーム数-終了フレーム数のように,範囲の始まりの数値と終わりの数値を-(ハイフン)でつなげて表わす.
define part name=部位名 code=部位コード map=部位名に対応するモーションデータのセンサー名のリスト
| name | 文字列 | 部位の名前 |
| code | 文字列 | 部位のコード |
| map | リスト | 部位に含まれるモーションキャプチャデータのセンサーの名前のリスト.リストの先頭には他の部位と共有するセンサー名を記述する. |
define part name="頭" code="HD" map="Body,Head"
begin class name=身体動作分類名 code=身体動作コード
| name | 文字列 | 身体動作の分類名 |
| code | 文字列 | 身体動作の分類コード |
begin class name="舞踊" code="dance"
:
(1つ以上のshowブロック)
:
end class
begin show name=舞踊名 code=舞踊コード file=舞踊のモーションデータファイル名
:
(1つ以上のdefine motion行)
:
end show
| name | 文字列 | 舞踊の名前 |
| code | 文字列 | 舞踊のコード |
| file | 文字列 | 舞踊を記録しているモーションデータファイル名 |
begin show name="基本の舞い" code="BA" file="kihon1.vpm"
(次の書式中で[]で囲まれた部分は,省略可能なことを表わす.舞踊符インデックステーブルは多数のdefine motion行を含むため,煩雑になるのを防ぐ目的でdefineを省略可能にした.)
[define] motion name=動作の名前 code=動作のコード exp=動作の説明 frame=フレーム範囲
| name | 文字列 | 動作の名前 |
| code | 文字列 | 動作のコード |
| exp | 文字列 | 動作の説明 |
| frames | フレーム範囲 | 動作のモーションデータファイルの中での位置 |
motion name="上下屈伸1の足1" code="A1" exp="両足指先までつける(1の足)、両手下から横水平にあげる、踵あげ" frame=1-118