原文标题:
【CEDEC 24】《萨尔达传说 王国之泪》开发团队分享“通天术”幕后制作秘辛
原文网址:https://gnn.gamer.com.tw/detail.php?sn=273737
于游戏开发者会议“CEDEC 2024”举办期间,任天堂开发团队举办了“《萨尔达传说 王
国之泪》打造地图与 QA ~通天术的背后~”讲座,讲述贯彻作品的功能与效率化的重要
性。
本次讲座登场主持的是在任天堂的企划制作部担任 QA 工程的大礒琢磨,负责环境程式设
计的朝仓淳,以及负责地形领衔美术的竹原学。本次讲座以“通天术”为主题,只要是玩
过本作的玩家就一定会时常用到的这项功能,三位演讲者将分别介绍在本作开发时究竟是
如何进展的呢?
https://p2.bahamut.com.tw/B/2KU/71/a9358f7ca112f272436d5813211reoz5.JPG
任天堂企划制作部的大礒琢磨(前左侧)与朝仓淳(前右侧)以及竹原学(后侧)
通天术是如何诞生的呢?
讲座首先由大礒进行通天术的讲解。
所谓通天术,指的是在《萨尔达传说 王国之泪》(以下简称《王国之泪》)登场的主角
林克能够使用的能力之一,只要一发动就能让林克从现在的地点垂直往上穿越天花板,并
直接爬到天花板上。虽然在林克头顶的垂直空间为非安稳空间的话就无法使用,但是在具
有厚度的天花板,或是洞窟内等地方都能使用。就算是在地底世界也能透过连结到地表的
石柱进行垂直移动,直接回到地面世界。
这个功能一见之下很容易产生问题或是 BUG,让人觉得要加入游戏中很困难。但实际上,
很简单的就制作出来了。而能够完成通天术的理由,据说是三人各自以别的目的推动的工
程促成的。那么,三人各自做了什么尝试呢?
https://p2.bahamut.com.tw/B/2KU/72/2c05e59404e5e215a5b84a3a341rep05.JPG
一致的构造在应用上很有效率
核心部分放在最后再说明,首先由朝仓发表自身的尝试。
身为环境程式设计师的他,在前作《旷野之息》主要负责让世界中的物体能够燃烧、通电
和起风的“化学引擎”,以及可以长出自然的草的生成程序程式设计。
在《王国之泪》中,也着手开发了能让世界中的花草与生物在正确地区出现的动植物生态
系统管理程式、控制气候和天气的程式等。
https://p2.bahamut.com.tw/B/2KU/73/cf50af8a9f45226e7bdc3ca8721rep15.JPG
而朝仓推动的就是“一致的存取地形资讯的方法,也就是提供体素资讯”。
在前作《旷野之息》的地形资讯,当然也是有各种起起伏伏的地形,但若是以世界整体来
看的话可以将其概括为平面。也因为这样,如果准备了单纯的二次元平面资料的话,就可
以把各地的座标对应的资讯整合汇集起来。
https://p2.bahamut.com.tw/B/2KU/74/613b3caf53f5b654c05780f4651rep25.JPG
地形资讯中,包含了生物距离水或熔岩的距离还有森林密度等资料,游戏内的程式随时可
以参照这些资料。依据这个功能就可以改变出现在森林或熔岩周边的动物种类,或是也可
以避免熔岩里出现了动物,且在出现的同时直接被烧掉的窘境。
但是在《王国之泪》,由于追加了空岛与洞窟等特殊的地形,让整体世界扩张了垂直方向
。也因此让长期使用的二次元平面资料无法对应。
既然这样,那就在复杂构造的场所使用专门的平面资料不就好了吗?然而,若使用这项方
法的话势必会让好几层资料叠加在一起,也就会变成更容易酿造出 BUG 的温床。以防万
一,朝仓便开始考量不透过特殊方式就能解决问题的方法。
最后得出的结果,就是将地形的表面粗略体素化,并且将资料汇集到这些体素。
https://p2.bahamut.com.tw/B/2KU/76/83bb44f192e7b62e6c4e114d151rep45.JPG
为了将地形表面的资料汇集到体素,首先需要将玩家可以到达的地表全部找出来才行。为
此,必须要模拟玩家的移动、并逐步追踪。接着在可到达的地表按一定间隔进行 Raycast
(取得光线照射到的座标的方式)的话,也许就能一次调查清楚。而且生成的地表面座标
已经依照一定间隔排好的关系,也可以直接使用在体素的位置。
https://p2.bahamut.com.tw/B/2KU/77/07ae40bf338f3427cb2eca6d1d1rep55.JPG
当然,如果要对游戏内整个世界采取这个方式,庞大的计算是必要的。但如果使用专门针
对几何处理的 DCC 工具.Houdini 就可以高速进行。将几何资料与材质属性等汇入,并
在 Houdini 内重现跟游戏内同样的地形冲突,就能以 Raycast 处理。如此一来就能找出
玩家能够到达的地表,并成功生成其体素。
https://p2.bahamut.com.tw/B/2KU/78/db62d30e4049a0dae965ec19d51rep65.JPG
因为这项计算处理十分快速,对全世界的地形处理只在一夜之间就能完成。因此在开发期
间,对于每天都有变化的地形,体素的更新也能持续进行着。
而且因为体素里的资料,也包含了地形的材质资料,所以能在 Houdini 进行计算。如此
一来不论是洞窟或在建筑物内,只要参照周围的体素,就能够处理所有的情况。
https://p2.bahamut.com.tw/B/2KU/79/96e1c80db22319c57fec65df521rep75.JPG
虽然这已经达到了当初的目的,但是体素化后的资料超越想像地能用在各式各样的地方。
由于比起在地形冲突使用 Raycast,对体素进行 Raycast 的方式快了十倍不止的关系,
就算只是想大概参照周围的地形也能方便使用。例如在处理音效等就能充分利用这个方法
,连在洞窟内的声音回音等效果也都能利用。
https://p2.bahamut.com.tw/B/2KU/80/6c5defb17900dace4ddf8b57641rep85.JPG
在画面方面,想要用流体模拟器驱动雾气特效时,计算流体用的网格也能利用。除此之外
还有许多应用实例,能够做到这个地步,正可以说是因为在最一开始就统一了构造。
https://p2.bahamut.com.tw/B/2KU/81/8143a567b14ea23e5abac636be1rep95.JPG
如果减少回报与修正的负担,游戏就会好玩
接着换 QA 工程师的大礒进行发表。
接续前作继续担任 QA 的大礒,在本作有了新的发想。那就是“身为 QA 工程师只要追求
无 BUG 的游戏就对了吗?”如果为了减少 BUG 的产生而砍掉有趣的功能,岂不是本末倒
置了吗?
https://p2.bahamut.com.tw/B/2KU/82/4a2f6f75b071fef9db07f6d2491repa5.JPG
但又说回来,能让游戏变得有趣的作业,是什么样的东西呢?那就是不断地重复“将点子
试作出来,实际确认好不好玩”这样的循环;而这也跟 QA 的作业相像。去除掉产生 BUG
的原因后,亲自确认有没有彻底解决。不断重复这样的作业确保游戏品质越来越好。也
就是说只要双方不停地循环这些动作,BUG 就会变少,进而诞生出有趣的游戏。
https://p2.bahamut.com.tw/B/2KU/83/5ec2e1614c02148b93c35b5c871repb5.JPG
但是在这循环里重要的,就是对 QA 工程师来说很常见,能让制作与确认的工程效率化的
除错功能。不论是随意生成敌人,或是直接传送到地图特定位置的方便功能,不仅限于除
错的时候,也能活用在游戏制作中的各种场面。
https://p2.bahamut.com.tw/B/2KU/84/a2cc22b5fe63f090681d7e9d881repc5.JPG
在本作的除错功能,也追加了显示负责的难度设计师与美术的要素。有了这个小功能,在
发现 BUG 的时候不只是能立刻知道要找哪个负责人,当难度设计师要向别的开发者说明
新的事件等的时候也能活用。像这样不仅限于除错的主要功能,在开发上也陆陆续续加装
了能派上用场的功能。
https://p2.bahamut.com.tw/B/2KU/86/2bb3bfa801ab3641beee618ea51repe5.JPG
此外也准备了针对除错的功能。例如当电脑玩家发生游戏崩溃的时候,应该都有看过一个
错误报告的视窗跳出来对吧。本作的测试环境也有同样的功能,当游戏崩溃时,就会自动
收集各种资料,并汇集成一份报告。再加上也有手动追加备注资料的功能,如果是已经回
报过的 BUG 就能回避游戏崩溃继续进行作业。
收到错误报告的人,也能根据回报资料有效率地调查、修正,还可以从统计资料知道 BUG
是在什么时候开始发生,又或是在哪个区域发生的。
https://p2.bahamut.com.tw/B/2KU/89/7395c84066a4fbe803d4c8c8751reph5.JPG
而这些功能也能活跃在在地化用的工具上,像是为了能让人清楚分辨应该翻译的单字是出
现在哪个场面,所以有自动拍摄截图的功能。并且跟可以确认剧本流程图的工具等连动,
提高翻译品质与让作业更加效率化。
https://p2.bahamut.com.tw/B/2KU/91/0c53f2ff6a8340cdda4e7266251repj5.JPG
感受到除错作业提高效率的大礒,甚至考虑想要将这个功能开放给测试人员。但是要能完
全使用这些功能的话,必须要让测试人员与开发团队拥有同等的权限与共享资讯。而且若
是改成对开发者来说越是好用的东西,对测试人员来说就会越难操作,他也察觉到了这样
两难的情况。
https://p2.bahamut.com.tw/B/2KU/93/cb45097fa6fbfac925a866a03e1repl5.JPG
那么,只要消除掉彼此间的差异就好了吧。于是大礒提出了这项改革,往后让测试人员与
开发团队拥有相同的权限、共享同样的资讯,并且整理了能够使用同样工具的环境。接着
打造能够适当使用工具的实践环境,且配合连同付费认证的工具 —— 也就是上述提到的
Houdini 与管理版本的工具等,一并提供给测试人员。
https://p2.bahamut.com.tw/B/2KU/70/cbade5de44c9f392f04cf459d11reoy5.JPG
采取这样的方式之后,让测试方能够做到发现只在特定条件出现的稀有 BUG,甚至连八爪
怪章在每一种攻击模式下的伤害量等游戏平衡,都可以提出回报。
https://p2.bahamut.com.tw/B/2KU/95/957e5cc0919961b1e46c5e24da1repn5.JPG
大礒最后提到,以结果来说,在有限的时间内将游戏打磨得更加完善完美,这些都是非常
有用的方式,不仅于此,让开发人员与测试人员拥有团队意识这点也具意义。并不是对立
,而是能够从同样的方向面对作品,致力于制作得到的成果才能变得丰硕。
https://p2.bahamut.com.tw/B/2KU/96/0a8dfd72a1dedbb3cbc60899cf1repo5.JPG
找出只有人力才能处理的部分,其他全都自动化
接着,最后来到地形领衔美术的竹原发表。
在前作监修与制作全体建筑物,到了本作负责地形美术的整体监修与制作的他,摸索了能
够一面确保地图品质一面让作业效率化的手法。
https://p2.bahamut.com.tw/B/2KU/97/a76bc720d1708cebc9e6c7d2f71repp5.JPG
当然,如果可以将各种情况都效率化的话自然是最好的,但身为美术的责任就是不能牺牲
品质。不过《王国之泪》为了要给玩家全新的体验,必定会用上数不尽的美术资源。游戏
世界的地面面积比起前作多了 2.5 倍,如果还照着以前的方式那么人力不足的问题必定
会发生。然而,如果贸然增加人手又会变得难以控管品质。为了对应如此大量作业的新体
制、工具、工作流程都是必要的。
https://p2.bahamut.com.tw/B/2KU/98/f90795f04006dc88d00816fa6d1repq5.JPG
其中最要求效率的就是洞窟了。藏在海拉鲁世界多达 200 个以上,且每个都有附加各种
不同玩法的洞窟,为了让玩家有良好的游戏体验,重复试错更是必要的。是个不断进行检
讨、制作然后体验的循环。但是如果在还没摸清就进行自动化的话,失去重要东西的可能
性也会随之提高。于是,首先要思考的就是“不能自动化的东西是什么”。
https://p2.bahamut.com.tw/B/2KU/00/6793bb86b7114b23064a1db7541reps5.JPG
首先无法割舍的,便是创造玩法的难度设计,同时也是游戏体验的核心部分。接着,是伴
随难度设计而配置资源素材的作业,也就是小道具跟敌人据点配置等。加上洞窟内会出现
的美术设计,也希望能让美术可以控制。简言之,能够自动化的作业,就只有跟玩法无关
的部分。
遵循这个原则,跟程式一起讨论如何将洞窟的工作流程最佳化。得到的结果就是“洞窟系
统”。这个系统能够控制不影响难度设计的装饰部分,且能让美术控制,经由程序程式生
成。
https://p2.bahamut.com.tw/B/2KU/01/9a8b6707b3e37c4fca20d8f9901rept5.JPG
在洞窟系统登场之后,变成能够同时进行难度设计与装饰的作业。如果是像以前直线型的
工作流程,在前面的工程完成之前是很难进行其他作业的,所以光这部分就可以说是很大
的进步。而虽然说是为了洞窟专用而诞生的系统,但回过神来也能利用在生成钟乳石或空
岛地图,作为工具来说的成效相当高。
https://p2.bahamut.com.tw/B/2KU/02/af146d5f9aea7a00d0aec14a891repu5.JPG
而且,美术们的观念也产生了变化。原本对手作业很执著的他们,也会开始提出自动化的
点子。在实现了能不动到创意要素的自动化系统这件事之后,也能分清楚该保护的部分与
不用保护的部分。
https://p2.bahamut.com.tw/B/2KU/03/18633df59080677b1c657da3011repv5.JPG
不过地形的除错也是个难题。特别是确认克洛格的位置无法自动化,因为这是必须要人力
亲眼确认的作业。那么,可以省略的部分在哪里呢?那就是从现在地点前往目标的移动时
间。
这部分就利用了开发基础团队制作的自动拍摄功能,制作了拍摄克洛格的系统。并且附加
了直接传送到照片地点的按钮,以方便亲眼确认。
https://p2.bahamut.com.tw/B/2KU/04/553d364886d2cb4364229305f11repw5.JPG
而配置在地图的资源素材要全部确认的话也是个很庞大的作业量,于是除了需要亲眼确认
的部分也都用工具自动化,并透过分享资讯避免其他人重复作业,让作品进度能按照计画
前进。
冲突(地形碰撞判定)的确认也必须要自动化。如果地形有破洞的话,林克跟道具就有可
能会从那边掉落造成游戏妨碍,是无论如何都需要消灭的错误。但是,要发现这样的破洞
不仅困难,地图的规模还多了前作的 2.5 倍之大。虽然在专案初期便找了工程师商量,
但一时并没有找到好方法。
https://p2.bahamut.com.tw/B/2KU/05/3ffd2312bc796827b4f5dda6dc1repx5.JPG
不过到了开发中期完成的,就是能够标示破洞地点的“找洞工具”。效果如何实际用用看
就能一目了然,有问题的破洞大多能靠这个方式简单修正。只是其他对游戏进行没有什么
影响的破洞也找到了数千个,也烦恼过该拿这些洞怎么办。以结果来说,考量到成效的最
后就是对这些洞的修正先置之不理。如果是安全的破洞,那也不会让游戏严重到无法进行
。
就这样,在把危险的破洞填补之后,海拉鲁也迎来了一时的安宁……
https://p2.bahamut.com.tw/B/2KU/06/534661d00f757d8933fa685a301repy5.JPG
图中红线集中处的某个部分有漏洞存在
https://p2.bahamut.com.tw/B/2KU/07/01ead87c84f85f69c73ff95cc71repz5.JPG
结果,通天术到底是怎么诞生的呢?
回顾前面的内容和说明虽然完全没提到通天术的部分,终于在这里回应开头的话题。通天
术的发想是在开发中期,全员在玩了游戏确认感想的阶段时提出的。探索完洞窟之后,大
家几乎都觉得要回到入口实在是太麻烦,解决这个问题的手段而诞生的就是通天术了。
https://p2.bahamut.com.tw/B/2KU/08/d0505da53a92045016a78d7b491req05.JPG
这个点子,首先由朝仓提出的。通天术的终点,必须要是玩家可以到达的地点。朝仓也很
快联想到这可以活用体素化的资讯。
但还是有一个问题。那就是残留在地形的那些冲突破洞,有可能会变得妨碍通天术。因为
Raycast 会进入那些小破洞,并产生体素。
https://p2.bahamut.com.tw/B/2KU/09/4e710985c399b5c01427aa98d61req15.JPG
也就是说,如果不把全部的破洞塞完,通天术就不可能实现。但是要把破洞塞起来,就必
须要靠地形美术的手作业。如果不使用找洞工具跟 Houdini 的话,是不可能把破洞塞起
来的。但是人力不够。毕竟当初就是因为人力问题才把那些小破洞放置不管的。…… 不
,等等,说起来使用 Houdini 的部队,除了地形美术之外不是还有别人吗?
https://p2.bahamut.com.tw/B/2KU/10/92dde4ea51fe98e7586ae4dada1req25.JPG
最后也因为有方便使用的除错工具之力,构筑了测试员部队寻找破洞后回报,地形美术再
把破洞修正的作业流程。因此残留在海拉鲁各地的小破洞全都埋了起来,并终于实现了通
天术。
https://p2.bahamut.com.tw/B/2KU/11/d047c72f041f73cb8ec5c376a71req35.JPG
https://p2.bahamut.com.tw/B/2KU/12/a7710de66032f9d6024f7686531req45.JPG
像这样,通天术便是由一致的构造,以及改善工作流程进而实现的能力。不过像这样的案
例在《王国之泪》开发过程多少都有发生过,只是规模问题或大或小。在本次介绍的通天
术案例,也不过是开发故事的其中之一而已。大礒在最后总结,结束了本次讲座。