整了一个晚上终于解决了动画关键帧的读取,主要问题是3ds max 不单只有旋转/缩放/位置的动画控制器,还有另外3个不常用的是不会导出的,而旋转/缩放/位置的控制器,又包含了很多种,例如注视目标啊、音频控制运动啊、路径约束啊.....因此要自己规定一下导出规则,都使用默认的控制器。而缩放部分也暂时先忽略。
而物体的运动和系统里面的biped人体骨骼运动又有不同,biped骨骼的运动是强制采样的(即每隔n帧采样一次,记录到xml中),而其它运动则是可以选择按关键帧记录,也可以采样。为了支持强大的biped体形蒙皮运动,只好把这2种控制器方式都写了。
四元数、矩阵、欧拉角的转换、插值等知识,可以参考http://www.euclideanspace.com/maths/,我是直接把代码搬下来了,感谢
导出暂时这么规定:
<导出设置中:>
选择max坐标系
不选择Save Mesh XML File
Controller Options:
选择 Relative
不选择 Force Sample
选择 Export Quaternions
Modifiers:
选择Skin
Normals:
选择 Per Vertex
Geom Options:
选择 Object Space
-------------------------------------------------
<3ds max中>:
关键帧位置要在开始和结束中
所有关键帧不能包含有缩放动画
如果有蒙皮,只能有一个mesh导出
可以有多个bone导出
bone的根结点不能有位移动画
物体暂时不能用多个贴图channel,不能有多重材质
关键帧测试下载(关闭程序时,在命令行里面输入“System.ShutDown”,按回车即可)
下一步应该弄蒙皮了,不过要把shader部分做好先
posted on 2010-01-10 23:29
陈昱(CY) 阅读(1477)
评论(1) 编辑 收藏 引用 所属分类:
游戏编程