ACT游戏核心—内在逻辑的实现
来源:GAD 发布时间: 2016-05-19 16:38:02
文/不行也要行哦
作为一个游戏制作者,我本人也是一名ACT游戏的爱好者,对于三大动作游戏也有着深入的研究,像胧村正这样的2D平面动作游戏也很喜爱,国内厂商的网游动作游戏也都有玩过,最长时间的应该是DNF了吧,足足有了7.8年的老号了。在玩家的眼中这些游戏打起不外乎爽爽爽,碉堡碉堡,动作酷炫,特效精细,但是但是由于我不能简单单单的从外表去探究一款游戏,而更多的从实现,机制去推测,模仿,甚至去超越这些游戏,我想这是一名游戏制作者与玩家的最主要区别。
一、快打与慢打,3D与2D
ACT游戏在我的眼中,根据动作大概可以分为两类:快打与慢打,如果通过拟声词去表现的话,那么就是唰唰唰和咚~咚~咚~的区别,其次根据你游戏本身是3D还是2D又可以进行分类,但是两种分类并不是上下的区别,而是平行交叉的关系,游戏本身的根据你设计意图的不同又可以进行不同的搭配。这种分类并不是游戏本身效果的分类,而是游戏不同实现方式的分类。不同的实现方式也可以获得相同的效果和体验,
快打与慢打是什么意思呢,其实它不单单是指游戏人物动作的快速与慢速,而且更多的游戏游戏动作是否由融合而成的,其中像是快打的代表作品《胧村正》,《DNF》,老版《街霸》,《KOF97》这类游戏,通过大量复用具有代表性的已有动作,对已有动作进行多种组合形成新技能,新组合的游戏,我将其称之为快打。没错,使用这类实现方式的游戏大多为2D游戏,当然3D游戏也可以这么做,只不过没有慢打效果好就是了。快打游戏游戏的特点就是,当你放慢帧数去看他人物的动作会发现他各个动作之间都有直接跳转的,喜欢DNF的玩家应该知道,DNF鬼剑士其实本身动作并不是很多,例如鬼斩和修罗邪光斩本身其实是一套动作,但是由于特效的掩盖,动作的快速接续(剑魂的幻影剑舞),造成了这游戏打起来很爽的效果,但是我并不是说它是错的,其实这在游戏制作本身看来,其实是一种很明智的行为,少量的动作资源(想一想你换个鬼剑的天空皮肤只需要几百K的资源包就可以本体替换了),较高的资源有效利用率,这些都是选择这样做的理由,这类游戏在打的过程中,你很少看到特效较少的动作,大多在使用有大量特效的动作或者技能,例如胧村正在空中的快速移动跳跃,有的人物你干脆就看不到角色本身的模型了,只有一个特效一闪,你的人物就移动到了另一个位置。
而慢打,就相对于快打而言,这类游戏大多通过3D制作,动作每一帧每一毫秒都能保证有效和正确,其中《鬼泣》《忍龙》以及最新的黑魂系列都是其中的代表,这类通过专门3D骨骼制作人员制作动作,通过程序融合或者骨骼动画融合的游戏大概都可以视为慢打,这些游戏中每个动作都全程过渡,尽力避免动作接续时的诡异跳帧(尽力,并不是没有,不过打的爽的玩家根本不会在意吧),这种游戏很大的一个特点就是资源众多,模型较为精细,安装包大,动作跳转柔和。而且这类游戏可以做的节奏很快,也可以做的节奏很慢,特效不必多做掩盖,像是鬼泣中尼禄的普通JJJJ劈砍动作,特效并不特别浓厚,但是效果也很好,很帅很有力,你让胧村正里的主角按照那个节奏去砍,你就会发现实在是不好看,少的可怜的主角动画并不能让一个动作每个身体发力点都能表现出来,在3D环境下,动作的每一帧的细节都可以做的完美,但是2D帧动画系统就很难,即使是那么做的,造成的资源 浪费也是大大的。 在此类游戏中,角色的动作大多为一招一式,刀刀入肉感很强,配合着3D视角,怪物哇哇哇叫着的喷着血,你的肾上腺素更是直线上升。
所以更多的采用了3D建模方式Maya动作骨骼的游戏大多都是大厂出品,如果不是大厂,至少要是有资本的才玩得起的,无他,贵啊,费钱啊。相对而言的更多制作的横版2D动作游戏的,大多为小作坊形式的独立制作者或者资本没有那么雄厚的捞钱厂商,毕竟一款游戏赚不赚钱,和这个游戏2D,3D是没有区别的,而且这两种游戏各有各的不同受众,你喜欢玩剑灵天刀,总不能说梦幻西游就不赚钱了吧。
二、动作的接续——搓招还是连招?
关于这一方面,我想我举一个简单地例子大家就可以明白了,格斗游戏拳皇97里的许多人物的招式的触发按键方式都是通过上下左右加上ABCD的连续点击来触发,而鬼泣4中许多的招式都需要一连串的预备动作最后通过按键的终结走向的不同而发出不同招式,前一种是我点击ABCD四个键,然后角色发出了一连串招式,后一种是我同样点击ABCD四个键,角色每当我点击一个键,角色就发一招,最后总共发了四招,在这其中我只要停止按键,这四个动作就会在中间中断,这两种方式,前一种就是搓招,后一种就叫连招。
看到这里你可能回想,啊!这些东西我早就知道啊!NONONO,我讲的完全不止这些,游戏设计者制作之所以和玩家不同,就是要透过外表的现象去研究游戏内部的实现方式,而搓招和连招,就代表着动作游戏完全截然不同的两种动作融合方式。
喜欢MOBA类游戏的玩家现在比较多。我就用MOBA里的术语来举例,而鬼泣3中尼禄的两段普攻I+I后边可以接两个不同的连招,分别是Red Queen combo A :地面△△△△,4连斩 和Red Queen combo C:地面△△,△△△,7连斩(在PC平台上△键=I键),这两个连招我接下来分别以A连招和C连招来称呼他们,其中A和C两个连招的分歧点就在于△△之后,不同的按键时机来区分,也就是说如果你在△△后继续快速点击△,那么你就会发出A连招,如果你稍微缓和了一下才点击△,那么你就会发出C连招,关键就在于这△△这一招上,众所周知,一个挥刀的动作由起刀,蓄势,挥刀,受到四部分组成,但是在实际的制作过程中,△△这个动作由于是续借在△动作之后的,所以△△动作其实是没有起刀这个动作的,她是在上个挥刀结束动作结束之后,刀已经起来了在空中,所以他直接在空中进行△△这个动作的蓄势行为,随后挥刀的直接挥刀的,也就是说△△动作的开始其实是跳过了△动作的收刀行为,如果你没有在△动作之后在继续点击攻击键的话,那么你就能看到△动作的收刀行为。
好的现在我们大概搞清楚△动作和△△动作之间的接续方式,那么你有没有发现,如果你在△动作之后,没有快速的点击攻击键,迟了一点点,那么尼禄其实是不会吊你的,他只会继续的播放△的收刀动作随后回到原地站立的动作,你就不能成功的发出△△动作了。这是为什么呢,这就要牵扯到另一个动作续借的属性了,那就是动作续接百分比(这个名字是我自己起的)。动作续接百分比就是上个动作在什么时候点击可以接下个动作,什么时候点击晚了就不能接下个动作,这个“什么时候”我就将它量化为一个百分比数值,在这个百分比的范围之内,你点击按钮才会续接下个动作,否则超过这个百分比这个点击就晚了,就无效了,为此我特意做了张图。
从上图就可以看出来,如果△动作的续接百分比为70%的话,那么当我点击攻击键,触发△动作,然后在△动作的整个动作的70%之前再次点击攻击键的话,那么我就在△动作结束之前(播放收刀动作)成功跳转到了△△动作,如果我在70%之后输入的话,那么我的输入就结束了,该次点击就会视为无效,无法续接△动作之后继续播放△△动作了。而上图中,我演示的是及时的第二次点击攻击键,成功的通过黄色箭头进行动作播放跳转的示意图,同志们,你们看懂了么?
打击的实现-击退与击飞
当一个角色被击中时,一般普通的情况下分为两种不同的结果,击退和击飞,我们这一次将会基于这两个基础动作来谈一谈具体实现的方法。
击退
角色被击退时,会播放一段对应的击退动画并后退一段距离。
其中击退动作的资源2D与3D的区别都并不是太大,相比起来2D游戏的动作帧数可能比3D的更少一些,2D世界中的角色的击退是一个1~3帧的动画,3D的世界中角色的击退动作是一段连续的骨骼动画,但是就其根本性质而言区别不是特别大。所以这里关于击退动画我们暂且一笔带过。
但是,其中需要注意的是,当角色被击退时后退的距离不同的制作者有不同的做法,一般来说分为以下以下三种:
1、采用固定的击退动画,直接把角色的击退动作的后退距离做在动画之中,这样的话更适合一些不是那么重度的ACT游戏,更加简单省事,坏处即使你如果触发击退的时候,给角色只能退这么远,而且固定一样速度。
2、采用原地动画,随后在程序中添加位移,这种做法的距离方法时,在动作制作人员在动作制作完成之后,删除其中动作的位移信息(PS:为什么不在一开始制作时就删除,这是因为骨骼动作在制作时有位移才能看出动画的问题,所以一般在制作时后会有位移的配合,否则在最终添加位移之后动作会扭曲变形不自然),随后动画人员将废弃的位移信息告知策划&程序进行单独配置。配置的方面有通过二元函数Y=Ax2+Bx,或者通过对动画的每一帧进行KEY帧调试,按我以前的制作方法一般是动作将max中的xyz位移曲线截图给策划,策划照着这个截图在引擎或者工具(例如Unity引擎中的Animator,参照下图)中照抄。不过这方法需要程序的配合,让策划人员可以在该动作的每一帧都能进行单独配置其位移信息才可以。
3、不同距离的击退采用不同动画,这种做法一般在国际AAA大作上有比较多的出现,比如一个普通的盔甲骷髅兵,至少会有往左歪,往右歪两种击退动作,而击飞动作可能会有2~3中,近距离,远距离,中距离,而且每种距离的不同动作都有自己的特色,手部腿部的挥舞,头部的叫喊动作都会有些不同,这种将细节做到极致的方法固然可以将你的游戏品质大大提升,但是这种做法造成的副作用就是包体的大小剧增,APP包可以直接上G。所以除非你游戏中怪物类型很少,比如街霸,KOF97类的格斗游戏一样才可以,如果你真的想要这种效果的话,那最好只在主角身上添加即可,就不要在怪物身上加了。
击飞
击飞时,如果是2D游戏一般会保持一个固定帧或者1~3帧左右的上升,下落,落地等不同动作,与此同时进行抛物线形状的运动,例如DNF,胧村正等2D横版act游戏,一般都会采用此类做法,也就是说在空中飞行的这段过程中,该受到击飞的角色只是一张会移动的静态贴图罢了,例如DNF是在受到击飞攻击的碰撞发生的帧播放一次受击动作随后开始一段单帧的抛物线击飞动画,随后在抛物线触地之后再次进行一个小幅度的抛物线运动,并播放2~5帧左右的触底反弹的动画,随后角色返回站立状态。
而在3D场景中,与2D截然不同的是,3D游戏一般则采用多个连续骨骼动画段落的做法,比如一段完整的击飞动作在空中的飞行,上升,下落,触地,站立每个阶段都是一段完整连续的骨骼动画,不过严格来说,3D也可以使用2D一样通过简单的几帧动画来过渡,但是效果将会相当不好,你都做3D游戏了,还这么省动画干嘛?不过通过简单少量帧数过渡的倒也有,我们这里先按下不谈,只说前一种通过完整动画段落来制作的方法。与2D动画不同的时3D动画资源一般是一个统一的文件件,所以我们在使用此动作资源的时候先要进行动画分割,例如一个3D的击飞动画,有的是分为击飞上升,击飞下落,触地上升,触地下落,起身,有的是分为击飞,触地,起身,而且有些情况下还会对这些资源进行二次利用,怪物在空中二次打飞,这个时候可能就需要再从原先资源中截取一个二次击飞的动画段落,该段落的开始在击飞上升的过程中开始,到触地然后结束。
位移轨迹和比率
在动画分割完成之后,通过上述击退中描述的1,2,3种方案来加入位移,3方案对我们平常实际制作起来不显示,只讨论1,2方案。但是在实际的制作过程中,你还是会发现位移虽然是有了,但是看起来特别的死板,比如角色在打怪物时,根据角色不同的动作幅度的不同,怪物的击退应该是有些距离上的变化看起来才有节奏感,有变化。比如DNF鬼剑士的连突刺技能,使用短剑时为两段伤害,其中第一段伤害怪物的后退距离很近,第二段伤害怪物的后退距离就很远。击飞也是同理,鬼泣5(DMC)中,但丁的斧子形态跳F是把怪物原地击飞,而斧子形态的地面普通攻击第三段是把人斜向前方击飞。
在1,2方案中,这两种击飞应该是同一个击飞动作,不同的位移或者不同的通过XYZ轴关键帧的标记达成,或者通过位移比率达成。前一种方法其实和3方案类似,不过一个通过XYZ轴的关键帧标记达成不同的位移轨迹动画,一个通过制作时动作资源的位移不同达成;而后一种方法则是通过标定位移轨迹后,通过比率压缩拉长XYZ轴的位移比率值,来实现不同距离的位移移动轨迹。这两种方法没有明显的高下之分,在制作时,在“攻击者→攻击→被攻击者”的关系中,这两种方法起始都是绑定在“攻击”这个单元中来实现的。
其他的话
如果想要该效果打击漂亮,自然,有力,需特别需要注意的是需要在动作轨迹上下功夫,所谓细节就是一切,对于ACT游戏来说,怪物飞行的轨迹,速度的变化就是你想要表达的一切,所以对于配置人员来说,必须要对非常了解一般的动画规律,起码要有涉猎,自己做过一些东西才可以,否则只能是竹篮打水一场空,ACT游戏之所以难做,其门槛就在于此,并不是程序实现不了美术不够给力的原因,即使把所有一切资源都摆在你面前,你也无法调配处一个简单有力的击飞效果来。
有些地方不能像我上面所说非黑即白单单只使用一个方案就可以的,一般来说就会复合制作,多个方法并行,在不同条件下使用不同的方案。实现效果的方法有千千万万种,我也不是所有的都了解,只是把我曾经用过的比较有效的方法介绍给大家让大家少走些弯路,大家有疑问的话可以在下方留言询问,我会在(三)中尽力解答。

扫描左侧二维码,关注微信公众号
即可获得游戏智库每日精彩内容推送,并且在第一时间获取游戏行业新鲜资讯。