基于UE4的跑酷游戏的设计与实现

基于UE4的跑酷游戏的设计与实现
作者:杨成义 梁毓伟
来源:《现代信息科技》2020年第17期
        摘 要:跑酷类电子游戏,能让玩家在感受极限运动的同时,减少身体机能的限制,降低受伤风险,并实现锻炼思维、提高行为敏捷的目的。文章借助Unreal Engine 4游戏开发引擎,通过可视化的蓝图编程的形式,从关卡、游戏模式、玩家控制器以及用户界面等四部分进行了跑酷游戏PC端的设计和实现。经过测试,游戏中关卡设置、角动作等功能运行流畅,场景跳转迅速,声音播放及参数计算均正常。
        关键词:跑酷类电子游戏;Unreal Engine4;蓝图;玩家控制器
        中图分类号:TP317 文献标识码:A 文章编号:2096-4706(2020)17-0090-03
        Abstract:Parkour video games can make players feel extreme sports,reduce the l
imitation of body function,reduce the risk of injury,and realize the purpose of exercise thinking and improving behavior agility. With the help of Unreal Engine 4 game development engine,through the form of visual blueprint programming,this paper designs and implements Parkour game in PC from four parts:level,game mode,player controller and user interface. After testing,the game level settings,role actions and other functions run smoothly,the scene jumps quickly,sound playback and parameter calculation are normal.
        Keywords:Parkour video games;Unreal Engine 4;blueprint;player controller
        0 引 言
        随着计算机产业的兴起,电子游戏逐渐走进大众家庭,正以迅猛的发展速度席卷文化产业,发挥着在和平年代提高人们精神文化生活质量的积极作用。电子游戏来源于生活,且往往能起到在潜移默化中锻炼人类生存技能的作用,跑酷电子游戏模拟的是一项极限跑步运动,在降低参与者受伤风险的同时,使其获得和极限运动同样的挑战快感。本文立足于当前新兴的单机联机游戏市场,借助美国Epic Games公司旗下的Unreal Engine 4(UE4)
游戏开发引擎,以蓝图编程为主体,说明跑酷游戏在PC端需要实现的业务逻辑。在充分展示并运用UE4完备的功能特性的前提下,设计游戏的菜单,创建选项按钮,通过视角的切换实现菜单到关卡的无缝切换,重点渲染场景和道具的生成,设置按键的映射及角动画播放逻辑,从而实现一个较为完整的游戏软件。介于此游戏的开发初衷,只是出于一定的兴趣和学习目的,同时目前完成版本的界面和美术效果一般,所以暂时不考虑游戏的推广及经济效益问题。
        1 系统的需求分析
        跑酷游戏需要实现的基础业务包含两大部分:数据及逻辑运算、多媒体输出。数据及逻辑运算部分主要需要处理关卡设置、UI交互、玩家控制等。而在多媒体输出部分,需要处理的有用户界面、环境及碰撞音效、模型、角状态机等;在确立游戏的美术风格后,应为相应关卡设计合适的环境,注意使用天空球昼夜交替功能,设置合理充足的光源,保证在夜间玩家仍能有良好的视野。游戏的场景一般由重复生成的跑道、随机生成的环境和物品组成。跑道为单个或多个以矩形网格体为基础制作的可重复拼接方块,在关卡中按脚本设计顺序生成。随机生成的环境和物品则包含了玩家角所碰到的障碍物、拾取物及跑道边缘装饰物,其在关卡中以伪随机的方式在标定的坐标上生成。
        玩家在游戏过程中,角的状态是逐帧检测的,并根据检测结果播放合适的动作动画。因此,需要提前制作角在不同状态下的动作动画,并通过UE4的状态机编写缜密的逻辑,将播放及切换合理地串联起来。比如,判断角是否处于跳跃状态是一个较为特殊的部分,需要判断角的状態是否处于刚起跳、正在悬空、刚落地中的某一种状态,需根据不同状态设置合理的动画播放逻辑。刚起跳、刚落地的动画,在与跑动动画切换时只需播放一遍;而正在悬空的动画,则需要循环播放,保证角在空中时不是处于静止状态。
        2 系统设计和实现
        本游戏软件的设计由关卡、游戏模式、玩家控制器以及用户界面四部分组成,后三者将以蓝图可视化编程的方式进行。针对上述内容进行具体分析,需要完成设计的对象有:光源、跑道、障碍物和得分物、角、玩家控制器、用户界面等。相关对象均以类的形式进行封装,并按实际情况在场景中生成多个实例,这里选取主要的5类对象进行说明。
        2.1 光源
        设置恰当的光源,保证在夜间玩家仍有良好的视野。为了在配合天空球昼夜交替的条
件下,减少不必要的阴影渲染错误,以及解决夜间玩家视线问题,需要将天空球的太阳高度与天空光源的照射角度绑定,实现了天空光源跟随昼夜交替变化的效果。针对天空光源的实时变化,将角相机的自动曝光的最大值、最小值分别设定为20与-10,在此区间可以保证不会出现曝光不足及过曝情况,避免影响玩家视野,如图1所示。
        2.2 跑道
        关卡中地面就是跑道,其应该是无限延伸的,且能及时销毁。跑道上需随机生成障碍物及得分物,玩家与跑道上物品接触时需要正确的响应。将跑道封装为一个单独的蓝图类“Floor_BP”,类中除地板“LPlane”“RPlane”“Floor”外,还包含跑道销毁的逻辑、跑道上生成障碍物或得分物的坐标“Left”“Right”“Middle”,玩家到达跑道边缘后触发生成下一跑道的碰撞盒子“Box”,以及记录下一个跑道生成坐标的“SpawnPoint”,如图2所示。
        2.3 障碍物与得分物
        当玩家触碰到障碍物时,玩家角的骨骼绑定将解除,角将无法再次移动,自此游戏结束。在相同的骨架及网格体的特殊情况下,只需要加入Select节点、将不同的蒙皮放
入Option引脚中,最后将Index引脚与Random Integer in Range节点相连后设置好随机数的区间,便可实现蒙皮效果的随机生成。
        得分物使用了与障碍物相似的逻辑,不同的是在条件达成后,得分物的效果是将作为积分用的整型自增。
        2.4 角
        玩家的角封装于一个名为“Hero_BP”的蓝图类中,其中相机由摄像机摇臂与玩家角相连,而光源则悬空,它们都将跟随玩家的角进行同步移动。玩家操控角时所进行的输入操作都应关联相应的业务逻辑,比如在多条跑道中临近障碍物时所做的跑道切换、跳过障碍物、角的坐标位置变换、时间的增长和移动速度之间的逻辑关系等,全都包含在“Hero_BP”类中。部分控制角移动的蓝图脚本,如图3所示。
        2.5 玩家控制器
        作为一个跑酷类游戏,玩家的控制器主要控制左移、右移、跳跃。UE4官方预置的“PlayerController”控制器还包含了蹲下、慢走等角状态,并提供对触摸板、手柄等操
作方式的支持,设置“MoveLeft”“MoveRight”“Jump”三个输入操作的映射,分别对应键盘上A键、D键、空格键,这些映射将在各个相关类中作为事件被进行触发,如图4所示。除此之外,游戏开始时并不显示鼠标指针、鼠标滚动视角的变化、界面缩放比例的调整等等,这些属于用户使用习惯的重要设置部分,都可以通过玩家控制器进行设置。
        与游戏玩法相关的逻辑设置将存储于名为“Run_Mode_BP”的蓝图类中。在游戏软件中,它主要负责两个部分的逻辑控制,分别是跑道延伸的逻辑和关卡的初始化。针对跑道的延伸,包含了一个命名为“SpawnTitle”的脚本,该脚本中会调用“Floor_BP”类中“SpawnPoint”对象的相关属性,通过变换获取世界坐标,并根据该坐标给定的参数进行延伸跑道的计算。至于关卡的初始化,是将按钮的单击事件进行监听,在关卡开始执行时,通过For Loop节点将“SpawnTitle”脚本进行循环执行。这样,在游戏初期,玩家在视觉上就有足够长的跑道。“Run_Mode_BP”也配置了与自身设置相对应的控制器,当其被执行时,系统将调用其配套的玩家控制器。

本文发布于:2024-09-21 18:29:38,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/92114.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:角色   游戏   玩家
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议