メッシュ調査

前回、少し調べたGTAVのSkinMODですが

よくよくフォーラムを見ると

MAXスクリプトの方はExport問題で半年以上議論されてるみたいですし

Zmodelerはシェアウェアでちょっと扱い辛いってなもんで

これはちょっと未来は暗いなってな事を思い

ちょいとOpenIVで変換される、テキスト形式のフォーマットを調べてみましたよ

 

変換される形式は

oddという管理ファイルとodrというシェーダー関連の管理ファイル

Skelという骨構造を記載したファイル

Meshってなジオメトリ情報を記載したファイルってな感じです

各自、中身を見てみると

000

odrファイルはこんな感じで

多分、使用するシェーダーを指定し、パラメーター部分に数値を渡す部分と

スキンメッシュかの判定ってな感じでしょうかね?

 

LOD部分がちょっと解りませんが、名前からするにLODでしょうね

となると、距離を判定するためにバウンディングボックス(AABB)とスフィアの数値

High、Mid、Lowメッシュを横に記載してる数値(距離)で変換するってな事でしょうかね?

複数のMODをダウンロードしてみましたが

LODの設定をやっている物は無く、全てHighメッシュで管理してる感じでした

 

続いて、Meshファイル

00

最初にジオメトリ情報が記載されていて

各パーツのバウンディングボックス情報が書かれてる感じ

LockedとMaskの意味が解りませんが

Maskはポストエフェクトに関係してくるのかなぁ~ってな思い込み

 

んで、頂点インデックスが書かれた後

01

頂点情報が書かれている感じ

頂点情報を細かく見てみると

02

想像ですが

1が頂点位置、2が合計1になることからスキニング値

3がボーンインデックス、4がおそらく法線、5、6が不明、7がUVかな

って思います

5と6が不明ですが

ダウンロードした全てのMODで共通した数値なので、無視してもOKなのかも?

ShaderIndexはジオメトリの情報が変わるごとに+1になる感じ

Flagsはちょっと解らないってな感じですよ

頂点やUVごとにインデックスが無いので、そこのところ注意ってな感じでしょうかね?

何回も書きますが

XSIはC#がアクセスできる範囲だと同じ情報がマージされた頂点情報を保持してないので

(C++はアクセスできる)

頂点情報の結合と、頂点インデックスの並び替えで時間がかかる感じかなぁ・・・

 

んで、最後にSkelファイル

03

まぁコレは大抵の骨情報と一緒ですが

DataCRCとFlagsとMirrorBoneIDってのがちょっと解らない感じですかね

Flagsに関しては移動や回転の記載っぽいので

Ragdoll等、物理に預けた時にどう動かすのか?ってのなのかなぁってな想像

MODなんで骨を換えるって事は無いだろうから

どちらも、そのまま記載すれば良いのかなぁ?ってな事を思いますよ

 

あとはChildrenの横の数値が、直下の数ってのが注意どころでしょうかね?

X形式でもあった、この「」で決めていくやつは

テキストの並び替え等、かなり面倒なので嫌いなタイプのやつですね

 

スケールに値が入ってるのも気になるところでしょうかね

 

と、まぁこんな感じで調査してみましたよ

Exporter自体はDirectX形式のExporterを作った時のを

少し改造すれば、結構早くできそうですが

問題はマテリアル設定等をDCCTool側で完結しないとダメだった場合

そこのサポートも作らないといけないのはちょっと面倒だなぁって思いますよ

シェーダーを用意して必ずそれを使うようにするってな感じだったら

相当楽に作れますがね

 

あとは、素の骨をどうやって用意するかってのもありますね・・・

 

いかんせん、こういったジャンルはお仲間が欲しい所

一人だとモチベーションが保たないってなもんですよ

 

 

—追記—

Last of UsのMODを見たところ

02

頂点情報はちょっと増えてるし

01

骨も20個ほど増えてる事が判明!

 

だめじゃん!!

コメント

タイトルとURLをコピーしました