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。