本文来自微信公众号:果壳 (ID:Guokr42),作者:Owl、翻翻,题图来自:视觉中国


上周五,《塞尔达传说 王国之泪》全球发售,身边有不少朋友(包括我自己)都摩拳擦掌,提前请好了海拉鲁探亲假,打算在快乐老家再展身手。


新作《王国之泪》里,除了前作里有的战斗系统之外,最引人注目的新增核心玩法就是“究极手”。


简单来说,“究极手”就跟乐高一样,能让玩家发挥想象力,把游戏里的基本零件组合在一起,用木头、金属、轮子、发动机、风扇等等等等的一系列元素,做出有各种功能的装置。


I have a pen, i have an apple, ah! Apple pen!|@Owl


在这个高度开放的世界里,各种物理和化学要素的规则都和现实中相似,比如火会点燃草,水会导电,金属武器也可以连通电路,过于沉重的装备需要更多风扇来提供升力等等。


塞尔达:林克到哪里了?林克:到蒸汽时代了


但进入了《王国之泪》,勇者们才发现新冒险的开端并不像想象的那么顺利,不少人刚一出门就被狠狠教做人——这难道不是个幻想类游戏吗?这游戏怎么该死的真实,不会点物理还真不能玩了!


物理不好的,竞选弱智吧吧主


犹记得前作里,玩家们在网上争相整活当海拉鲁恶霸,但这次不一样了,大家开始争相竞选弱智吧吧主。弱智的原因非常一致,那就是把学过的物理知识全部还给老师了。


刚进入世界不久,遇到的第一个坎儿是一条河,林克需要用风扇和木头拼成一个木筏过河。先用四根木头拼成一个舒服的大筏子,再随便把风扇往上一杵——诶,这小船就是原地转圈儿,不往前走。


这船他怎么不会直着走啊?|@Owl


下一个坎儿是做小车。好家伙,车轮子粘在木板上,寸步难行。


友友们,我拼的小车怎么不会动啊|小红书@火野丽莎


有弱智吧吧主,就有物理科代表。


拼出了坦克还不能算结束,足够严谨的玩家会在车后面放上两坨大石头,完美的配重让战车平稳推进,就算上坡下坡也不会整个撅过去。


在我追逐小车时,已经有人做出了光棱坦克|小红书@HoyA


甚至有人已经开始拿在游戏里做实验演示,当物理学家了。


三球平衡是一个经典的物理实验,两边的球重量一致,力臂长度相同,可以让系统的重心也维持在支撑面中,从而保持一种“不倒翁”的状态。这个在现实世界里能完成的物理实验,在游戏里也可以完美复刻。


你甚至能在《王国之泪》里演示不倒翁原理 | 袋底洞@Bilibili


我算是明白了,超开放世界也不能绕过牛顿,物理不好的人,真的会被塞尔达制裁!


会物理的,看了也沉默


既然这游戏里的物理模型这么真实,那我们就可以好好算算其中的一些参数了。


游戏里最重要的动力道具之一是风扇,不管是发动小车,还是要让飞行器升空,都得用风扇提供动力。想知道让各种组装件飞起来需要几个风扇,海拉鲁的重力就成了关键问题了。


为了算出海拉鲁大陆上的重力加速度,我们让林克在不装载任何装备的情况下,从空岛上直接进行自由落体运动。


通过比对录屏时间与游戏系统时间,我们发现现实中的1秒等于游戏中的1海拉鲁分钟,下降高度可以通过右下角Z轴数值的变化得出,单位假定为海拉鲁米。


通过记录,我们得出高度随时间变化数值如下:



可以发现,在2海拉鲁分后,林克下落的速度就变成固定数值:60海拉鲁米/海拉鲁分。这时可以当作风阻与重力达到平衡,也就是达到了终端速度(倒也非常合理)


根据公式,只需要知道林克的质量,就能计算出此时的重力加速度了!


等等,林克多重啊?我们发现有人在前作《旷野之息》里,通过神庙的天平算出了林克的体重:7颗苹果+2根辣椒。


再仔细一看,发现林克把地上物体拿在手里时,物体的重量就会变为0……


好家伙,老任这是给了林克把东西变为0克的能力啊?|小红书@超级火恐龙


算到这儿,我的经典物理体系已经崩塌了,在虚构里寻找真实的我脑子果然有问题……虽然这套海拉鲁物理学的具体参数难以计算,但在游戏中,最坚挺的一个规律倒也不难被发现:平衡。


不论是在建造飞行器时,还是在用风扇推进时,升力的多少不是大问题,前后左右的配重平衡和风力方向的对称才是不翻车的关键。


原来这不是考物理,而是在考轴对称图形啊!


真假结合的“海拉鲁物理学”


这套真假参半的物理学体验,背后全靠物理引擎(Physics engine)的加持。


使用计算机模拟现实中物体的物理特性并不是什么新鲜事物,二战期间就有科学家研发了电子数字积分计算机(ENIAC,Electronic Numerical Integrator and Computer)来计算火炮的射程[1]


到了20世纪末,物理在游戏中的应用也发展起来。2000年,随着赛车游戏Harley-Davidson: Wheels of Freedom的发布,Havok物理引擎正式进入了人们的视线。而塞尔达的两部开放世界大作里,用的正是Havok引擎的升级版。


物理引擎可以说是一套求解数学与物理方程的程序,但它通常又不是独立的程序,而是更大应用中的一个子系统,就像是车里的引擎在驱动着其他部分的工作。


模拟真实世界本来就不是一件容易的事情,而任天堂在塞尔达里想做得更多:制造一套虚假的“游戏物理学”系统。


“虚假”的游戏物理学为了更真实的游戏体验|GDC/Youtube


在2017年的游戏开发者大会上,塞尔达的开发团队就提到使用物理引擎并不是为了完全符合现实,而是为了满足游戏设计。所以游戏中不仅有重力、风力这种很真实的元素,也包含了时停、磁力等并不符合物理学设定的能力。


而要在开放世界的游戏里完美实现这一套系统,真的很难。当时《旷野之息》一度延期,很大程度就是因为物理引擎的开发上遇到困难。在早期的采访里[2],塞尔达的设计师提到,有一次他试玩最新版本时,发现本该在一个区域里的物体都不见了,咨询程序员后才发现问题所在:游戏里的风吹走了所有的物体。


除此之外,塞尔达里还暗含着一套“化学引擎”。这套化学引擎将游戏里的对象划分为材料和元素,而后者包含了火、电、水、冰等不以固定形态出现的物体。


物理引擎主管的碰撞与运动,加上化学引擎主管的物体状态,组成了海拉鲁大地上的一整套规则。在续作《王国之泪》中,这套规则以更自由的形式展开,排列组合出各种充满想象力的玩法。在“塞尔达物理学”的加持下,玩家可以化身“灾厄林克”,成为海拉鲁上空最恐怖的物理学大师。


你可以当物理学狂魔开高达,也可以当弱智吧吧主,谁也不能说这就不是真正的快乐。这也许就是游戏的魅力吧!


参考文献

[1]https://www.britannica.com/technology/ENIAC

[2]https://www.eurogamer.net/zelda-breath-of-the-wild-boss-eiji-aonuma-on-the-large-extra-burden-of-moving-to-nintendo-switch


本文来自微信公众号:果壳 (ID:Guokr42),作者:Owl、翻翻