http://xreal.51.net/Download/skeleton-ani-demo.rar
這套模型動畫系統寫了我兩個月。只包括了定義模型的格式和資料的部署以及完成3DsMAX的匯出外掛程式。
在這個系統裡我採用了不同資料分離的形式。normal diffuse position等資料分離。material mesh等資料分離(具體下載demo後開啟waitress.xml.rar就可以看到)。不同資料就是一個檔案。檔案被打包到一起後形成一個xrm檔案。
以下是一個靜態Model的資料部署
Model.xrm
|--Model_desc.xml : 模型的描述
|-[Mesh1.Obj]
|------desc.xml 描述。
|------face 其實就是index buffer
|------material 這個Model的material
|------position (如果是個skin,這裡是weight)
|------tangent
|------normal
|------diffuse
|------uv_0-12, 有幾個uv通道,就有幾個,最大12個
|------vnormal 頂點的平均法向量
|-Mesh2.Obj
....
以下是一個Skeleton模型
SkeletonModel.xrm
|--actiondata.xml動作資料。
|--actions .動作資訊
|--model_desc。描述
|--hiberarchy 骨架資訊
|--[skin_dir_1] . 不同作用的Skin放到不同的目錄裡底下可能還有分類。可能沒有。
|---skin_desc.xml 。 SKin的描述
|---[Skin1] (這個Skin1和上面的靜態模型是一樣的)
|---[Skin2]
|.....
|--[skin_dir_2] ..
換裝的時候,給模型指定一個SKin的路徑。把對應的Skin加到模型裡去就可以了。
非常容易實現
外掛程式支援以下屬性
1: 支援Physique
2: 支援Skin
3: 支援Link方式的骨骼。
4: 支援任意多個Physique /Skin / Link骨骼的混用。
5: 支援12個UV Channel.
6: 支援各種方式計算蒙皮以及蒙皮的初始位置。
7: 自動Mesh識別。
8: Normal / tangent的計算
9: 能匯出物體的殼(做fur效果有用)
10: 自動容錯系統,log系統。協助識別max模型的錯誤
11: 支援匯出靜態模型,頂點動畫。骨骼動畫。單獨匯出SKin。並提供自動打包,向包裡追加Skin等。
12: 支援一次匯出都個MAX裡的Mesh。匯出後成為一個Model或者一個SKin
13: 支援Multi-material
14: 支援匯出Standard Material的基本屬性
示範程式需要OpenGL支援,同時,運行方法見Readme.txt。紅色線條為tangent,白色為normal.代碼不可以編譯。僅僅當作參考。如果要編譯需要下載xcomdoc_sdk。