講座由技術總監堂田卓宏與首席物理程式設計師高山貴裕,以及首席音效工程師長田潤也登台。演講開頭與全體的彙整由堂田負責,在講解以物理演算為基礎的遊戲玩法時給高山,音效設計的部分則是交由長田演講。
《王國之淚》的基本概念,大多是沿用前作《曠野之息》的「乘法遊玩(Multiplicative Gameplay)」。
全部的物件都是以同樣的法則(物理學或化學等)連結,動作和物體根據場地規則相互作用。正是這種基於規則的互動,使得遊戲自由度得以進一步提升,這正是《王國之淚》所追求的。
在朝著「乘法遊玩」的世界努力的過程中,有兩個重大要素。第一個是「一切都依照物理驅動的世界」,第二個便是「不用特別設計也能引發現象的機制」這兩大要素。
首先是關於「一切都依照物理驅動的世界」。所謂「由物理驅動」是指賦予由動態剛體和約束器構成的物件質量和轉動慣量,並透過速度和加速度來控制。
另一方面,也存在著透過動畫計算出的速度強行移動剛體的非物理控制物件。這種被稱為「運動學剛體控制」的方法,因為實裝簡單、結果明確,因此在《王國之淚》開發初期也被使用。
然而,雖然說這個技術非常好用,卻也有不得不注意的事項。由於被運動學控制的剛體擁有無限的質量,在物理運算時容易產生破綻。舉例來說,在嵌合運作的兩個齒輪中插入一個鐵製品,如果它有質量的話那麼就會卡住並且停止齒輪的運作,但如果只是以運動學控制的話就會直接穿過齒輪,且起不到任何作用。
實際上,這就是在《王國之淚》的開發過程中讓現場變得混亂的原因。非物理的物件與究極手的高自由度玩法不僅難配合,幾乎每天也引發各式各樣的問題。面對「它壞掉了!」「它飛走了啦!」等各種回報,工程師們也只能一邊回應「我知道,等等就會去修,先繼續試試想要的玩法吧」,一邊摸索著解決方法。
而解決這個問題的一線生機,正是製作《曠野之息》時的經驗。其實說到這個解決方法,就是讓所有事物都能以物理控制。用剛才的齒輪舉例來說,被軸固定的兩片齒輪的其中一片改成用引擎轉動,從而傳遞速度到另一片齒輪。
由於所有事物都被物理控制,只要擁有質量的物體都能被究極手移動的設計也不再令人煩惱。在獲得這個經驗之後,便決定從遊戲世界中去除非物理驅動的物件,並且讓所有事物都以物理控制,問題也就迎刃而解。
更好理解的例子,就是在祠堂等出現的閘門。在開發初期時,這個物件是以非物理方式控制的,但也因此很常因為究極手玩法引起許多問題。
比如,為了不讓閘門關起來,可以利用究極手移動物件(例如冰塊)滑到閘門下方卡住,並且趁這個空檔前進……諸如此類的狀況,對本作的玩家來說應該很有經驗才是。但如果這個閘門是非物理控制的話,閘門不僅不會被冰塊卡住,甚至還會直接穿透過去。
該由物理驅動的不只物件,「倒轉乾坤」等林克的能力也是一樣的原理。如果是非物理控制的話,在物體被倒轉動作的路線上如果有什麼東西(例如馬車),被倒轉動作的物體就會破壞掉現在的東西。但是這個問題也在變成以物理的方式驅動之後就解決了。
物理處理也為開發者們帶來了更進一步的發現。以剛才舉例的打開閘門的機關,原本預想的解法是「在打開閘門的按鈕處,要先把冰塊融化到適合的尺寸後放在那邊壓住按鈕」,但是也產生出了「讓林克站在按鈕上面然後用究極手移動冰塊卡在閘門下方」,這樣的另一種解法。
這正是開發團隊追求的「乘法遊玩」的一種形式,且這樣的結果也確實證明了將所有物件都以物理建構是正確的做法。正因如此,構築了一個讓玩家能自由發揮創意也不會產生破綻的世界。
以「乘法遊玩」為目標的《王國之淚》世界,是一個能根據玩家自由發揮而發生各種現象的世界。這些現象必需「不需專用互動」就能達成。
這裡所指的「專用互動」,是根據想實現的事件打造而出的專用程式的意思。例如以車子來說,「讓車子動起來」的程式就是專用互動,但是在《王國之淚》並不是這麼一回事。在這裡當然能做出車子,但是控制這台車子的是輪胎、操縱桿、木板等零件,以及他們的各自的物理運動。
這也適用於現有的地圖上的物件。比如說,有一扇透過轉動輪胎捲起鐵鍊就能打開的門,但是控制這扇門的並不是一個程式,是由輪胎、石板還有鏈條組合才能實現的機關。而在踏板船的情況,除了輪胎跟木板的組合之外,還加上了浮力和阻力等水的交互作用,因此才得以實現。
為了實現這些機制,能當成零件的東西也都必須根據物理規則製作。像是輪胎是由車輪、引擎與輪軸三件剛體構成,輪軸也不是直接黏在車輪上,而是支撐著引擎。引擎驅動物體回轉,並且與地面產生摩擦力後獲得推進力,這樣的機關其實是與現實相同的(雖然車輪加引擎加輪軸一體成形的輪胎本身就很獨特)。
實現這樣全都由物理驅動的世界,並且做到沒有專用互動也能引發現象的機制,讓玩家在嶄新的世界冒險,為了達成這個目標有一項不可或缺的要素。
那就是團隊全員的互相合作。例如光是木板,這個物件的密度、質量、慣性運動等雖然能利用自動計算去控制,但為了視認性與操作性,製作出來的物件其實比起現實中的木板要來得厚。換言之,就是物件的外觀並沒有和現實一致。
也有經由自動計算無法順利進行的案例,要補正就需要美術與遊戲設計師的攜手合作。首先,藝術家和遊戲設計師必須正確理解物理參數。並且為了能夠隨時確認每一個零件都有沒有正確動作,還打造了一個專門確認所有現象的驗證用房間。這促成了工程師與美術之間的緊密溝通。
為了打造出《王國之淚》這樣廣大的世界也能毫無破綻,採用了一切都依照物理計算運作的方向。深入鑽研的結果,甚至構築了一個超越開發者想像、藏有無限玩法潛力的世界。能夠達成這項創舉的原因,正是因為有著「完全理解自己想要實現的世界」這樣想法的開發團隊存在。
符合現實的原則,產生而出的現實音效
接續前作《曠野之息》,《王國之淚》新增了地底世界與空島等更加廣闊的冒險世界。能夠將形形色色零件組合遊玩的自由度增加了玩家能前往的場所,這不只是冒險世界變寬廣那麼簡單,而是意味著多了各式各樣的空間讓玩家探險。
無論是開放的場所或複雜的地形、封閉的空間,身為音效製作團隊,想做到無論在這廣大的海拉魯的哪種地方,都可以將聲音的擴散與自然的迴響竭盡所能地表現出來。在《
薩爾達傳說》系列中,至今為止以各式各樣的形式加入了動態音樂,就連大多採用管弦交響樂團收錄音樂的現在,團隊也為了表現出動態的音樂而傾注全力。為此,據說在這次收集「真正的自然音效」上花費了不少工夫。
《王國之淚》不因其廣闊多樣的地點以及各種遊戲機制和高自由度而自滿,而是因此對自己提出了更高的要求。隨著自由度的提高,音樂也需要更複雜的表現。
為了應對這一挑戰,首先就是開發了能夠以節點相接的方式將樂曲的轉換用視覺呈現的編輯工具。當投影片展現出該工具的畫面時,不由得讓筆者產生「類似《
附帶導航!一做就上手 第一次的遊戲程式設計》那樣的東西?」的想法。以印象來說這個想法似乎是蠻接近的,但實際執行的時候想必應該是更加複雜的東西吧。
在《王國之淚》播放音樂的原則,是基於「如果把動態音樂中大膽的聲音變化,用在效果音上的話會變成什麼樣子呢?」這樣的想法。不只是依照波形讓其發聲,而是因應 3D 的遊戲空間控制聲響自然呈現。
舉例來說,本作中有樂隊出現,但他們並不是在演奏一首 BGM。他們是在《薩爾達傳說》的世界中演奏——也就是說,需要表現在遊戲內 3D 空間中演奏的聲音。當角色距離音源遙遠的話聲音就會變小,角色在洞窟裡的話聲音就要有回音的感覺。當角色的右側產生聲音的話,那個聲音就該由右邊的音響發出。而樂團的演奏,也該是這樣呈現才對。
一般來說,如果要表達聲音遠離,會使用距離衰減曲線。但本作不光是減低音量而已,還會透過過濾器使聲音變悶,或是利用混響使聲音與周圍環境融合,抑或是分別準備近距離和遠距離的聲音並進行交叉淡出,從而創造出「像是那麼一回事」的聲音。
但是,如果是像本作一樣有著各式各樣的空間與場地,光只有這些處理還是稍嫌不夠。當一個聲音出現時,它是從哪個方向傳遞而來、又距離多遠,且如果是在洞窟又或是森林中,這個聲音會產生什麼樣的回音也是條件之一,只是將聲音單一處理的話有可能就會變得不自然。
講者說明到這裡,筆者也注意到了。這就跟先前提到的物理控制是類似的話題。為了應對這樣的情況,音效製作團隊最終抵達的答案,也同樣是「所有的聲音都必須以同樣的規則控制」。
作為聲音的性質,「當距離兩倍遠的時候聲音的音量就會變一半」是眾所周知的事。簡單來說的話,巨大的聲音即使距離很遠也還能聽見,細小的聲音距離很遠的話就會聽不見。那麼當距離變成兩倍以上的時候,就會想到只要把聲音縮減一半就好了吧?但並不是這麼簡單。例如雞的叫聲據說有 100 分貝,如果依照這個原則要讓牠的聲音持續衰減到聽不見為止至少需要十萬公尺,然而在現實來說卻不是這樣。實際上會因為天氣與地面等影響,讓聲音衰減的幅度變得更大(也就是過剩衰減)。
但重要的是,在考慮到過剩衰減的要素時應該要做出適當的平衡調整。並且要表現出在空間內的聲響,不只要考慮距離,要怎麼表現出間接聲音也是重要的一點。適當地設定聲音該如何反射與混響的長度,就可以呈現出是在家裡或是在岩石洞窟裡等擁有其特徵的空間音。
雖然在之前的系列作品中也使用混響效果進行了表現,但那時也需要調整許多參數,執行起來相當困難。本作除了世界非常寬廣之外,還增加了地下世界與洞窟等許多複雜的地形,工程之浩大可想而知。
因此,在開發本作時製作了一種能夠自動計算混響參數的機制,可以從周圍牆壁的方向和距離計算房間的容積,從牆壁的材質收集吸音率等情報,使用殘響時間公式(Eyring 公式)計算出衰減時間等數值。這樣一來不論角色站在哪裡,都可以自動產生出該場所的聲響。本作還有利用地形的體素資訊,活用在探索聲音路徑等地方。
當所有的聲音都能以相同的規則控制,那麼在各種空間就都可以發出適合的聲響大小。如果是這樣大的聲音,那距離多遠可以聽見呢?如果能先根據聲音大小做好基本音響特性的話,再來只要指派音源大概的聲音大小就好,例如「把心之器的聲音變小,積雨雲大概弄這麼大的聲音」這樣。而這個原則不光只是效果音,先前提到的樂隊樂器發出的聲音等也是一樣。
那麼因應高自由度的究極手而產生的,甚至超越開發者預測的東西會怎麼做呢?當然,也會照同樣的規則準備音效機制。就馬車而言,是輪子滾動的聲音、貨架的微小搖晃、連接兩輛馬車的鏈條等,這些聲音綜合在一起,而不是事先準備好的「馬車聲音」。以踏板船來說,則是輪子旋轉產生的水聲和木板在水中進出時的嘩嘩聲組合而成的結果。
這是透過分析由物理系統控制之剛體的運動方式,並根據其大小和材質分配聲音的機制產生的,因此無需編寫專用程式就能產生聲音。
方塊魔像彷彿幾何學的動態產生的聲響。使用滑鉤吊在軌道往下滑動的聲音。吊橋搖搖晃晃,每走一步都會嘎吱作響的聲音。這些也全都是根據規則在遊戲空間內自然地,按照該物件各個構成的零件組合發出的聲響。
當這套聲音系統建立起來時,就連音效設計師自己也驚訝地表示:「自己沒有製作過的聲音以高品質響起,實在令人驚訝」,總監也接著表示:「這也許可以說是一種聲音的物理引擎呢」。
雖然在初期並不是以此為目標,但是為了讓廣大的海拉魯能夠發出更加自然的聲音而努力的結果,就是建構出了這個聲音的規則體系。
比起創造有趣的事情,不如創造能讓有趣的事情發生的機制。
不是決定每個物體的運動,而是創造能讓物體運動的系統。
不是製作所有聽見的聲音,而是打造出聽起來像是這樣的系統。
不是創造特定的互動指令,而是創造讓獨特的交互作用發生的系統。
《王國之淚》讓開發者想到的玩法不再是唯一,而是經由玩家的創意產生出各種不同玩法,能夠引發創新的遊戲。
正因為是根據現實的原則而構築的世界,當能夠做到脫離現實的玩法時就會感覺到它的有趣和自由,更能感受到遊戲給予玩家的自由度。本次講座不僅讓人重新認識到《王國之淚》的樂趣,筆者更在理解其中的根本原因後,不禁想再一次前往海拉魯「大鬧特鬧」度過自由且快樂的時光。