专栏名称: 触乐
一家真正的游戏媒体。提供有关游戏的新闻、评测、行业观察等,专注于高质量、有价值,且真正有趣的内容。
目录
51好读  ›  专栏  ›  触乐

这个被嘲笑的引擎,为塞尔达最新作创造了前所未有的开放世界

触乐  · 公众号  · 游戏  · 2017-03-10 19:04

正文

《荒野之息》使用了着力于模拟真实物理的Havok引擎,但这不是全部——虽然“Havok神”依然出现了。



Havok(念做哈勃克)是一款被广泛使用的游戏开发引擎,它主要用于对真实物理效果的模拟,许多展现、模拟了现实世界的游戏都有这个引擎的参与,包括《Halo 4》《上古卷轴5:天际》《辐射4》,甚至是手游《现代战争4》等等;它还给许多电影中特效提供了技术支持,比如说《守望者》《哈利波特和凤凰社》。


一直以来致力于表现真实世界的Havok,同时也是最近热门游戏《塞尔达传说:荒野之息》所使用的引擎。


《塞尔达传说:荒野之息》的游戏画面


塞尔达系列的制作人青沼英二在此前的采访中谈到他们使用了Havok作为引擎的时候,让采访他的主编、和他对谈的对象、DQ系列的开发者藤泽仁都很惊讶,而根据青沼本人的叙述,Havok公司的工程师们自己,也对于利用这个引擎能够在游戏中达到的效果感到惊讶。


青沼说,“其实我们和Havok公司的人关系很好,和他们现场的工程师们讨论了很久,做了不少调整。他们也觉得,“天Havok引擎居然能做到这个程度?”很惊讶。”


此时采访人电fami nico gamer的主编甚至直接说,“这里向读者们解释一下,Havok是一款广泛使用的物理引擎,但会出现很多让我们日本玩家很惊讶的动作,极端一点来说,角色们会突然跳到空中之类的。”


“我们的东家Dwango,也就是niconico动画的用户中,还有一个词叫做‘Havok神’呢”。


举一个例子的话,就比如说《辐射4》中的这个飞到半空中的bug


“Havok神”这个词来自在日本的宅圈,可以认为是Havok被称作“物理演算之神”的一个简略说法。而日本玩家们对这个神其实并没有一直保持一种敬畏的态度。他们如果在日常游戏中喊出“Havok神”这个词的话,那一定是在游戏出现bug的时候。


这时候需要大喊一声“Havok神降临!”或者直接说,“这是Havok神在发怒”。


来自推特的Havok神之怒,图中并不是鸵鸟


Havok也是开发了这款引擎的公司的名称。他们位于爱尔兰首都都柏林,在1998年设立了这家公司之后,于2015年被微软收购。Havok引擎是在2000年的游戏开发者大会上首次面世的,那之后就被许多以模拟真实物理画面的游戏所采用——塞尔达看起来和那些之前采用了Havok引擎的其他游戏都不太一样。


不过,虽然大多数已经玩到的玩家普遍都说bug很少,但要从目前已经出现的一些bug来说,还是能够看到Havok神的影子的。


比如这个玩家就卡在了这个地方,并且放下炸弹的话会径直往上飞。


宝箱的一个bug


不过,《荒野之息》并不仅仅只是“单纯使用”了这个引擎而已。在今年的游戏开发者大会上,《荒野之息》的团队也登台为大家介绍了他们游戏制作过程中的一些话题。根据日本媒体4Gamer和Fami通的总结可以知道,开发团队在Havok引擎的基础上加上了许多新的内容。(以下图片来自原文配图)


荒野之息是一款以开放世界和自由度为主要特点的游戏。团队的目标是,“只要玩家愿意,你甚至可以把你在游戏最初看到的一块岩石一直搬到最终Boss面前”。


那么可想而知,开发者们要面对复杂无比、并且具有无限可能性的各种情况,开发难度很大。这时候技术导演堂田就决定要导入在物理法则模拟上有很高口碑的Havok引擎来开发游戏——“因为这样,我们才能自由地做出除了物理之外的部分。”


“要聪明地撒谎!”


同时,技术导演堂田认为,游戏中的物理法则同现实世界中的物理法则是不同的,而这种不同,在游戏中就被他们称作“骗人的物理”。使用Havok,也是为了能够让团队能够在正确地加入物理法则之外,尽可能地“多说谎”。


团队认为,开发者需要实现的可能并不是完全复原原本世界的物理性,而是一种“游戏中的物理法则”,或者说,是一种“虚假的物理法则”。


这时,“如何巧妙地来通过‘说谎’来构建一个假象的世界,就成为我们程序员的乐趣之一。”


堂田在演讲中举出了几个例子来说明这种“骗人的物理”。比如说,游戏中有一个名叫Stasis的动作可以让时间停止。但发动这个动作的时候,并不是整个时空的时间都停止,只是承受这个动作的物品处于几秒钟时间停止的状态,如果向它施加其他动作,它仍然受动作影响,并且影响会不断积累,在时间停止结束的一瞬间爆发。


“时间停止的动力学”


除此之外,远程控制金属道具的动作Magnesis让它看起来像是一种使用了类似磁力一样的动作,但这并不是磁力而是近似的另外一个东西,使得它同时具有操作性,并且也不会露馅。


而攀岩的动作中,其实角色和岩壁之间有一个名叫Constraint的动作,这是Havok引擎中将两个物件相连的一种动作,也因此,玩家同样也可以攀爬上运动的物体。其他还包括比如说在砍树之后,砍下来的树干会直接变成一块木头,也可以浮在水面上等等,这些都和现实中的物理不同。



在使用Havok引擎之后,塞尔达的世界中就存在了一个贯穿始终的物理法则了,这时候,开发团队的工作人员就开始有了各种想要尝试的点子,包括“那些帮助角色渡过小河的铁板,是不是也可以用来砸敌人呢?”等等。


而这也正好契合了开放世界和自由度的游戏标准。《荒野之息》的团队除了加上一些“骗人的物理法则”之外,相对于Havok的“物理引擎”还专门开发了“化学引擎”,用来让一些比如说火、水等等元素和物质的内容能够同其他的物体发生联动。


有趣的是,堂田介绍说,除了刚体力学以外的几乎所有自然现象都可以通过这个化学引擎来实现,比如说游戏中的风和电气等等。这在现实生活中其实是物理的范畴,但在荒野之息的世界中,它变得更加简化了。


“风元素”


《荒野之息》中的“物理引擎Havok”和“化学引擎”双管齐下的做法让整个开放世界的开发思路变得十分清晰。


堂田等技术开发者们觉得,动作游戏是由“冲突+移动+状态”来构成的。而化学引擎就主要负责计算道具、场景等等的变化。如果把游戏中出现的具有固定实体的东西称作物体(material),没有的称作元素(element),那么只要制定3条法则就可以几乎实现所有的动作。


这3条法则分别是,元素可以改变物体的状态(火可以让木头燃烧);元素之间可以互相影响对方的状态(水可以浇灭火);物体之间不会互相干涉状态(木头装上石块不会有什么变化)。


动作游戏=冲突+移动+状态变化


火可以点燃数目,元素和物质之间会发生反应,元素和元素之间也可以,但是物质和物质之间不行,这是适用物理法则


所以,面对Havok神的时候,一向bug较少的任天堂给出的答案,除了给“神迹”添砖加瓦之外,依然是敬畏啊(误)。




作者

或闪

“或闪”是“闪电”的意思。


点击图片阅读