如何用UE4制作3D动作类游戏制作语言游戏‘游戏大观

You are here:
张瀚荣:如何用UE4制作3D动作游戏
GameLook报道/ 6月5日,2015年第三期GameLook开放日?虚幻引擎专场活动在上海正式举行,此次活动由Epic Games与GameLook联合主办。
动作游戏凭借爽快的打击感和强烈的操作感一直受到玩家的喜爱,但一些高品质的3D动作游戏设计其实颇有难度,国内市场上常见的大多是横版2D游戏。本次活动上,Megafun的创始人张瀚荣来分享了利用UE4引擎制作3D横版动作游戏的心得。
张瀚荣从策划的角度分析动作游戏的制作流程,“先制作2D草图,通过这些草图检验动作的合理性,然后转化为3D模型,最后把这些动作变成招式。”随后张瀚荣着重介绍了UE4中通知系统的强大功能,“游戏中输入的判定、声音、音效、特效、伤害、传递给敌人的状态、取消机制、摄像机的抖动、定帧等所有事情都可以通过通知来完成”。
“伤害区域判定是难点”张瀚荣介绍了伤害判定设计的方法,“通过在人物身前编辑各式碰撞盒子,并通过Notify state控制这些盒子的开关以及变换”此外张瀚荣还分享了动作游戏中缓冲和取消机制的设计,“一个是简单的连招Combos,第二个是角色的特定能力包括角色的跳,还有刚才看到绳子的勾爪,把自己可以勾回去的那种,还有还有一些技能,然后设计这三者的总体逻辑”。
演讲最后Megafun的程序员具体演示了Notify state的使用方法并介绍了其优点,包括保证两个函数成对,方便设计者进行管理。
以下是演讲实录:
张瀚荣:大家好!我们公司正在使用虚幻4引擎在做一款3D的横版动作类游戏,目前代号“TTW计划”,团队在深圳。目前计划的平台只有PC和主机两个,手游并没有考虑太多。然后也计划在7月底China Joy发布一款试玩版。
首先看一段视频,因为我们的游戏太大了,有二十多个G,所以视频也是我花了一个通宵时间剪辑的,还有不少Bug的时候,比较粗糙,大家可以关注我们下一个月的版本。
先制作2D草图、再转化为3D模型
这次分享主要是我们如何使用虚幻4引擎来做一个动作类的游戏。经典的动作游戏有很多,比如说战神系列,鬼泣系列,还有国产的雨血等,都是在动作打击感上做得比较好的游戏。但很多人在做动作游戏的时候都会觉得它特别难做,摸不着它的门道。
动作游戏以我一个做策划的角度来讲主要分为三个方面:视觉、听觉、触觉,触觉就是连击操作的手感。我们的工作流程是这样的,首先制作2D的动作草图,通过这些草图的设计就可以看出动作合理还是不合理。然后根据这些草图在UE4里面做成3D模型的动作,并通过UE4中自带的Cascade这样一个工具来做特效。最后把这些动作变成一个招式,会在Montage中配置事件,这部分的事件非常多,非常烦琐,并在Animation Sequence中配置特效与音效。
这是一个简单的制作流程图,就是把工作任务拆分到不同的人员身上,而这一切的主题就是 “通知”。无论是Montage还是Animation Sequence中都会用到UE4里面独特的设定,叫Notifies,在下面这个位置。
功能强大的“通知”系统 控制连招判定 插入招式特效
通知是干什么用?通知是动画在特定的位置、特定的区域来做特定的事情。特定的事情包括哪些呢?包括输入的判定,声音、音效、特效、伤害、传递给敌人的状态、取消机制、摄像机的抖动、定帧等所有事情都可以通过通知来完成。
手感的来源其实第一个就是连招输入的判定,当你一招打出去要连下一招的时候,判定的时间是否合理的。对于手残党,像我这种来讲,我就会要求一个比较长的一个判定时间。但是对于高手来说,它可能更希望硬核一点。
缓冲我们的手感分为两个通知,包括一些即时响应和缓冲机制。缓冲机制是指获取玩家输入后,等待动画播放到某一帧后才跳转到下一段连招。即时响应就是获取玩家输入后,马上跳转到下一段连招。
那么我们在里面在里面我们是如何配置的呢?可以看到下面这个叫Attack Anim Notify State是我们制作的缓冲机制的判定,然后下面Stop Delay Notify代表不接受按键输入。也就是说在这一长度帧数里面,动作是允许跳转到下一个招式,但是最早的两帧内已经开始接收判定输入了。
特效很简单,就是在特定的某一帧做动作的特效,包括一些挥刀的音效。声音格式是WAV(16bit)的。
伤害区域判定是难点 编辑各式碰撞盒子
还有一个比较重要的是伤害区域的判定,这是动作游戏里面最难也是最核心的。这张图是引用《街霸4》里面框的艺术截图,他们分好多种的框。而我们实际需要的游戏框并没有这么复杂。
我们只需要在特定帧段判定攻击,过了这个帧段就不判定攻击了。通过自动调节判定框大小,调节判定框数量,来输出攻击所传递给每个受击者的状态。比如说这招打出去是需要传递它是浮空的状态,击倒的状态还是普通僵直的状态。
这是之前做的Slnow的配制表,我们通过Slnow的配制表来配置这一系列伤害框里面的一些信息,这个Startswing就是伤害的通知。然后在UE4的编辑器调节这些碰撞盒子的属性,所做盒子的位置,就是人物身前的位置。
我们也可以用通知系统去实现给角色自身添加一系列的状况,比如说在特定的某一帧给角色增加一个霸体状态,也可以无视一切碰撞检测,相当于无敌,蓄力、飞行、延迟出招等一些状态都可以通过通知实现。我们这里Charge,就是一个蓄力的通知,表示人物在蓄力需要重复播的一段动画。
缓冲和取消的机制的设定
动作游戏中也有缓冲和取消机制。缓冲是指这一招是否可以取消?相信大家玩过DNF它有一个后跳是强制取消所有招式和状态的,就是动作游戏的招式,你一招是否能取消?是马上取消还是要等到这一招出完又没有收招可以被取消,还是你的招式被特定类型的招式取消呢?这一系列设定非常核心非常细,但是都可以通过通知完成。
我们游戏中招式分三种,一个是简单的连招Combos,第二个是角色的特定能力包括角色的跳,还有刚才看到绳子的勾爪,把自己可以勾回去的那种,还有还有一些技能。总体逻辑是连招自身不能被打断,但是技能可以打断你的连招,能力也可以打断连招,技能是不能被任何东西打断,能力是可以无视帧数,在出招没开始的时候就打断当前的招式。
我们这里有一个Skilljumping notify,就是技能的取消机制,连招的取消机制刚才也说过,在这两个区域之内是可以取消的。
刚才我讲的通知是出于策划的角度怎样配置这一系列的事件,接下来程序员会讲通知里面怎样运作的。
Begin,End,Tick和GetNotifyName四种方法重写Notify state
Megafun程序员:大家好!我来跟大家讲一下如何编写通知的逻辑。在UE4,特别是做动作游戏的时候,角色挥一刀过去,在特定的某一帧需要执行一系列的操作,而这一系列的操作会有很多的功能。我们现在通过一个实例来分析一下,我们怎样去编写。
比如说一刀挥到这边来,此时伤害的碰撞格应该是进行开启,而在开启的过程中比方说他打到那边去,就需要关闭盒子。我们通过一个Notify state,来控制碰撞盒的开启、关闭以及变换。
具体操作很简单就是点击Open Full Blueprint Editor,打开NotifyState编辑界面。它有4个方法可以被重写,分别是Begin,End,Tick和GetNotifyName。在Begin的时候,就说明我接受到这个事件,所产生的事件的。End也是同理。Tick则是Begin和End之间Tick的事件,它有一个参数Deltatime。那Getnotifynoame就是我想看一下现在哪个Notify在起作用,但是我们一般不会用。
详细逻辑是在Begin的时候,在人物身上挂很多的碰撞盒,Begin时将盒子开启。在Tick,我们有一条Curve曲线,根据传入的曲线有一些变化值来调整碰撞盒的状态,可能是位置、大小也有可能旋转。在End的时候找到碰撞盒,然后将它关闭就可以了。其实代码比较麻烦,但是实际上伪代码就这么一点点,非常简单的一个信息。
配置是这样的,有一个Begin,中间就会产生Tick事件,然后我们会用一个用于编写动作游戏中碰撞盒的开启和关闭的逻辑。我们看到这里有三张图,这里一个测试盒来进行这样的演示,可以看到这是在第一帧,发现第一帧非常小,然后到那边是一个Tick,然后逐渐变大,这是我们当时实现的碰撞盒,这就是碰撞盒所对应的一个物体。
Notify state的好处:保证成对,方便管理
为什么我们用Notifystate,而不是用两个Notify+Player的Tick函数?首先是说我们有Begin,我们就要有End,叫成对调用。不可能一刀砍下去,这个盒子开了,或者在这个期间我被怪打了,我要没有调用到这个End的这个盒子就会一直开着,那样就出事了。
所以我们需要保持它是成对调用。在Notifystate,通过动画打断的一个事件,保证它调用Notifystate的End的函数,可以保证与Begin的成对调用。此外就是Begin、End、Tick他们三个是在同一个BP里面方便我们进行管理。所以建议使用Notifystate实现在动作游戏中玩家碰撞盒的开启、关闭。
我你们采用的是基于碰撞盒的武器攻击点,其实我也研究过,但是我想过另外一种方案,基于线性射线检测的方案。例如手里的任何一把长柄武器,我在武器上定两个点,每一帧进行检测,一旦产生碰撞就认为攻击成功。
张瀚荣:之前有考虑过通过一些,比如说直接在武器上绑定一个盒子,或者是通过一个特殊的方法去做一些检测,但是考虑到因为我们的动作非常快,每一次出招时间非常短。在这个过程中如果在武器上挂一个盒子会非常短,可能只有一帧,但是我希望我们的打击帧数在3帧以上的判定。
另外一点是我们的特效会做得比它的招式动作本身要夸张。比如说我一个角色实际上没有位移,刚才视频里面有一个镜头,就是向前这么大的圆弧的时候,没有任何角色位移,角色还是在原地,但是一瞬间就回来了。这种情况下只能通过在人物前方摆放盒子来实现。
& 2017 . All rights reserved.You are here:
徐化:4人团队 从零开始做虚幻游戏《幻》
GameLook报道/ 6月5日,2015年第三期GameLook开放日?虚幻引擎专场活动在上海正式举行,此次活动由Epic Games与GameLook联合主办。
以往开发虚拟游戏的团队是什么样的?大家普遍认为用虚幻引擎做游戏的团队都是大团队,只有大团才有这样的技术积累和精力,做出高品质的游戏。但令人惊讶的是,《幻》作为一款虚幻沙盒游戏,它的开发团队只有4个人。此次活动,《幻》团队的创始人徐化作了《幻-从零开始制作经验》的主题演讲。
徐化作为一名编剧,在没有任何游戏开发经验的情况,为何会选择用UE4虚幻引擎去开发游戏呢?徐化现活动现场说道:“我们的团队组合有点奇葩,就我个人而言,我是个编剧,没有任何游戏开发的经验,相当于是从零开始。虚幻引擎提供较好的技术支持,如果用户不是特别会编程,也可以使用。即使一个人完全不懂怎么开发游戏,那么只有UE4完全可以帮助你做到。对于“幻”团队来讲,我们要做的就是一切从零开始,直达最高点。”
在技术支持上,幻团队的程序、美术各自分享了在研发过程中遇到的难题,以及如何利用UE4技术支持解决问题。
以下是演讲实录:
选择虚幻引擎开发游戏的前提 :开源、蓝图、持续进化
徐化:《幻》是一个4人团队,我们是在用UE4做一个全平台太空探索的沙盒游戏。近几年中国手游市场的状态是:渠道商、硬件商占的比例很高,但没有高质量的游戏内容推出,因此我们希望做中国最高质量的单机游戏,同时网络对战也是支持的。
为什么选择虚幻引擎来开发这个项目呢?其实说起来,我们的团队组合有点奇葩。就我个人而言,我是个编剧,没有任何游戏开发的经验,相当于是从零开始。虚幻引擎提供较好的技术支持,如果用户不是特别会编程,也可以使用。即使一个人完全不懂怎么开发游戏,那么只有UE4完全可以帮助你做到。对于“幻”团队来讲,我们要做的就是一切从零开始,直达最高点。
对于游戏开发者来讲,都知道虚幻引擎有什么优点?在我学习开发的过程中发现了它的三个杀手锏:一是引擎开源。“《幻》从零开始”游戏是完全虚拟太阳系的,其中的每个星球都是等比大小,如果想要把引擎改到这种程度,必须要有引擎开源作为支持。第二个杀手锏是蓝图,它是可视化编成,即使没有学过程序,也可以编写基本的逻辑和菜单里面的内容。还有第三点版本持续进化,当中有很多新的功能被添加进UE4里,就如同寻找宝藏的孩子,可以不断通过开启新地图,得到想要的奖品。
实现大世界:做随机地貌 无缝切换
程序 李威:我很有幸参与《幻》这个项目,并在团队里负责《幻》的“大世界实现”部分和“扩张生成”部分的开发。《幻》想达到的一个“大世界”目标,就是整个太阳系所有的星球。太阳系内的星球上有各种各样的地貌,类似于火星这种的星球,它本身的元素导致它星球本身就具有红色的色彩。那么大家所熟知的月球呢?就是各种环形山的地貌,地球是大家很熟悉的每天生活的地方。因为可能很多人一辈子都无法登上太阳系内其它星球,所以如何将头脑中设计的内容在游戏中表达出来?这是我们要的结果。但在这个游戏里,我们可以模拟出类似的环境,让玩家可以体验到可能是后几代人才能体验到的内容。
当初在设计“大世界”的时候遇到很多问题,首先一个在于地球本身。做科学研究方面的人士知道,地球本身的数据量是比较大的,一个10米和100米精度范围的高度和纹理数据就有20G。UE4的单位是1cm,如果再往下放几个单位的话,就会发现这个数据量对于一个游戏来说是无法承载的内容。我们可以这么想,地球显然不是太阳系里最大的星球,但是地球的半径超过6000公里,也就是说可以达到10^8数量级,一般来讲浮点数的精度范围是10^7到10^8这个数量级,接近32位浮点数的精度极限。
在实际的开发过程中,如果对这个数量级强制进行渲染,首先造成的后果就是会超出虚幻世界地图范围的极限,光感可能会发现问题。UE4早期 的是50万个单位(相当于5公里左右),新的版本改到200万个单位(相当于20公里左右),但对于描述超过6000公里半径的地球是远远不够用的。强制渲染还存在一个问题:渲染的过程最后到了地表,会很明显的发现地球画面不断抖动,所有的顶点和纹理会不断抖动,因为你超出了虚幻的范围,这样的导致的结果就是上下步之间的误差会很大。
《幻》大世界的这方面内容,是拿网上的一个开源项目作为参考。大概的思路是把球面理解为6个平面的拼接,用一个立方体描述球体,在分界地方构成三个平面。当我们的视角接近星球的时候,就会把这个面进行细分,距离视角越近的面就会被越多细分出来,如果接近到面的位置,再把视角拉回来,线光打上去,就可以看到那几个地方的密度高于其他部分。
地球本身的数据量很大,如果放在游戏中去用,玩家需要下载一个20G的自然量,你会发现这根本不切实际。实际上,就算是开发者也会认为这是不可能做到的事。因为开发者需要安排这20G的数据,还要让玩家觉得这一切看起来很简单。我们想到用一种随机生成的方式,对新产生的平面进行随机数计算,使用多个相干噪声的算法叠加。
说起来这种方式在国外已经研究了很长一段时间,最早的论文出现在上世纪80年代左右,论文中就提到怎样让随机生成出来的地貌更加接近真实自然界的地貌?举个例子,比如world machine是虚幻官方推荐的生成大地形的方案,这是把相关技术集大成的一个作品。
随机生成的地貌会节省开发者很大精力,而结果也不会太差。基于此,我们可以让他先让它生成大块的内容,然后再去首发一些细节的,这也是游戏最后可能会用到的方案。前期,我们做出来的效果并不是很好,试图模拟出山脉的走势,有点类似于梯田的感觉,还包括像千针石林一样的大堆石头山。
虚幻引擎本身的材质以及蓝图都是用的节点编辑方式,有些内容在虚幻编辑器里是看不到的,需要自己专门开发,因此有许多工作需要我们自己来完成。在这里不得不提到的一点是,虚幻3与虚幻4的节点编辑器是完全不一样的,如果需要用虚幻4开发游戏需要重新学习。但是学习的过程不需要很长时间就能上手,所以我们会发现虚幻引擎相当于一个巨人,开发者能够踩在巨人的肩膀上发现很多精彩的世界,也可以事先自己的的想法,一方面在学习的过程中提升自己能力,另一方面可以更完美开发游戏。
实现大世界,要解决浮点精度问题
大世界的实现里有一个浮点精度问题,这也是最大的问题。如果直接是有Float,在大星球进入厘米级别的时候,整个画面会随着相机的运动而抖动,因为此时细分面的初始位置已经在浮点精度之外了。星球之后是整个太阳系,太阳系就用Double来描述,精度控制范围不能超过一个Double。如果这样会带来一个问题:虚幻内部很多都是用Float32来做的,甚至有些Sharder场合都是用Float16,这就牵扯到精度转换的问题,怎么做呢?
经过研究,我们把每个星球和每个细分面的位置用一个Double来描述它,在运算的过程中,摄像机推进到哪儿,就把星球和摄像机的Double的位置先做一个运算,将它映射到一个Float空间里。因为特别远的事物眼睛是看不见的,这样就相当于把没有精度的剔除,剩下的就可以在Float空间里囊括,这样能很快的解决问题,这对以后的升级或是其他过程也不会产生影响。
UE4在美术制作具有很好的可控性
高级材质贴图师 王勇赫:在《幻》的团队里,我主要负责模型、贴图,以及材质和关卡搭建。《幻》的游戏美术风格比较接近电影,包括到目前为止开发出来的内容。在开发过程中会用到一些工具,幻接受一些新的开发工具,比方说我们用DDO做的小瓷娃娃,两层材质,只用时1h左右。
这个比以往用PS去做材质简单很多。另外我们也会用Substance Painter中先做一些基础材质,将材质快速的涂抹上去,看出效果后最后进Unreal中细化调整。
《幻》当中VR演示模型要做到的是让它四季变换,在UE4中可以看到雪已经将整个山都覆盖了,也可以实时的观察到当我拖动雪的高度时可以实时的变化。这套材质的运算方法可以根据山体的高度、斜面来计算以及判定它的材质走向,可以运用到由程序生成的不同的地形上面。只要准备好相应的材质方程,并且在虚幻强大的材质系统中将它们结合在一起,就可以得到一个非常完美的效果。
UE4对动画、特效方面技术支持较好
概念美术 申犇:我在《幻》团队中主要负责设定一块的内容,动画和特效之类的。
第一点,做动画、绑定的美术,对于骨骼的数量比较在意,我也是。我们尝试了一个模型,一共914个骨骼,2830帧动画,(有人要问为什么搞这么多跟骨骼,其实我们想给玩家一种从未有过的体验!)UE4能够完美的导入而且效果很好,当然有传言说UE4只支持256根骨骼:
// Changing this is currently unsupported after content has been chunked with the previous setting
// Changing this causes a full shader recompile
static TAutoConsoleVariable&int32& CVarMaxGPUSkinBones(
TEXT(“Compat.MAX_GPUSKIN_BONES”),256,
TEXT(“Max number of bones that can be skinned on the GPU in a single draw call. Cannot be changed at runtime.”),
ECVF_ReadOnly);
UE4对骨骼动画的支持又到了一个新高度,这也是《幻》决定使用它的一个重要原因。
第二点,是关于外部物理属性的导入。我们再次做了极限尝试,用了巨量的面数来完成了一个披风的制作,添加物理属性,最终UE4告诉我们它可以很完美的支持外部物理引擎参数的导入。
第三点 大家都熟知的传统表情插件Blend shape多数用在表情的制作上,我们进行了大胆的尝试,实现了金属生长的过程,以及破碎动画的过程,解决了大量的资源以及操作性,且UE4中也完美的表现出来,当然了Blend shape的制作过程中会需要很多单体模型的驱动,但我们最后导入引擎的时候仅仅需要导入一个单体即可,大大节省了资源量以及繁琐的骨骼数!
徐化:VR是我们的第一次尝试,在北京我们展示了一下效果特别好。我希望《幻》能开发出中国最好的游戏,给玩家一种全新的体验,谢谢。
Leave a Reply
& 2017 . All rights reserved.You are here:
独立游戏[永夜仙境]4人团虚幻4开发经验
GameLook报道/6月5日,2015年第三期GameLook开放日?虚幻引擎专场活动在上海正式举行,此次活动由Epic Games与GameLook联合主办。在不少人的眼中,采用UE4引擎开发游戏需要一个很大的团队,但是在本届开放日活动中,由国内独立游戏开发团队柳叶刀科技李鸣渤带来的《永夜仙境》却一改不少人对UE4的印象,整个开发团队只有4名成员:一名技术,一位设计,还有两位美术。
李鸣渤表示,之所以使用UE4进行游戏的开发:一是由于其价格低廉,能被独立游戏开发者所接受;二是其与3A级游戏引擎的结构较为接近,能够很快上手;三是虚幻引擎拥有众多先进的技术及功能。
在谈及游戏开发的节奏以及方法方面,李鸣渤表示:“我觉得每个团队都有每个团队的节奏,每个人都有每个人的性格,每个人都有每个人的工作方式。当你这个团队磨合更好的时候,会发现到良好的开发节奏会帮助你把项目推进上去。团队内部,应该是互相支持,绝对不是相互竞争的关系。”
以下是现场演讲实录:
李鸣渤:大家好!我的名字叫李鸣渤,和前韩国总统名字差不多。我今天演讲的题目叫原型态的游戏开发。
4个人的开发团队 近30年游戏行业经验
我之前在英国做了十一年的主机游戏开发,此前从来没有做过手游。所以在很多人眼里我不是很接地气的。
我的本职专业是物理模拟工程师,此前也做过多年的底层引擎架构,但是我不是计算机专业毕业的,只能算是非学院派的工程师。我对于图像与渲染比较有兴趣,但仅限于理论。虽然也有过一些实践,但我并不是专业的图像程序员。我此前也做过一些技术美术,但是从来没有真正地以技术美术作为职业来养活自己。我同时也可以算是一个3D美术,当然也仅限于业余爱好。
目前我们的团队由4名成员组成,我是负责技术,一人做设计,还有两位美术现在在后面做人机演示。我们团队4个人加起来有近30年的游戏行业从业经验。
团队首款FPS游戏——《永夜仙境》
我们做的是一款第一人称射击类游戏,我们设计的目的是做一款支持8人对8人的多人联机游戏,我们现在的计划是先做单人版。
这个游戏是近未来的太空战争题材的游戏。所以说我们渲染的目标是让玩家感觉所有在游戏里出现的设备,都能在各国的实验室找到其影子。而非脱离时代背景,来做一种类似于《光环》或者《死亡空间》这种科幻类的游戏,我们还是想做离现实比较近的近未来题材的游戏。
由于故事的背景是在太空上,所以我们主要的物理模拟是基于零重力物理模拟的机动。表现的风格是纯写实,我们希望达到照片级的渲染效果,当然,这也取决于机器的性能以及我们的目标平台,我们希望能达到次时代的视觉效果。我们在游戏研发的前期,做了很多的概念设计的工作。以下的这些就是我们游戏早期的概念图。
其实我们最开始设计有零重力还有低重力2种情况。低重力的概念是在一个小的行星上,有大型的采矿的机械,有雇佣兵还有海盗等元素。但是由于我们现在需要集中精力做零重力下的模拟,所以这一部分可能会放在后期或者第二款游戏引入。以下是宇航员的概念设计,包括武器、宇航员的装备,包括其身上的标志及其色彩搭配等。
根据我的从业经验,有的时候当设计师、程序员、美术坐在一起的时候,用嘴、用图纸、用笔交流起来的时候,可能每个人脑袋里产生的印象每个人都不一样。所以我们在游戏开发之前,用动画的形式制作了一段视频,模拟了我们想制作一个什么样的游戏。这个视频只是用来告诉我们4个人,我们想做什么样的游戏,视觉效果是怎样的,还有一些物理特性是怎样的。
所以我们制作这段视频的时候,给团队所有的成员一个标杆,不会因为口头上的交流产生一些误解,对最终的制作会产生很大的分歧,当我们有这样一个视频的时候,我们会发现每个人对这个游戏的理解是朝着同一个方向走。
发现适合自己团队的开发节奏
我们小组工作时间并不长,一直在寻找自己的开发节奏。很多团队说加班或者是怎么样,但是我觉得每个团队都有每个团队的节奏,每个人都有每个人的性格,每个人都有每个人的工作方式。当你这个团队磨合更好的时候,会发现到良好的开发节奏会帮助你把项目推进上去。还有团队内部,应该是互相支持的关系,而不是竞争关系。
有时候有些团队其实很多人就问我,为什么你把这个东西告诉别人,对你有什么好处?好处当然也会有,我支持了你,获得了满足感,你获得了支持,下次你也会支持我。如果是竞争的关系的话,那很难形成默契配合的节奏。然后就是良好沟通,所有的问题都是对事不对人的,不存在这样的问题。一切问题摆在明面上,而不是说这个问题解决不了我藏着掖着。然后就是大量学习。在UE4现有的条件下,我们必须是学习学习,没有第二条路走。
为何使用虚幻4引擎开发
为什么会选用UE4呢?我们最初有3个设想。我们最初也考虑过采用Unity引擎进行开发,因为Unity是一个免费的开发引擎,对于独立开发者来说,免费的永远是最好的。去年的时候Epic大幅降低了虚幻4的价格,对于我来说是一个非常好的机会,因为我此前一直是使用3A级游戏的引擎,虚幻引擎的与这些引擎的功能非常接近,使我能较快上手。当UE4能以这么低的价格开放给每位开发者的时候,我觉得这是一个非常好的机会,里面有很多先进的功能及技术是每位开发者都想得到的。还有一个方案是使用CE开发,但对我来说没有任何的CE引擎的开发经验,所以最后我们选择了UE4。
我们刚开始研发这款游戏的时候,发现UE4里有很多的模板可以供大家使用。当我们想尝试一个设想的时候,我们不需要从最底层的架构开始,当我们创建了游戏的模板后,实际上已经有了一个现成的游戏了,而这个现成的游戏可以供游戏开发者大量迭代,把开发者的想法付诸于实践。
蓝图是一种基于节点的图形化脚本语言。如果在座的有美术或者是技术美术,可能会非常熟悉这个概念。而且对很多的设计人员和美术人员,降低了对编程所带来的恐惧感。而对于每次我们对游戏玩法的迭代,蓝图起了非常大量的帮助。蓝图对于一个技术人员,当一个技术人员已经熟悉了面向对象设计这种方法的时候,蓝图简直就是一个非常完美的一个图形脚本。因为它的所有架构和理解都是面向对象。
蓝图最大的麻烦,尤其是对技术,程序员、工程师这种逻辑性的生物来讲,蓝图是一个非常可怕的难以调试的会产生大量Bug的地方,你会发现蓝图有很多线的走向,你要想理解蓝图最后功能的情况,你必须顺着这根线,这个过程是非常繁琐的。这时候我们会做一个评估,如果使用蓝图开发太慢,而使用C++开发会很简单的时候,我们也会把蓝图转换成C++语音进行开发。
对于很多独立开发者来说,可能有些开发者不喜欢做版本控制,因为很多独立开发者就喜欢单兵作战,但是你会发现当你发布了稳定版本再做迭代的时候,这个过程游戏就像是像恶梦一样。所以版本的控制是非常有效、省时间和精力的东西。而UE4内建了与PERFORCE的集成,这对对与独立开发者来说是一个好消息。而其它会提供20个工作站以及20名用户的免费版本,所以说我建议你用PERFORCE。
而且UE4在4.6和4.7版本的时候有一个非常棒的特性,当开发者在使用使用PERFORCE的时候,无法法做到二进制版本的比较。但是在UE4的蓝图比较功能中,可以把两个蓝图放在左右屏进行高光对比,有些高光的地方就是你改变的地方,这为我们节省了大量宝贵的时间。
虚幻4给予的支持
此外,UE4会提供很多的学习的途径,帮助的途径,它的文档非常完善。还有一个就是AnawerHub,这是一个社区,你可以在AnawerHub上提出问题,然后会有专人来回答你的问题。还有大量的Wiki的教学视频,帮助您理解UE4的开发。
我会经常把我的问题放到AnawerHub上,会有EPIC的专人跟踪、帮助你解决问题。还有一点,当你在社区里寻找相同问题的时候,很多时候解答给你提供一个新的思路。如果你是一个独立的开发者,强烈建议你把问题提到社区上去,也强烈建议您去搜索大量的与其相关的问题。如果您有足够多的时间的话,也强烈建议你来回答这些问题,因为回答问题的过程中你会发现原来有些东西是我没有想到的。
近两年,UNREAL上的资源也慢慢多了起来,我们也会购买一、两个资源,但是有些资源是不适合在你的游戏里。当你把这个资源购买下来的时候,我们做的第一件事情是做这个资源的评估,因为有些资源会做得非常非常好看,但它不会考虑这个资源是否对你游戏进行优化。所以我们只购买了1—2个特效资源,但是我们结果发现所有特效资源是不合适的,因为它都是有重力的,我们是没重力的。
游戏开发的挑战与风险
对于挑战的风险,其实任何下一代游戏的开发,这个流程和开发的管线对于现下的开发者来说是极大的挑战,尤其是PS4、Xbox
One这一代的游戏机发售的时候,对于每一个开发者最大的挑战就是,如何使用自己的管线和流程。还有传统材质到PBR材质的转换,因为UE4只支持PBR材质。作为一名美术可能会有大量的资源,但是这些资源使采用传统的制作方法,是不适合放在PBR环境里的。
第二个是对底层引擎的学习和研究的成本。因为UNREAL是一个大而全的引擎,我们要做一款FPS游戏,所以我们要挖掘很多UE4底层的功能,最大程度地解放机器的性能,但是这个学习成本和研究成本是比较大的。再一个就是UNREAL4有太多特性需要挖掘,有时候我们花很长时间写了一个函数和功能,结果放到AnawerHub上一问,UE4已经有这样的函数了。
最后一个就是,本地开发者太少,我希望EPIC能举办更多的开放日活动,把UE4的开发者聚集在一起,大家多交流,把你们的制作经验和想法分享出来,因为只有分享出来,才能发现自己的不足,而不是担心分享出来被别人抄走。其实我不担心这样,我最担心的是我坐那儿没人与我交流,这样根本没办法进步。
虚幻4引擎的优缺点
UE4的特点对于我们来说它有大量3A级游戏所需要的先进功能,我做了这么多年的游戏开发。无论是在CODEMASTERS,还是在PITBULL,我做开发的时候,很多引擎的工具有大量先进的特性,而UE4将这些功能都直接提供给开发者,所以我觉得这是一个简直完美的机会,能让开发者接触到那么多的先进功能。而且最棒的地方是UE4是开源的,然后蓝图是可视化脚本。就我个人用过这些引擎,这些我觉得UE4的效率对我来说是高的。
UE4的的每一处优点都可以说是一柄双刃剑,它确实有大量先进的功能,但是我不知道究竟藏在哪儿。我都得一点点挖出来。然后就是蓝图可视化脚本,你必须把你的蓝图像扎线一样扎得非常漂亮。然后多样化社区中有很多人来回答你的问题,但是,他回答答案是不负责任的,他只是通过他的经验告诉你,他是这么做的。还有就是大量的参考和学习的案例,这其实是很好的一件事,但是不好的事情是有些案例给出的解决方案是不一样的,当方法越多你会困惑。当你碰到困难过多的时候,你会会开始质疑自己。当然你可以测试,但是会浪费大量的时间。
& 2017 . All rights reserved.

我要回帖

更多关于 制作动作游戏吧 的文章

 

随机推荐