《战神》里划船好玩吗?来看看它是怎么做出来的吧

发表于2018-09-02
评论0 4k浏览

在游戏里做船是件很有意思的事。早在《战神2》的时候,Cory(《战神》系列制作人) 就想过要在游戏中加船。可是在系列先前的作品中,加入可操作的船这个概念无法和叙事有机结合。还好,在这次新的《战神》中,我们在一开始就“探索”和“叙事”设为游戏的基石。而以九界之湖为中心,我们终于得以将船只系统加入《战神》。

“后驱船”见过吗

船只一开始的原型很简陋:我们让奎托斯保持坐定姿态,然后把船的模型加入进去。在这段时间我们对奎托斯的速度、摩擦力和大致的运动模型进行了调整,并开始对未来游戏中划船的手感有一个大致的预期。

有了第一个原型后,我们开始进行大量研究。在开发早期我们就决定了奎托斯只用一个桨推动船前进,这个决定也使得游戏中的船更类似于独木舟,至少在动画表现上是这样的。在观看了大量划独木舟的视频后,我们开始有了关于奎托斯划船动画的想法。下一步就是动作捕捉了,为此我们在动捕室制作了一个等大的纸板船。

在游戏中加入单桨滑动独木舟的挑战之一在于,我们需要制作许多动画。比如,每当玩家移动左摇杆,船马上得移动,奎托斯也要随之运动。这也就意味着:针对在空间中转向、前进、后退和旋转的每一个动作,我们都需要为其制作独立的动画

还有一点是,每当奎托斯转换桨的位置时,我们必须要使此动作看起来非常精准。针对奎托斯在划船时的不同位置,我设置了定时窗口,让桨每隔一段时间就会换边。每当玩家输入指令,这些转换动作会很快做出相应反馈,这也是游戏开发中我最自豪的细节之一。

把桨换边的动作很流畅

除去视觉上的表现外,我们在划船的手感上也花费了相当的功夫。我们尝试了几种不同的设定。在很长一段时间内,我们的设定其实是需要玩家按一个“加速”键来让船移动的。这个很有意思,而且允许我们尝试不同的机制,比如基于时间的加速系统。但最终我们还是觉得,让玩家不受干扰地探索这个世界更加重要。

在划船的时候,你应该能感觉出来船是有惯性的。比如在划船的时候,船会基于原有的速度继续往前一小段距离。我们不断地对船的加速、减速和惯性进行调整。我们需要船只对玩家的操作进行即时反馈,但同时也希望船只拥有重量感。我们希望玩家在开阔水域全速前进时,会感受到满足感。

船只的转向是开发过程中比较难的部分。与系列以往不同,新《战神》采用扫射式的导向系统。其能够帮助玩家精准投掷斧头,且也能支持游戏中电影化的运镜。但船只的加入主要是为了探索,如果要通过移动摄像头来控制船只的方向,玩家将失去观察周围环境和细节的能力。所以我们最终决定,船只的所有移动都由左摇杆单独控制

当我们决定好了用左摇杆控制后,就要开始调整转向速率了。测试玩家老是跟我们说船的转向速率太慢了,但要知道,如果我们加快了这个速度,他们就该觉得船不受控制了。不管采用什么样的速率,我们都能听到各种反馈。

闲暇之余,我喜欢开车在洛杉矶的峡谷公路上驰骋。有时候我喜欢在赛道上开车,然后会听到人们说他们喜欢后驱车。其中一个原因是有经验的车手可以通过利用后轮的扭矩来更好地控制车辆,类似“过度转向”。

一般来说,船的前进动力应该是来自其中部,我们据此很快就做出了一艘“全轮驱动”的船。但我们后来将动力来源放在了船的“后轮”处,将其打造成了一艘“后轮驱动”的船。立竿见影的,玩家马上给出了积极的反馈:虽然转向速率变快了,但船只的转向也变得更容易预测了。他们现在可以通过“过度转向”来更精细地控制其动力,来去到自己想去的地方。

上船和下船

在整个船只系统的开发中,最具挑战的一部分当属上船和下船了,这是一个很复杂的问题。每当面对船只且有提示出现的时候,玩家就能选择上船。较近的机位让我们无法隐藏一些东西,且对画面保真度提出了很高的要求。我们不想要玩家突然一下子就上船了,而是希望无论他们处于任何角度和速度下,都能够实现流畅无缝的上船过渡动画。

为了实现这点,我们花费了大量的时间,制作出了一个贯穿游戏始终的系统。每当玩家与某些物品(宝箱、门、船)互动时,这个系统就能够帮助玩家与这些物品在位置上对齐。结合游戏核心的导向系统,玩家能通过最短的路径与物品进行互动,且进入互动状态的初始速度可以与之后的动作较好地匹配。一将此系统加入游戏,玩家马上能够无缝地从任何角度,以任何速度进入船只。

虽然我们已经成功地让奎托斯平稳地上船了,但他儿子咋办?既然奎托斯能够以任何角度,在任何速度下进入船只,那就意味着他儿子也得有这个功能。在游戏中,阿特柔斯一会儿跟着奎托斯,一会儿又希望领着他去一些新奇的地方。既然他随时可能处于不同的状态,那么我们也需要制作一个系统,来让他的上船动作可信。

其实,在每个停船的地方(码头或海滩),我们都设置了一个称为“儿子禁区”的区域。如果仔细注意,你能发现每次上船的时候,儿子都会稍微延后一点。每当玩家按下上船按钮,我们会限制你的镜头转动,这样游戏就能根据奎托斯的角度和速度重置儿子的位置,并让他与奎托斯一起无缝地上船。

这样,上船的问题就解决了,但下船又是另一回事儿了。首先让我们把视线聚焦于码头停船。就像上船一样,玩家可以从任何角度,以任何速度将船停靠在码头。跟以往一样,我们希望在保持画面高保真度的同时,还能让玩家迅速完成下船动作。为了完成这项任务,我们需要用到一点数学知识。每当按下停靠按钮,我们都会计算船和码头间的角度和距离

随后,系统会对目前状态进行判断:船只需要进行多远的旋转?码头更靠近船只的左侧,还是右侧?据此,我们从10个不同的预设动画中进行选择。一旦选定所使用的动画,我们就使用一种叫做“动作打包”的内部技术来对动画进行调整,将船只与码头进行对齐。

沙滩停船的情况就更加独特了。在码头停船时,我们将船只与码头上的固定点对齐。但在沙滩上,玩家可以选择将船停在几乎任何一个地方。为了确保船只停在了沙子上而非石头里,我们对导航网格进行了改良。导航网格让游戏 AI 知道它能够把玩家引向何方,关卡设计师利用导航网格生成器来在关卡中创造可导航区域。由于已知导航网格生成器在生成导航网格时,会自动避开障碍,那么我们就可以使用其来确认安全的沙滩停靠区域。

聊天也有意思

游戏发售后,划船时的“聊天”设定收到了不少的好评。在玩家找到密米尔后,他会在玩家划船时向奎托斯和阿特柔斯讲述米德加德的故事和传说。当然就如我前面所说,我们必须保证玩家能够在此过程中持续操控奎托斯,并在任何时候上船或下船。

根据游戏的进度,聊天系统会有条件地播放一些音频片段,其实这些片段被裁剪成了一小段一小段。如果你持续待在船上,这些片段会让你听起来像一个连贯的故事。而每当你离开船的时候,系统马上会播放一段结束语,每段结束语的持续时间都足够短,确保下船动画结束前能够将其播放完。这也确保了密米尔在下次上船时能够继续之前未完的故事。

小细节

把船只系统带入《战神》,是一项很棒的使命。许多微小的细节共同铸造了船只系统,它是良好团队合作的成果。正是圣莫妮卡所有人的通力合作,才让其成为可能。阅读所有粉丝的反馈也是件很有趣的事情,当然,关于船只系统的反馈会让我更开心。

下面是一些你可能不知道的小细节:

船只系统总共有超过600个动画。在船上的台词总量超过750句。亚尔夫海姆有独特的船只、桨和光影效果。当你带着密米尔时,每一个上船和下船的动画都是不一样的。在码头的时候,系统会知道船只在码头的哪边,并根据这点相应调整进入或退出的动画。在船上的时候,DualShock 的 LED 灯会自动变成水蓝色。即便你待在船上,系统还是会判定你手中的桨为武器。在某个地方有个 Bug:奎托斯能带着桨下船。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引