3. 模型
游戏引擎提供了一套绘制三角形的解决方案,而这些三角形将如何被组织,绘制时采取何种参数,则需要美术人员在模型编辑器(3ds max等)里给出定义。
在硬盘上如何将这些三角形和渲染参数组织为文件,这些文件又如何加载,由此催生出诸多模型文件格式(.x,.mesh,.nif等),基本上各大公司都有自己的格式文件,并提供整套由编辑器(3ds max)格式到自己文件格式的转换方法。
看似简单的规则,却产生了诸多方的诸多诠释版本。竞争导致冗余,同时催生发展,行业乃至社会进步全仗于此。如果要编写一个像样的引擎的话,我们也将加入这个诠释行列中。
也就是说我们需要开发自己的3ds max导出(甚至导入)插件。
3.1 配置插件开发环境(3ds max2008+vs2008)
以3ds max2009为例,安装时确保同时安装了3ds max sdk。
3ds max2009默认支持visual studio2005,按照max安装目录Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard下的readme.txt中的说明步骤,可以配置出一个vs2005向导(wizard)用于快速建立max插件工程。该文档为英文书写,在下述网址中则可以找到中文教程,该教程在指导建立配置之余同时演示了如何建立一个空的插件项目。
http://www.cnblogs.com/csyisong/archive/2009/09/01/1558051.html
注意,如果你使用的是visual studio2008,那么在配置时需要做出额外更改:在根据教程复制3dsmaxPluginWizard.ico、3dsmaxPluginWizard.vsdir、3dsmaxPluginWizard.vsz到VS 2005安装目录的VCProjects之前,你需要:
1. 将max安装目录Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard下3dsmaxPluginWizard.vcproj文件及Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard\Templates\1033下root.vcproj文件里的Version="8.00"改为Version="9.00";
2. 将max安装目录Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard下3dsmaxPluginWizard.vsz文件中Wizard=VsWizard.VsWizardEngine.8.0改为Wizard=VsWizard.VsWizardEngine.9.0;
这三个文件直接用文本编辑器打开编辑即可。其余与配置vs2005无异。
3.2 插件开发
3dsmax插件开发可参考潘李亮《游戏程序中的骨骼插件》一文,这篇文章前部分细述了模型文件的导出,后部分讲解骨骼动画的导出,阐述十分透彻。建议在自行编写的同时参考max sdk自带的实例代码,相信很快就能轻驾就熟,达到应用层面的水平。
http://www.cppblog.com/lai3d/archive/2009/07/11/89768.html
3.3 ElMaxPlugin
El目前支持导出模型(含动画)为ELM格式文件,导出骨骼为ELS格式文件,导出骨骼动画为ESA格式文件,并提供在游戏中加载、使用上述格式文件的方案。
对于模型的支持,作者以为在各个引擎中占据大部分比重。围绕模型产生的技巧也是数不胜数,例如模型LOD,模型拆分、组装(换装系统),模型渲染参数(是否含Alpha通道、是否投射阴影)等,都需要在设计之初给予考虑。
大家可以从一个简单的模型导出和载入开始,逐步学习3ds max插件开发及游戏网格模型系统的设计,相信对大家进阶游戏深层开发会大有裨益。
图3.1 模型
图 3.2 模型(线框模式)