牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

战斗中的取消:《战神》与动作游戏设计

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://spelldev.blogbus.com/logs/15887511.html

战斗中的取消:《战神》与动作游戏设计 作者:Eric Williams译者:绯红KING本文翻译自:http://www.gamasutra.com/php-bin/news_index.php?story=17215在这期Gamasutra的特别专栏里,《战神》(God of War)的战斗/系统主设计师Eric Williams会来探讨一下动作游戏中的取消(即播放下一段动画之前结束上一段动画)。文中会有一些顶尖动作游戏的例子,以及《战神》设计过程中的常见问题。

引言:“以前我被问到的关于《战神》的问题,大部分集中在Kratos的一些武器攻击上,即L1加按键的特殊技。这些问题普遍的根源,就是如何‘取消’这些招式,把它们不渲染出来。与其解释这些招式,我不妨阐述一下完整的动作取消理论,从早期的格斗游戏到引用此概念的动作冒险游戏。”

取消的诞生

让我们从这些游戏的始祖开始:街头霸王:世界勇士。(Street Fighter 2: World Warrior)这是一个传奇故事。在游戏测试期间的某一天,加利福尼亚州一位名叫Tomo Ohira的人,用一些疯狂的招式打垮了游戏中的对手。他可以把一些不能连在一起的招式连起来,用取消制造出连续技。

当我听闻此事时,我还是一个身在俄亥俄州的孩子。我当然相信这个故事,因为Tomo Ohira是当时美国最优秀的街霸选手。然而,在那之后我从日本开发团队得知,这是游戏里的一个“bug”。他们觉得这个破绽很难变得实用,所以就保留了它。

结果,这个bug就成了取消-连续技的诞生之源。最典型的例子就是隆的龙卷旋风脚取消波动拳,我认为这是很多其他街霸游戏基础打法的催化剂,比如“憋角”和“下轻腿”。

取消的真正原理

让我们来给取消下个定义:当用户通过控制器输入一个动画树的一系列节点,开始播放一段新动画时停止播放前一段动画。不用考虑战斗系统的各个招式,让我们直接来分析取消的种类和方法。

取消分为两个核心种类,“部分取消”和“完全取消”。

“部分取消”能使一个动画在指定的条件下结束播放。“部分取消”有两个常用的条件,一个是“打击前帧”(Pre-hit,动画可以在打击进行的第一帧之前的任意时间取消),另一个是“打击后帧”(Post-hit,动画可以在打击进行的最后一帧之后的任意时间取消)。

“完全取消”则是让一个动画在任意的位置结束播放。我进行了归纳总结,只有在少数游戏中会有细微差别,但对于大部分游戏,99%都会采用这两种类型。

大部分游戏中,取消的两个方法是“缓冲”(Buffer)和“瞬时”(Instant)。

“缓冲”方法会预先储存用户的输入指令,并在取消条件成立时执行它们。在一些设计良好的游戏中,“缓冲”方法能在取消条件达成之前,用其他输入指令进行自身取消。这样保证了系统响应性的高品质。

“瞬时”方法则是在取消条件成立时,立即接受并执行用户在那一帧的输入指令。“瞬时”方法允许玩家延迟动画的播放时间,并添加到系统的总响应性中。

那么,我们来举一个例子。这里有一段名为“Square01”的动画。这段动画在我们按方块(Square)键时会播放。这段动画共有60帧的长度,在15帧至20帧是一个打击帧窗口(即打击判断生效)。这段动作的伪代码脚本如下:

//60 frames
Animation = Square01

//hit frames
On = 15;
Off = 20;

//attack cancel
Anim = Square02; Button = Square; On = 0; Off = 21; Method = Buffer;
Anim = Square02; Button = Square; On = 21; Off = 60; Method = Instant;

//block cancel
Anim = Block; Button = L1; On = 0; Off = 60; Method = Instant;

你也许会问,这些都代表了什么?注意“On/Off”参数,这些帧的值定义了取消窗口的范围。“Method”参数定义了取消的类型,如果你忘记的话请看上文的定义。

我们可以看到,在021帧之间,“Square01”是不能被打击前帧的方块键输入所取消。而在打击后帧,即帧21之前,方块键的输入是被记录到缓冲中的。

我们也可以看出,“Square01”在打击后帧之后,即2160帧之间,可以被瞬时取消。并且,在060帧之间,L1键可以在任意时间取消“Square01”,也就是完全取消。

如果你明白了上述内容的话,试着去想象一下一个角色的招式中每一段可能播放的动画,并想象一下它们是如何与游戏系统相关联,比如回避、防御、反击、行走、跑步、跳跃、二段跳、魔法、投掷和相关反映动作。给你一个小的参考,《战神2》中的Kratos一共有大约4000个取消节点,以及每一个节点中大量的参数设置。

感到厌烦了?我保证从现在开始不从技术角度去谈论了。

实现的效果

一个完好实现的取消系统对游戏能产生什么样的效果呢?首先,这能判断一个游戏是否给人带有迟滞的感觉,或是爽快并且高响应的感觉。从防御的角度来看,它能给人带来“最好的进攻就是最好的防守”这样一个感觉。玩家可以攻击敌人,并用防御取消来制造新的机会去攻击。

防守取消在《灵魂能力》中是非常有趣的。因为它支持打击前帧的取消,能让玩家制造佯攻,给使用头脑的对战游戏提升了一个新的层次。《街头霸王3》和Marvel系列应用了“超杀取消”,在传统Capcom系列中显得十分华丽,并带来了进攻型的游戏体验。

你也会注意到,取消系统在一些需要节奏感的游戏中表现的十分出色,例如《罪恶工具》(Guilty Gear)系列。如果考虑到一个游戏中取消系统的各种变化,那真是数量众多。

一个典型的例子就是CvS2Capcom vs SNK 2)中声名狼藉的“翻滚取消”(Roll Cancel),基于一个取消bug,一些招式可以变得无敌。最后,变成了游戏的趣味性和竞技性的争论。但是大多数情况下,一个出色的取消系统要具有一定深度,能让玩家发挥他们的创造力,给游戏的乐趣和感官的满足都带来提升。

下面我会介绍一下关于三大主流动作游戏的一些看法。它们是:《忍者龙剑传》(Ninja Gaiden)、《鬼泣》(Devil May Cry)和《战神》(排名不分先后)。(把我正在并已经制作近4年的一款游戏放到这Top3中可能会引发一些有趣的评论,所以我就不把这游戏写出来了)

忍龙的技术性

《忍龙》是一个非常严格的游戏。它的取消系统非常严格,事实上,打击前帧做出取消判定很容易让我反应不过来。我觉得这是一个非常好的规则,构建了一个牢固的战斗系统,但它也增加了游戏的难度。玩家知道,当他们按一个键发起攻击时,必须在下一段动画开始之前完成打击帧的输入。

这个规则也有一个有趣的地方:玩家甚至不能暂停游戏,因为他们可以换武器或取消攻击。不相信?你可以试试看。忍龙是一个被设计成核心向的游戏,所以他们用一些强硬的规则来保证游戏的公平,使玩家去了解这个严格而缜密的系统。我为板恒伴信和Team Ninja为这个系列所做出的努力和贡献而喝彩!

鬼泣的Style

鬼泣有很多和忍龙相似的规则,但是这是一款Capcom的游戏,他们抛出了一个名为战斗模式(Style)的炸弹,并且添加了许多有趣的成分。

鬼泣的主要取消系统集中在近身攻击和远程攻击的切换上。我确信所有的近身攻击都是打击后帧的取消,远程攻击是由开火速度控制的。而56种的近身及远程武器,使系统的变化更加丰富。如果再加入模式,那么效果是非常惊人的。比起忍龙的技术性,鬼泣更在于无序和华丽的招式。

毫无疑问,鬼泣是一个成功的尝试,从它黑暗阴郁的美术风格,到骄傲、爱说笑话的但丁。尽管如此,当你真正了解它时,你才能深刻“了解”它。并且这个系列有很多激进的Fans让你明白他们已经了解了。

战神和它的目标受众

战神与以上两款游戏不同,它支持很多打击前帧的取消,并且把这两款游戏中的一些方法组合起来。最明显的一点,就是战神不是一款核心向的游戏,没有很强的技术性或华丽的亮点,它只是一个具有纯粹砍杀乐趣的游戏。

它仍然具有一些灵光的要素。当然,那些在等待隆和但丁新的传说的Fans也给了我们一个机会。取消系统的规则是普遍而有目的的。我们的目标受众玩家不希望去学习技巧。他们只是想按照自己的方式去游戏。比起另外两个游戏,战斗并不是这个游戏的唯一部分。

那么关于L1加按键的特殊招式,为什么它们不能被取消?

这些招式显然是Kratos强有力的攻击方式,通过一个简单的按键指令发出。它们能立刻攻击到对手,或者使对手位于不利的状态。这些招式看起来也比较华丽,初学者看到四处闪耀的刀光,会觉得这些招式很强大。

就像我刚才提到的,其他游戏只是用打击后帧的取消,来告诉玩家:“要注意攻击前的瞬间。”而战神中几乎所有的基础攻击都能被任意取消,包括打击前帧,让玩家更轻松自如。

但是,L1加按键的特殊技会有潜在的高伤害能力,这样就不能在打击后帧之前取消。因为这会影响到游戏的平衡性(大多情况是造成无限连)。与此同时,对于初级的玩家,他们通常要了解的是风险与回报的概念。复杂的系统会使他们觉得游戏比较困难。

我知道这会从不同角度引发关于平衡性的争论。但是相信我,我听取过各种见解,而这是我们最终的决定。不管怎样,请随意告诉我我们有多愚蠢。

你不得不面对你的目标受众,而我认为我们抓住了最好的受众群体。那些因为4个小招式不能被提前取消而感到失望和愤慨的朋友们,我只能对他们说,对不起,你们错过了更多伟大的游戏体验。

战神的疏漏和瑕疵是显而易见的,但事实证明,这是唯一一款能吸引日本玩家目光的美式动作游戏。我从小到大在玩日本人的游戏,我希望做出一个感觉很日式的游戏,但是又如同美国电影一般好看。战神让我达成了这个心愿。它不是完美的,但有些人觉得它做到了,这正是我们作为游戏开发者所期望的。

顺便说一下,战神的取消方面还有一些深度乐趣。如果你不相信的话,按方块键,然后输入以下任意指令。

移动 (任意方向)= Post-hit frame
跳跃 = Pre-hit frame
翻滚(回避) = Pre-hit frame
魔法 = Pre-hit frame
投掷 = Pre-hit frame
防御(闪避/阻挡) = Pre-hit frame
切换武器 = Post-hit frame"

这篇文章来自Eric的博客“Pushing Buttons”的一部分,感谢Eric的授权。 

posted on 2008-10-25 10:42 杨粼波 阅读(411) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理