论文总字数:8317字
目 录
1.引言 4
2.游戏角色控制的设计规律 4
2.1角色动作美学分析 4
2.2角色控制的特点 5
3.Unity中游戏角色的设定 6
3.1使用动画重定向技术设定角色动画 6
3.2设置动画状态机过渡动画 7
4.Unity中角色控制脚本的设计 9
4.1主角视角的脚本开发 9
4.2角色移动的脚本开发 9
4.3触发事件的脚本开发 10
5.结论 10
参考文献 11
致谢 12
附录 13
Unity中游戏角色控制脚本的设计
蒋苏
,China
Abstract:The character control script is a crucial part in the development of FPS and RPG games in Unity. This thesis first search the rule of character control design, and then explore the 3d game character setup process in the Unity game engine through studying and improving on current methods, finally develop the character control script that is applicable.
Key words:Character control;Scripts;Actions;Games;Unity
1.引言
游戏角色控制脚本是让游戏系统的输入设备能够控制游戏中的虚拟角色的程序。在FPS、RPG类型的3D游戏中,角色控制脚本的开发非常重要。角色控制脚本决定了游戏角色动作的灵活性。如果角色控制脚本具有良好的可重用性,那么只经简单修改即可将其套用于不同的游戏中,从而大大简化游戏开发工作。
角色控制技术为游戏项目中的核心技术,其开发有以下难点。首先是兼容性。一般游戏项目可以运用不同的输入设备控制,不同输入设备兼容同一个游戏,我们需要考虑到每个输入设备的特性,通过测试和运行提高输入设备的兼容性。其次是可扩展性。角色控制技术的运用不能局限于一种游戏,将角色控制技术扩展运用到不同的游戏项目中,提高开发的效率。
本论文中主要研究内容如下:第一、探索三维游戏角色控制的设计规律。[1]在游戏角色诞生时,设计符合其自身的角色动作,总结角色控制的特点,找到一般角色设计的共性。 第二、简述Unity游戏引擎中三维游戏角色设置流程。[2]在Unity3D开发平台中,使用Mecanim动画系统,将角色动作有效运用到人物模型上,在Animator动画状态机中将角色动作连接,提高角色前后动作的连贯性。[3]第三、开发C#脚本实现游戏角色控制。脚本技术提高了游戏开发的灵活性与高效性,所以研究Unity中游戏角色控制脚本的设计具有一定实际意义。[4]
本论文通过参考和改进现有方法,研究游戏案例以及文献资料,结合游戏教程,以实现游戏项目中角色控制为驱动,开发适用的游戏角色控制脚本。
2. 游戏角色控制的设计规律
游戏角色诞生后需添加行为动作赋予其生命力,在整个动作设计的过程中一般遵循角色控制设计的普遍规律即遵照角色动作美学概念。角色的控制设计需要分析角色行为动作的开始至结束整个流程,以下从角色控制动作美学和角色控制的特点,得出一般游戏动作的设计规律。
2.1角色动作美学分析
在整个动作的设计中,每一帧的动画展现着游戏动作特有的审美规律。[5]游戏角色动作一般主要包含站立、走路、跑步、跳跃、攻击、技能、受伤、死亡等状态下的行为动作,这些动作里都包含着审美因素,以下具体分析这些因素。[6]
动作节奏的快慢变换:在每个角色动作里一般有快慢间隔的节奏效果,彰显角色不同的运动状态。例如在跑步动作中,起跑加速至一个平衡速度时,加速过程是由慢至快的过程,这样的运动节奏由缓和至紧张,呈现了角色动作的变换过程。在跑步的过程中,角色身体前倾向前迈步后,前脚着地,身体惯性微微向后,如此交替,动作节奏快慢交错,逼真地显现了角色人物形象。又如在跳跃动作里,从身体的低点跳起到高点后下落,动作节奏为由慢离地后快速下落。综上所述,角色动作的节奏彰显其状态层次,张弛有度,收放自如。
运动轨迹表现角色生命:在游戏中,运动是角色生命的表现方式。玩家通过运动来判断对象的生死与否。例如,在游戏中,角色呼吸而产生的身体浮动,此时身体轨迹为前后来回移动,一旦运动开始,运动轨迹就会产生,这也就直接表现出角色的生命力。一般角色动作从开始至结束,角色的运动轨迹是一条连贯的曲线,整体动作一气呵成,角色仿佛被注入生命。例如技能动作大多为连续的旋转动作组合而成,角色运动轨迹不断盘旋至最高点然后释放不同的技能动画,整个过程显现出鲜活的角色形象。
幅度夸大增强艺术效果:游戏角色表现效果内多数都为夸张的表现手法,而正是这样角色才更具艺术感染力。例如在角色的受伤动作中,被打击后身体出现很大幅度的波动,这样明显的运动效果加强了此时受伤状态的表达。又如在一般的死亡动作中,被击打后动作放缓直至体力耗尽重重倒地,其动作幅度的夸大增强了死亡状态的表达效果。在众多的角色动作中动作幅度夸大更能表达角色所处状态从而增加艺术感染力。
声音配合动作:每一个角色动作配合声音能更好地让玩家认识此时角色所处于的运动状态。在跑步运动中增加步伐声音;在技能动作中增加释放技能声音;在死亡动作中增加倒地声音等行为,在动作进行时,更加真实,更具听感。无声的状态在一般条件下不会去刻意为之,有声能使得角色运动更具质感,在动作开始的同时随之产生作用的声音,使得运动效果更为逼真!
在设计游戏角色动画时,运用上述四项美学规律,能得到更好的动画效果。
2.2角色控制的特点
首先控制游戏有一些可遵循的惯例。[7]一般不同游戏中,特定键盘按键触发相应的动作。例如W键同上键一样为主角的前进,S键同下键一样为主角的后腿,A键同左键一样为主角向左行进,D键同右键一样为主角向右行进。一般空格键发起主角弹跳动作。控制方式的一致有利于玩家操作不同游戏时,对于角色人物的运作使用同样的控制方式,这样使得玩家减少游戏入门时间,利于玩家操作不同的游戏项目。
其次视角的不同选择使得角色控制方式更具多样性。在角色控制中,第一人称、第三人称游戏的视角不同凸显角色控制的可变性。在第一人称游戏里,主角视角即为摄像机视角,所以可以直接运用第一人称控制器。[8]第三人称游戏里视角是摄像机跟随主角移动,需要使用第三人称控制器。[9]有些游戏中可以进行第一人称和第三人称视角的切换,例如《枪火游侠》、《杀手》等。两种视角的切换使用既弥补了第一人称所不具有的主角动作感,又增加了第三人称游戏欠缺的真实性。
然后对于动画融合与动作混合的运用能设定角色多种动作。[10]动作融合指当前动画播放完毕后播放下一个动画。动作混合是不同的动画可以在同一个角色不同部位播放。动画制作的多样性使得游戏人物动作更加丰富,更好的表现了人物所处的不同状态。
运动灵活性也是角色控制中具有的特点。游戏项目中角色的运动灵活度取决于动作指令发出后立即执行的时间间隔长短和动作过渡的流畅程度。良好的角色控制技术能使游戏人物运动灵活,从而让玩家有更好的操作体验。在一般的游戏打斗过程中需要不断发出指令使用不同技能动作,这样每个动作的持续时间短,动作间的过渡时间也短,所以更好的过渡动作和精确指令的间隔时间是角色控制技术探究的重点。
角色控制技术通用于不同角色模型。角色控制技术的扩展使用能使同一种角色控制技术在不同的游戏模型上适用。这样有利于提高游戏开发效率,也便于整个游戏的维护与调整。
最后在Unity游戏开发中,角色控制技术能在动作运行时触发不同事件。例如在一个技能动作里,检测碰撞到敌人时,触发事件,播放特效,这不仅仅增添了游戏的趣味性,还另玩家更具有代入感。
总体上角色控制的设计规律从角色动作审美规律以及角色控制的特点两个方向综合探究,角色控制所遵循的设计规律为角色动画中需要有快慢变化、动画有适度的夸张且声音配合动画,控制角色时遵循一般惯例,角色视角多样化选择,角色控制技术通用与不同角色模型等。
3. Unity中游戏角色的设定
在Unity中,设定游戏角色动画需用到Animation Retargeting动画重定向技术和Animator动画状态机。本章归纳游戏角色一般设定流程。
3.1使用动画重定向技术设定角色动画
动画重定向是指将一个骨架动画“复制”到其他骨架上,或者说是把动画从一个角色模型应用到另一个角色模型上。[11]Mecanim动画系统把游戏中的角色设计提高到了一个新的层次:一方面,提高动画完成效率。对于不同人物模型的基础动作里:例如走、跑、跳之类动作,运用动画重定向可以提高游戏人物的动画重用性,易于统一的维护完善。[12]另一方面,不同模型使用同样的动画可以减少动画的数据量,这对于整个游戏工程的管理和保存起到积极作用。
动画重定向技术的应用关键在于原人物和目标人物骨骼信息的关联,设置双方骨骼信息时需要注意以下几方面:骨骼的名称,骨骼的数量,骨骼的父子集关系以及骨骼长度。[13]在人物制作的过程中保持原人物和目标人物的骨骼结构一致,利于重定向的运用。
在模型动画导入Unity后,选择Humanoid以使用动画重定向技术,此时Configure默认为“开启”状态。在Hierarchy面板中选择游戏角色模型,然后在Inspector面板下选择Animator组件下的Avatar,此Avatar即Unity平台提供的一套精简骨架模板,其映射于实际人形骨架。在产生的Avatar里完成Avatar Configure Inspector骨骼映射。
图1 选择Humanoid格式后状态 | 图2 Unity中Avatar骨架 |
3.2设置动画状态机过渡动画
在游戏引擎中,状态机负责保存角色的动画状态,并支持不同状态动画之间的过渡。例如在站立状态下可以过渡到向左转跑步、直行跑步、向右转跑步等多种状态动作。采用状态机能整理好不同状态之间的顺序关系,使得角色状态动画切换流畅,易于玩家操作。
设置动画状态机时,要将不同的动画节点拖入到状态机界面,通过右键Make Transition可以将一个动画连接到另一个动画,箭头方向指示为从本动画进入所向动画。[14]点击箭头进入到编辑状态,运用不同的Conditions条件去判断何时进入下一个动画。条件由Parameters参数设置产生,可供选择Float、Int、Bool、Trigger四种类型。若一个状态节点支持多种运动,点击此节点右键Create new Blend Tree in State,创建混合树管理多种动画状态节点,然后在Inspector面板中,添加动画即可。
剩余内容已隐藏,请支付后下载全文,论文总字数:8317字
相关图片展示:
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;