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帧以上的判定。

另外一点是我们的特效会做得比它的招式动作本身要夸张。比如说我一个角色实际上没有位移,刚才视频里面有一个镜头,就是向前这么大的圆弧的时候,没有任何角色位移,角色还是在原地,但是一瞬间就回来了。这种情况下只能通过在人物前方摆放盒子来实现。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

转载于:https://www.cnblogs.com/skiwnchiwns/p/10345091.html

张瀚荣 如何用UE4制作3D动作游戏相关推荐

  1. 张瀚荣:如何用UE4制作3D动作游戏

    http://www.gamelook.com.cn/2015/06/218267 GameLook报道/ 6月5日,2015年第三期GameLook开放日‧虚幻引擎专场活动在上海正式举行,此次活动由 ...

  2. ue4 开发动作游戏_两年时间独自用UE4制作的动作游戏,传说一般的制作人离忧先生...

    <剑魄>是一款近期上架于Steam平台的国产独立ACT类型游戏,由名不见经传的"离忧先生"独自采用虚幻4引擎制作而成. 在我还不是"噬元君"之前便已 ...

  3. 如何用UE4制作2D游戏文档(一)——基础篇

    一.前言 首先感谢B站马克镇镇长的视频讲解清晰把很多细节都照顾到了,我本来自己做的时候没有视频说的那么细,参考他的全套系列视频之后完善了很多内容. 视频指路:https://www.bilibili. ...

  4. 如何用UE4制作2D游戏文档(三)——角色篇

    一.前言 首先感谢B站马克镇镇长的视频讲解清晰把很多细节都照顾到了,我本来自己做的时候没有视频说的那么细,参考他的全套系列视频之后完善了很多内容. 视频指路:https://www.bilibili. ...

  5. 如何用UE4制作2D游戏文档(二)——资源篇

    一.前言 首先感谢B站马克镇镇长的视频讲解清晰把很多细节都照顾到了,我本来自己做的时候没有视频说的那么细,参考他的全套系列视频之后完善了很多内容. 视频指路:https://www.bilibili. ...

  6. 如何用UE4制作非写实“草浪”?

    最近在A站看到了一个UE4大佬经常分享一些有趣的小教程,这个大佬就是Jack McKelvie(A站)Midwinter Entertainment的环境艺术家,今天就让我们来看看他是如何用UE4制作 ...

  7. python可视化迷宫求解_如何用 Python 制作一个迷宫游戏

    相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至耗费数天,然后可能还要分别从入口和出口两头寻找才能找的到通路,甚至也可能找不到通路. 虽然 ...

  8. 使用Unity制作3D驾驶游戏

    使用Unity制作3D驾驶游戏 Unity2021 专业游戏设计 课程英文名:Make a Driving Game in Unity 08.2021 此视频教程共22.0小时,中英双语字幕,画质清晰 ...

  9. 如何用html做一个贪吃蛇,如何用HTML5制作贪吃蛇游戏

    如何用HTML5制作贪吃蛇游戏 发布时间:2020-07-09 15:09:59 来源:亿速云 阅读:122 作者:Leah 如何用HTML5制作贪吃蛇游戏?很多新手对此不是很清楚,为了帮助大家解决这 ...

最新文章

  1. 2018年这些UI设计趋势正在流行,跟上必拿高薪!
  2. OSPF详解-2 区域结构
  3. 济南python工资一般多少钱-济南python编程培训班价格
  4. Picasso-源码解析(三)
  5. express-14 发送邮件
  6. 一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach
  7. 看一眼凌晨四点的哈佛,就会明白中国缺什么
  8. 面试必备:30 个 Java 集合面试问题及答案
  9. Condition总结-CountDownLatch
  10. SQL数据分析实战:好用的窗口函数
  11. 添加文字 高德地图_教您,如何在高德和腾讯定位自己的店铺位置
  12. 屋子里有1到100号100盏关闭的灯
  13. 128道软件测试面试题,面试及答案,视频讲解
  14. SSH进阶(2)——用Struts拦截器实现登陆限制
  15. keil4与proteus的联调
  16. matlab打开图片无效的文件名,Matlab - 使用textscan错误(文件标识符无效)
  17. 使用PHP编写的基于MySQL博客模板-可直接使用
  18. 泰康和百度智能云为何相互需要?
  19. CentOS 5遇到Partition table entries are not in disk order
  20. win10控制面板快捷打开方式

热门文章

  1. j计算机应用研究,中科院成都计算机应用研究所导师介绍:陈光喜
  2. Marketing tactics of e-commerce
  3. 采编分享:我为什么放弃了 Onenote 和为知笔记
  4. Android 模拟按键截屏技巧
  5. 【微信小程序】客服系统,客服聊天发送商品详情,快捷发送链接和图文消息,附代码和流程
  6. Win7下HLP格式帮助文件无法打开的解决方法
  7. canvas绘图(下)
  8. php评论盖楼怎么实现,dedecms评论盖楼实现楼层数,类似腾讯、网易的评论(5.5/5.6版)...
  9. 小程序之私人心情语录-小程序源码分享
  10. 几款背单词软件的测评报告