2008/8/13 Na-7
2008/8/15 Na-7
.Xファイル読み込みテスト結果報告書
◎テスト概要
XNA2.0でモーションデータ付き.Xファイルの読み込みが可能かどうか検証する。
但し、.Xファイルのサンプルが見付からないため、モーション作成ツールでサンプルファイルを自作することとする。
尚、モーションデータ作成経験が皆無であるため、下手に壊れたデータを作成しないよう、(上記の余計な配慮により、却って壊れたデータを作成していたことが後日判明)
実際にはボーンデータやモーションデータを作成せずに.Xファイルとして出力することとする。
◎テスト手順
1.メタセコイア用の3Dモデルデータ(.mqo)を下記の3ツールで読み込み、.そのままXファイルとして出力する。
(そのまま出力するのは誤り、モーション必要)
・メタセコイア(Metasequoia:3Dモデル作成ソフト)
・サイバデリア(Cyberdelia:3DCGアニメーションツール、2007年版)
・RokDeBone2(RokDeBone2:モーション作成ツール)
2.上記で作成した.xファイルを、下記の3ツールで正常に読み込めるかテストする。
・DirectX SDK付属Viewer(March
2008 DirectX SDK付属のDirectX Viewer)
・フリーViewer(SPACE遊 Xファイルビューワ Ver 3.00)
・XNA2.0(XNA GameStudio 2.0:ゲーム開発用フレームワーク)
◎テスト結果
メタセコイア出力データ(.X) | サイバデリア出力データ(.X)(注1) | RokDeBone2出力データ(.X)(注1) | |
DirectX SDK付属Viewer | ○(注2) | ×(読み込みエラー) | |
フリーViewer | ○(注3) | ×(読み込みエラー) | ○(注5) |
XNA 2.0 | ○ | ビルドエラー(読み込みエラー) |
注1:「.mqo」を読み込み、未加工で「.X」を出力(←未加工出力は誤り、モーション必要)
注2:暗く表示される(英語のため、設定変更方法がよくわからない)
注3:色薄で表示されるが、部品間の接合は保持されている
注4:データは読み込むが非表示(モーション非作成のため?)注5:色薄で表示され、部品間の接合は保持されていない
注6:モーション作成後、テクスチャ画像も読み込むことにより、静止画像は正常表示された(モーション再生は今後の課題)
◎考察
・サイバデリア出力データは異常?
→旧版ではモーション付き.Xファイルを生成出来たらしいが、新版では正常なデータが生成されない模様
(参考:http://hsp.tv/play/pforum.php?mode=pastwch&num=452)
(参考:http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200707/07090028.txt)
・RokDeBone2出力データが、SDK付属Viewerで表示されなかった
→ボーンやモーションデータを作成すれば、表示される可能性がある←モーション作成後正常表示
→Viewerのバージョンやデータタイプによって、上手く表示されないことがある模様
(参考:http://oshiete1.goo.ne.jp/qa3038609.html)
(参考:http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3447077&SiteID=7)
・フリーViewerの一般的な問題
→公式Viewer(DirectX SDK付属)があるためか、.Xファイルを表示出来るフリーViewerは少ない
→モーション付きデータは未対応のViewerが多い
→最近のデータを再生すると、表示が崩れることが多い
・XNA2.0でビルドエラーになる問題
→コンテントパイプラインで読み込みエラーが発生している模様←上記注6参照
→モーション付きデータは「再生できない」以前に「読み込めない」模様←上記注6参照
◎最後に
DirectX9→10への過渡期のためか、最新版ツールでは却って上手くいかないことがあるようだ。
サイバデリアどころかSDK付属Viewerさえ当てにならないのはかなり厳しい。
また、「これは正常だ」と安心して使えるモーションデータ付き.Xサンプルファイルが見付からず、
自作しようにもRokDeBone2は素人にとってハードルが高い。サンプルファイルの入手方法は
引き続き検討する必要がある。
結果的には、RokDeBone2付属のサンプルデータ(.sig、.qua)を読み込んで.Xファイルを作成し、
このファイルと.BMPファイルをXNAに読み込むのが近道でした(まだ静止表示のみで、
モーション再生は出来ていませんが)。