原文地址 https://www.iddevnet.com/quake4/Animations

需要翻墙以后人机验证才能进入该英文网站阅读,强烈建议进入原文阅读,我认为quake4的关卡模型对于理解doom3的代码有所帮助,因此翻译

Quake4动画部分

动画 - 创建.md5anims和.md5meshes

让动画人物进入游戏有四个步骤:

  1. 人物创作 此步骤包括建模网格的lo-poly版本,安装网格,剥皮网格和应用材料。
  2. 动画人物。
  3. 为角色的.def文件添加动画。
  4. 将网格和动画导出到游戏中。

角色创作

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动画部分相关推荐

  1. 在Quake4中创建模型

    原文地址 https://www.iddevnet.com/quake4/ArtReference_CreatingModels 在Quake4中创建模型 本文件将尝试解释Raven Software ...

  2. Quake4的gui

    原文地址https://www.iddevnet.com/quake4/GUIEditor Quake4的gui跟doom3的关卡编辑器基本上一模一样,我觉得 反正都是doom3的引擎代码,挖过来,看 ...

  3. Android Animation (安卓动画)概念简介

    Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...

  4. Android动画之帧动画和补间动画

    Android系统提供三种动画:帧动画.补间动画和属性动画.这里先分析总结帧动画和补间动画. FrameAnimation 帧动画,通俗来说就是按照图片动作顺序依次播放来形成动画,创建帧动画可以用 x ...

  5. Android 动画 ViewPropertyAnimator 的使用

    ViewPropertyAnimator 说明: ViewPropertyAnimator 可为View对象上的选择属性启用自动和优化的动画, ViewPropertyAnimator 不是由调用方构 ...

  6. Android ViewAnimationUtils (动画) 的使用

    先看下ViewAnimationUtils  实现的几个常见的效果图如下: ViewAnimationUtils  的作用: 设置剪切圆动画的动画制作器 一般的使用如下: Animator revea ...

  7. Android AnimationUtils (动画)的使用

    AnimationUtils  其实就是补间动画(Tween Animation) 在xml 中的写了动画java 中调用 这边打算就写一个demo 简答的记录下它的使用详细的请看 点击查看,这篇博客 ...

  8. Android ProgressBar 加载中界面实现(loading 动画) 实现菊花的效果

    实现的效果图如下: 使用方法ProgressBar ,如果感觉 这个动画不是自己想要的,需要根据ui的图片来实现只需要将xml中的animated-rotate 修改为animation-list 贴 ...

  9. Android 属性动画(Property Animation) ObjectAnimator的介绍

    先说下属性动画与视图动画的区别: 视图动画系统仅提供为 View 对象添加动画效果的功能,因此,如果您想为非 对象添加动画效果,则必须实现自己的代码才能做到.视图动画系统也存在一些限制,因为它仅公开 ...

最新文章

  1. finalshell Linux 传输文件 xftp
  2. Hyperopt TypeError: 'generator' object is not subscriptable
  3. docker-compose安装mongodb
  4. Java NIO学习笔记之图解ByteBuffer
  5. Java面试高频题:Spring Boot+Sentinel+Nacos高并发已撸完
  6. 装饰器python的通俗理解_Python装饰器的通俗理解
  7. python给每个key添加数据_一文看懂Python collections模块的高效数据类型
  8. 躲避校园网认证客户端的检测,开启笔记本热点的方法!
  9. (转载)巴西世界杯谁能夺冠?霍金和高盛做预测
  10. [ linux ] vim 编辑器的三种模式介绍
  11. 2023年跨境电商趋势走向,跟随大势迎难而上!
  12. 【C语言】定义一个函数,求长方体的体积
  13. 1024: 手机话费
  14. WIDER FACE AND PEDESTRIAN CHALLENGE - WIDER CHALLENGE
  15. 0、空字符和‘\0‘关系
  16. 为什么梯度方向一定是函数增大的方向
  17. 暑假N天乐【比赛篇】 —— 2019牛客暑期多校训练营(第七场)
  18. CentOS安装wireshark
  19. Arduino UNO+L298驱动直流电机正反转+Proteus仿真
  20. 婴幼儿牛奶蛋白过敏危害多,教你四招早期预防

热门文章

  1. uniapp——用户位置及附近的店 小程序实现
  2. VIM安装YCM插件的详细步骤
  3. [HDU 6072] Logical Chain
  4. IAP+APP程序拼接方法
  5. chrome和edge浏览器,实现视频不静音自动播放
  6. 机械表使用说明(通用)
  7. slimScroll 插件的应用
  8. 华为M6平板在录屏的时候报错SIGABRT
  9. mysql中concat注意事项
  10. android studio 的串口调试工具