舞踊コンポーザー/舞踊コンバーターのファイル仕様


湯川 崇

平成10年9月29日

この文書の目的

この文書では,舞踊コンポーザーおよび舞踊コンバーターが扱う次の種類のファイルの機能ならびに構造について解説する.


BVA(BioVisionAnimation)ファイル

機能

BIOBISION社のモーションキャプチャシステムで使われるファイル形式で,センサーの位置と回転,スケールを記録する. 舞踊コンバーターは,舞踊コンポーザーが出力した舞踊譜(DDS)ファイル舞踊符インデックステーブルの情報をもとに,この形式のファイルを入力して変換し,同じ形式で出力する.

構造

このファイルは,セグメント(モーションキャプチャーのセンサー)ヘッダの後にフレームデータを続けた1つのセグメントのデータを,セグメント数回繰り返す構造を持つ. 各セグメントのフレームデータはフレーム数回繰り返される.

セグメントヘッダは,セグメント名,フレーム数,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

DDS(Digital Dance Score)ファイル

機能

舞踊コンポーザーで編集された舞踊譜の保存形式である. 舞踊名,作者,作成日時からなるファイルヘッダ,そして部位毎に動作の開始フレーム数と舞踊符の繰り返しを記録する.

構造

ファイル先頭の3行がファイルヘッダで,舞踊の名前,舞踊譜の作者,舞踊符の作成日時を記録する.

# Title: 新しい踊り
# Author: 湯川 崇
# Date: 1998/09/21 17:22:13
ファイルヘッダの後ろには,各部位の情報を記述する.その構造は,
部位コード: その部位に対応するセンサー名のコンマで区切られた並び
動作の開始フレーム数1: 動作の舞踊符1
動作の開始フレーム数2: 動作の舞踊符2
                   :
動作の開始フレーム数n: 動作の舞踊符n
という形式で,これを部位数回繰り返す.

舞踊符インデックステーブル(motion.dat)

機能

舞踊符とモーションファイルを対応付けするためのファイル. 舞符コンポーザー,舞踊コンバーターの両方が,このファイルを使用する. 舞踊コンポーザーはこのファイルから,どのような部位を扱うのか,そしてどのような舞踊符が利用可能かを読み込む.

舞踊コンバーターはこのファイルを,身体の各部位の動作を一体の動作に合成するときに,舞踊符とモーションファイル中のデータの対応を知るために使用する.

このファイルは,motion.datという名前で舞踊コンポーザーおよび舞踊コンバーターの実行ディレクトリに置かれなくてはならない.

構造

舞踊符インデックステーブルは,部位(part)を定義するためのdefine part行,動作(motion)を定義するためのdefine motion行,1つの舞踊に含まれる動作をまとめるためのshowブロック,舞踊(show)をクラス分けするためのclassブロックから構成される.

空白文字のみの行と#から始まる行は無視される. 行は行頭から行末まで,ブロックはbegin ブロック名end ブロック名で囲まれた部分が有効範囲である.

名前,コードや説明などの文字列は"(ダブルコーテーション)で囲む. リストは,項目を,(コンマ)でつなげたものを"で囲む. フレーム範囲は,開始フレーム数-終了フレーム数のように,範囲の始まりの数値と終わりの数値を-(ハイフン)でつなげて表わす.

define part行

舞踊コンポーザーおよび舞踊コンバーターで使用する部位の定義を行う.この定義はファイルの先頭で行う必要がある.

書式

define part name=部位名 code=部位コード map=部位名に対応するモーションデータのセンサー名のリスト

パラメータの型と説明

name文字列部位の名前
code文字列部位のコード
mapリスト部位に含まれるモーションキャプチャデータのセンサーの名前のリスト.リストの先頭には他の部位と共有するセンサー名を記述する.

define part name="頭" code="HD" map="Body,Head"

classブロック

身体の動作を舞踊,体操などに分類するために使用する.classブロックは1つ以上のshowブロックを含む.

書式

begin class name=身体動作分類名 code=身体動作コード

パラメータの型と説明

name文字列身体動作の分類名
code文字列身体動作の分類コード

begin class name="舞踊" code="dance"
        :
    (1つ以上のshowブロック)
        :
end class

showブロック

このブロックの中に記述する舞踊符の舞踊名とそのコード,モーションデータファイル名を定義するためのブロック.このブロックは1つ以上のdefine motion行を含む.

書式

begin show name=舞踊名 code=舞踊コード file=舞踊のモーションデータファイル名
        :
    (1つ以上のdefine motion行)
        :
end show

パラメータの型と説明

name文字列舞踊の名前
code文字列舞踊のコード
file文字列舞踊を記録しているモーションデータファイル名

begin show name="基本の舞い" code="BA" file="kihon1.vpm"

define motion行

舞踊の単位動作の名前,コード,動作の説明,そしてモーショデータファイルの中での開始フレーム数と終了フレーム数を定義する.この行が1つの舞踊符に対応する.

(次の書式中で[]で囲まれた部分は,省略可能なことを表わす.舞踊符インデックステーブルは多数のdefine motion行を含むため,煩雑になるのを防ぐ目的でdefineを省略可能にした.)

書式

[define] motion name=動作の名前 code=動作のコード exp=動作の説明 frame=フレーム範囲

パラメータの型と説明

name文字列動作の名前
code文字列動作のコード
exp文字列動作の説明
framesフレーム範囲動作のモーションデータファイルの中での位置

motion name="上下屈伸1の足1" code="A1" exp="両足指先までつける(1の足)、両手下から横水平にあげる、踵あげ" frame=1-118