9.03.2008

フリー版でモデルデータを作成したときに困る点と、それに対する対処法、それからテクスチャの情報について。

昨日話題に上げたことの続き。

……と書きつつ、まずは昨日と関係ない話題に関することから。

六角大王フリー版は、ご存じのとおり左右対称のオブジェクトしか書き出せない。
でも、これだと片手に剣を持って、もう片方の手に盾を人とか、そういうオブジェクトを描画させることができない。
(武器グラフィックの変更とか、別のメッシュファイルを読みに行くという解決法もあるだろうけど、町の兵士とかはひとつのファイルになっているにこしたことはないだろうから。)

んで、これに対する解決策。
結構六角大王な人には常識なのかもしれないけどね。
左右のうち、いらない方の面を削除するっていう方法。

たとえば後半に紹介する画像は、その方法で剣を片手だけにしてある。
元はメタセコイアのデータで、それを3DAceで読み込み→左右対称にしてROKで書き出し→片手だけ剣の面を削除という手順でやっている。
(正直、結構手間がかかった。モーションまでお手軽にできるのはいいけど、やっぱりヘルパー関数をQuadrupleDと一緒にウマーくつかえる方法を模索した方が、結果的に労力の低減につながるかもしれないと考え中。)

まぁ、他に方法が見つからなければ、こんな方法を駆使する手もあるってことで。




さて、そんでもって昨日の続き。
テクスチャ情報を持たないメッシュファイルを読ませて表示させるとどうなるか?
答えば図のようになる。
これは、先日メタセコイアからXファイルとして出力→QuadrupleDを使って表示という作業を行ったのと同じモデル(実際には、ROK形式に返還後、先述した加工を施してある。)

ともかく、メタセコイアの時点では保持していたテクスチャのマッピング情報が失われたために、同じテクスチャを指定してもこんな結果になってしまったんだと思われる。







以上のことについて、解決策として思いついたものをメモ。
どれもたいへんそうなのに変わりないけど、時間のあるうちにこういうことを楽しんでやるっていうのも良いのかもしれない。

アイディア1.
Xファイルを扱えばいいわけだから、やっぱりJEDIのヘッダーを引っ張ってきて、QuadrupleDと組み合わせて利用できる方法を模索する。
これだと、SXには頼れなくなるから、レンダリングまわりも自分で制御しないといけなくなるのが一番の問題になるかな?
あ、テクスチャに関しても、TDGTextureという優れたクラスを利用できなくなるのか。

アイディア2.
メタセコイアのデータを利用したいわけだから、それを直接利用できればいいという見方もできる。
じゃあ、メタセコイアのアニメーションデータを扱える、Mikoto向けにコンバータを書けばいいんじゃないだろうか?
=>Mikotoのファイルフォーマットに関する資料が少なすぎて、アイディア1以上に骨が折れそう

アイディア3.
アニメーションX→P3Dデータへのコンバータを書けば問題解決?
先日の、モデルはXファイルで、アニメはP3Dでっていうのと同じ話だな。
あるいはSX形式そのものを拡張した独自形式を定義するのもどうだろうと思う。
(SX形式のファイルをひとまとめにして、それをメッシュリストとして扱えるような感じか?)
独自形式に拡張しても、アニメーションデータはP3Dを使えばいいんじゃなかろうか?

なんにせよ、モーション付き3Dっていうのは結構大変そうだ。
いっそのこと、QuadrupleDを捨てて、JEDIのライブラリあたりを経由して、DirectXを直接たたく方が手軽にできるんじゃないかとすら思えてくるね(笑)

それも一回やってみて、それから判断しても……。

0 件のコメント: