読者です 読者をやめる 読者になる 読者になる

nszwryuichiのブログ

気になったツールを試してみたりしたときの備忘録

BVH Importer Options について調べてみた

3D DAZ ツール

f:id:nszwryuichi:20120512154432p:plain

前回宿題にしていた DAZ3D Studio のBVHインポートについて追記しておく。

 BVHをインポートする際に表示される「BVH Importer Options」で何ができるのかを調べてみた。

f:id:nszwryuichi:20120512154823p:plain

上記ダイアログに表示されるメニューについて、DAZのマニュアルを読んでみたが、そもそもこの方面の知識が無いので何を言ってるのかよくわからない。
そこで、メジャーなMayaや3dsMaxにも同様の機能があるだろうから、そっちの解説記事を探してみたがみあたらない。しかたがないので、BVHフォーマットについて調べてみることにした。

BVHの説明はこちらの記事がわかりやすい。
MOCAPデータファイル

 

なるほど、ボーン構造を定義する「ヒエラルキー」と移動座標を定義する「モーション」データの2層構造になってるらしい。しかもテキストファイルなのでわかりやすい。実際にBVHファイルを開いて眺めてみた。
各ボーンには名前をつけることができ、この名前が一致していれば、異なるモデルに対してBVHデータをあてはめてアニメーションさせることができるということらしい。

先ほどの「BVH Importer Options」ダイアログにある「Show Details」を開くと、ボーンの名前情報が一覧でき、マッピングするしないを選択できるようだ。マッピングの対応関係を確認したいときには便利なビュアーかもしれない。

f:id:nszwryuichi:20120512161236p:plain

BVHのデータ構造が何となくではあるが理解できたので、再びDAZのマニュアルを読んでみた。たぶん、次のようなことが書いてある。

 

 

  • Scene Animation Setup Options
    • Adjust scene to match the file: When selected will adjust frames in current scene to match the file being imported.
      BVHファイルで指定されているフレームレートを採用します。
       
    • Use the current scene values: When selected will use the current scene frames and drop any frames from the animation that go over the scene max frames.
      DAZ3Dで指定しているフレームレートを採用します。最大フレーム数を越えた場合はいくつかのフレームが捨てられます。(後半意味不明)
       
    • In Place Mode (no X or Z hip translation): When enabled will leave the figure in current location in the scene. When disabled, figure will move based on where the imported animation places the figure.
      BVHファイルで指定されている座標の移動をすべて無視してインポートします。 
       
    • Limit Joint Rotation: When enabled, limits joint rotation even if the animation file has settings outside the limits. When disabled, does not limit joint rotation and the animation settings are used.
      BVHファイルで指定されている間接自由度を採用します。

    Use the current scene values をONにするとアニメーションの速度を変えられるようなので試してみた。DAZ3Dの Pose&Animate画面、右下にある「FPS」を「20」にしてから40FPS指定のBVHデータをインポートしてみると、なるほどスローモーションになった。が、全フレームの約半分のところでアニメーションが終了してしまう。フレームが捨てられるとはこういうことか。でも、なぜ最後まで再生してくれないのか意味がわからない。試しにBVHデータ内の総フレーム数定義を2倍にしてみたが何も変わらなかった。他にも変更しないといけない設定があるとしてもインポート時に自動でやってくれてもよさそうなものだが、そうでないところをみるとアニメーション速度を変更するためにあるオプションではないのかもしれない。

    In Place Mode についてもONにして試してみた。フィギュアが移動せずに初期位置のままアニメーションするようになる。けれど、ボーンのローテーションだけがおこなわれるものだから、間接の限界を超えてアニメーションしてしまうようだ。これは、Limit Joint Rotation を同時にONにすることで解決するようだが、一部へんな動きが残る。どんなときにこのオプションを使うのかよくわからんなぁ。

というわけで、通常これらオプションはデフォルトのまま利用すればよいことになるのだが、誰かの役に立つかもしれないので書き留めておくのだった。

 

以上