概述
原文地址 https://www.iddevnet.com/quake4/Animations
Quake4动画部分
动画 - 创建.md5anims和.md5meshes
让动画人物进入游戏有四个步骤:
- 人物创作 此步骤包括建模网格的lo-poly版本,安装网格,剥皮网格和应用材料。
- 动画人物。
- 为角色的.def文件添加动画。
- 将网格和动画导出到游戏中。
角色创作
Quake 4引擎使用Maya将网格和动画转换为可用的.md5。创建角色的指南:
- 需要使用三角形多边形和平面的Lo-poly网格是有效和清洁的。
- 网格必须有UV。
- 在将网格绑定到钻机之前冻结转换并删除网格上的历史记录。
- 不超过四个关节可能会影响任何一个顶点。
- 网格必须使用平滑绑定选项绑定到钻机上。
- 在绑定到网格之前,关节不应在其上具有缩放偏移。
- 角色必须有起源。引擎使用原始信息放置和移动游戏中的角色。对于AI目的,原点应限制在根关节或重心的Z平移。对于多人游戏,原点应保持静止。原点在Y中的翻译应为零。(Y在玛雅。)
- 引擎使用硬件剥皮来创建网格。因此,创建网格的文件应尽可能地具有尽可能中立的角色。
- 创建并使用参考文件。对主机或网格的任何更改只能在该文件中进行。在Maya中创建动画文件时,使用唯一标识字符的前缀引用引用文件。
- 使用Maya中的Hypershade工具应用着色器。创建一个材质,点击颜色通道旁边的框,选择“文件”。将.mtr文件中显示的着色器名称输入到“图像名称”框中。将着色器应用于网格。
- 将文件保存为ascii(.ma)而不是二进制(.mb)是个好主意。这样,如果需要,可以通过文本编辑器编辑文件。
动画人物
在玛雅动画的角色正常。对于那些刚接触动画的人而言, 理查德·威廉姆斯的“动画师生存套件”是一个很好的开始。互联网上还有数以千计的Maya特定动画技术教程(http://www.highend3d.com)。
AI和NPC使用的动画可以在空间中移动,只要原点被适当地限制在角色上。多人动画在躯干和腿之间分开,因此应在其上进行动画化。保存动画时,请确保时间滑块包含预期的帧范围。将使用该范围导出动画。否则,可以在.def文件的导出块中指定一个范围(见下文)。
3.将动画添加到角色的.def文件中
字符的.def文件包含定义字符行为的变量。字符可用的动画列在.def文件中,Maya文件根据该信息以.md5的形式导出到游戏中。动画文件将添加到导出块中,然后在模型定义块中进一步定义。游戏编辑器的可用动画列表使用模型定义的信息进行更新。
3.1出口块
导出块包括:1.)选项行,2.)用于创建网格的Maya文件,3.)一个或多个Maya动画文件。对于字符.def文件,导出块应包含run,walk和idle动画。
导出new_character { options -prefix nc_ -scale .3937 -align ALL-keep muzzle_flash 网格字符/ anims / mesh.ma -dest字符/ anims / mesh anim characters / anims / idle.ma -dest characters / anims / idle anim characters / anims / walk.ma -dest characters / anims / walk anim characters / anims / run.ma -dest characters / anims / run }
3.2选项行
上述示例包含导出.md5的最常用的选项:
-
前缀:在引用主文件时,Maya会要求添加到联名的前缀。在此处指定前缀。
-
缩放:您可以在导出时调整角色的比例。
-
对齐:这将使指定的Maya节点与其所有子节点对齐,以面向正确的方向。
-
保持:发动机将修剪附着在皮肤上的皮肤重量很少或没有的关节。如果这些关节需要保留在.md5中,则必须在这里指定。
一些可能有用的其他命令:
“-rename”用法:-rename [joint name] [new name]“ “-parent”用法:-parent [joint name] [new parent]“ “-dest”用法:-dest [filename]“ “-range”用法:-range [start frame] [end frame]“ “-cycleStart”用法:-cycleStart [循环第一帧]“ “-rotate”用法:-rotate [yaw]“ “-nomesh” “-clearorigin” “-clearoriginaxis” “-ignorescale” “-xyzprecision”用法:-xyzprecision [precision]“ “-quatprecision”用法:-quatprecision [precision]“ “-jointthreshold”用法:-jointthreshold [最小关节重量]“ “-skipmesh”用法:-skipmesh [要跳过的网格名称]“ “-keepmesh”用法:-keepmesh [要保留的网格名称]“ “-keepmeshprefix”用法:-keepmeshprefix [要保留的网格的前缀]“ “-jointgroup”用法:-jointgroup [group name] [joint1] [joint2] ... [joint n]“
3.3模型定义块
模型定义块:1.)定义模型的名称,它将出现在游戏编辑器中,2.)定义.md5动画的名称,因为它们将出现在游戏编辑器和Modview中,3.)定义字符的通道,4.)允许在动画的特定帧上播放声音和效果。
模型model_new_character { mesh -dest characters / anims / mesh.md5mesh 通道躯干(*腰) 通道腿(*臀部起点 - *腰围) anim idle -dest characters / anims / idle.md5anim anim walk -est characters / anims / walk.md5anim { 框架7脚步 框架14脚步 } anim run -dest characters / anims / run.md5anim }
请参阅SDK附带的现有.def文件以获得其他示例。多人模型和动画通过player.def和player_meshes.def进行定义和导出。海洋AI模型和动画通过ai / char_marine.def导出。
4.将网格和动画导出到游戏中
导出网格和动画将Maya文件转换为游戏使用的md5,如.def文件中所定义和列出。首先需要定义Maya所在的位置,以便引擎可以找到它。按着这些次序:
同时按下Windows键和暂停/中断键。 单击高级选项卡。 点击“环境变量”。 单击“新建”并创建一个新的变量名称: MAYA_LOCATION 变量值应该是Maya目录的路径,即 C: Program Files Alias Maya6.0
准备导出时,访问控制台并键入:
exportmodels ai / new_character.def
确保在'def'目录下面包含任何子目录。此命令将导出自上次导出该.def文件的模型以来已更新的导出块中的任何动画或网格。尚未更新的动画和网格将被忽略。使用命令'reexportmodels'将导出def文件中的每个动画和网格,无论它们是否被更新。
除非在导出块中特别定义,否则md5anim的帧范围将从源文件的时间滑块中拉出。然而,引擎假定每个动画都以帧1开始,而不管时间滑块范围在何处。如果时间滑块从帧10开始并在帧20结束,则.md5anim将从帧1开始,并以帧11结束。因此,将所有源动画从帧1开始是一个好主意。
要定义导出块中的范围:
anim walk.ma -range 10 20
- 散步
如果网格或动画等有任何错误,引擎将列出错误,导出将失败。一个常见的错误是在.def文件中出现语法错
误,这将导致导出错误,或导致成功导出,其中字符实际上不会出现在游戏中(一个简单的框显示在其位置)。如果发生这种情况,请冲洗.def文件以获取任何拼写错误,无效路径,打开的大括号等。否则,如果导出成功,新的.md5将可用于游戏编辑器和Modview。
最后
以上就是魁梧手机为你收集整理的Quake4动画部分的全部内容,希望文章能够帮你解决Quake4动画部分所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复