|
|
我目前正在制作骨骼动画方面的程序,但在获取动画数据时却遇到了不少问题,希望有哪位高手来指点下迷津。
我目前使用的图形处理软件是3DS MAX7,文件格式是.x文件,我使用的是DX 2007 SDK附带的MAX7插件DxExtensionsMax.gup来导出.X文件.问题主要集中在以下几个方面:
(1).我用手工自己装饰了一个骨骼, 并且还设置了几个关键贞. 我希望最后导出的数据应该是包含了我自己设置的关键贞的信息,然而最后导出的.X文件中,却是采样的动画数据(即每隔一个贞数就记录一个动作信息). 这不是我需要的,我认为只需要记录我设置的关键贞的动作信息就足够了,而在这些贞之间的动作可以通过四元数插值来获得. 但.X却强迫记录每一贞的动作, 这使文件的数量相当庞大. 不知道我如果才能使导出的.X文件中仅仅只包含我自己设置的关键贞的动作信息?
(2).另一个问题是我使用插件导出数据时,没有给我任何的选择余地,因此最后导出的采样数据的贞数和在MAX编辑界面上的轨迹栏上显示出来的贞数是一样的(也就是说你在MAX中的轨迹栏中有多少贞就给你导出多少贞). 但是根本不需要这么精确, 不知道我如果才能够每隔一定的贞数才采样一次(好比每隔5贞采样一次)?
(3).通过研究.X的数据都知道, .x能够保存4种动画变换: 4元数旋转, 平移, 缩放和矩阵. 其中矩阵变换可以通过综合前面的3种变换来得到.个人认为矩阵变换更适合于采样模式. 在DIRECTX9 SDK的演示程序中就有关于如何使用.X来制作动画,其中用到的文件为Tiny.x, 通过观察Tiny.x发现里面的动画数据全部是矩阵形式的变换, 但为什么我用插件导出的数据中却被明确分成了旋转,平移, 缩放3种. 请问如果才能够直接导出矩阵形式的变换数据?
我才刚刚开始学习动画制作,因此相信这些问题每一个初学者都应该碰到过, 很想有经验的高手来指点下,谢谢! |
|