释放技能为何会产生硬直?从开发角度,看技能设计原理

在电子游戏发展的漫长历史中,总有一些令人耳熟能详的游戏机制和良性恶性Bug在游戏玩家中津津乐道,比如利用内存溢出机制在《沙罗曼蛇》中卡出255条命,又比如说一些因为游戏引擎老旧导致的一些游戏的手感问题,被续作保留并成为手感的一部分,就像《dota2》中一些技能对转身速度的影响,这最初是因为war3的局限性,而dota2却选择这一块机制选择保留。

释放技能为何会产生硬直?从开发角度,看技能设计原理

 状态机获取速度变量的

这里也不得不指出,状态机的执行结果是没有返回值的,他只能通过变量的变化来触发,但是动画蒙太奇有返回值。因此动画蒙太奇在虚幻引擎中,天生就是为技能系统服务的,而播放蒙太奇的节点,在播放中和播放结束都可以对流程进行控制或者对输入进行许可,像魔兽世界中一边滑步一边释放技能的动作就是在播放技能动画的同时开放了移动输入。

释放技能为何会产生硬直?从开发角度,看技能设计原理

如果你给角色绑定了多个按键的蒙太奇,当你不对正在播放的蒙太奇做任何限制的时候,你播放另一个蒙太奇就会打断当前播放的蒙太奇,如果你一直重复播放一个蒙太奇,就会在这个动画的前几帧疯狂抽搐。这就是很多老游戏的表情系统和打断后摇的核心机制,而一般当需要强制播放结束才能操作的动画则会用一个节点来控制,也就是Delay。

释放技能为何会产生硬直?从开发角度,看技能设计原理

蒙太奇播放

但是Delay作为时间轴控制节点,对性能的开销往往会非常大,所以一般在做CD的时候会用一个int或者float变量,来储存CD时间,然后通过tick事件来在一个统一的时间轴上,只对浮点和整型变量进行判断,而不是每次动作都生成一个新的时间轴,这就导致一些CD的攻击动作会很容易达成打断后摇的效果,因为数值判断和系统级的延迟的优先级是不一样的。

是一直存在的BUG还是刻意为之

既然解释了早期游戏开发者整出来的打断后摇和重复鬼畜表情的代码逻辑,那么为什么现在很多游戏仍然保留了这些机制呢,难道真的是开发者没有能力优化吗?我们以格斗游戏举例,尽管格斗游戏一般都是在2D平面上进行的,但是表现层只是前级,后级的代码上逻辑也是通用的。

释放技能为何会产生硬直?从开发角度,看技能设计原理

在早期FC的格斗游戏中,角色都是一板一眼的,而现代的格斗游戏中,有些攻击动作会严格播放完每一帧才能行动,但是又可以通过爆气等手段来打断,形成新的战略深度。可以说在对判定要求极其苛刻的格斗游戏中,后摇的可打断与否,以及破绽是否成立都是开发者有意进行严格限制的,打断后摇是战略深度的一环,也就是说如果性能开销不大,且要求精确的环境下,开发者是能够优化好这些问题的。

释放技能为何会产生硬直?从开发角度,看技能设计原理

不过在一些对判定要求不那么严格的游戏中,比如moba,很多大家耳熟能详的机制其实一开始就是bug。比如技能接闪现、动作重置普攻这些操作,在英雄联盟早期版本里,都是玩家摸索出来的,尽管像许多比较imba的效果或者可以利用外部程序在人类无法完成的操作中获得质变的一般也被修复了,但是像主动物品重置普攻这些效果一开始并不是写在装备描述里的。

比如我们熟悉的早期版本的破败、提亚马特,都是一开始作为Bug出现,直接提升了一大波上单英雄的对线强度,但是在官方发现问题后,保留了其机制并削弱了数值,让其成为游戏内战略深度构成的一种。

释放技能为何会产生硬直?从开发角度,看技能设计原理

因此,我们可以得出一个结论:打断后摇在现在的游戏中,更多的是开发者为了游戏趣味性做出的彩蛋式设计,而不是无法修复的bug了,不过在早期这些问题的确是引擎技术限制或者是开发者没有注意到而留下的问题,然而现在打断后摇已经成为玩家和开发者的一种习惯性设计了。

#免责声明#

①本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。

②若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

③如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间解决!

④本站部分内容均由互联网收集整理,仅供大家参考、学习,不存在任何商业目的与商业用途。

⑤本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与任何商业和非法行为,请于24小时之内删除!

给TA打赏
共{{data.count}}人
人已打赏
生活杂谈

《电锯人》动画监督发言引发争议:动漫魔改原作究竟有没有意义?

2022-11-4 0:00:00

生活杂谈

为什么动画中华小子是我的童年阴影?

2022-11-6 0:00:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索