文本描述
ACT 游戏核心—内在逻辑的实现(二) 上篇索引:ACT 游戏核心—内在逻辑的实现(一) gad.qqarticle/detail/7157722 打击的实现-击退与击飞 当一个角色被击中时,一般普通的情况下分为两种不同的结果,击退和击飞,我们这一次将 会基于这两个基础动作来谈一谈具体实现的方法。 击退 角色被击退时,会播放一段对应的击退动画并后退一段距离。 其中击退动作的资源 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 游戏一般则采用多个连续骨骼动画段落的做法, 比如一段完整的 。。。以下略