《最終幻想VII:重制版》自去年發(fā)布起,便屢獲殊榮,包括一舉拿下The Game Awards 2020最佳RPG獎(jiǎng),。最近,Square Enix發(fā)布了《最終幻想VII:重制版INTERGRADE》,,通過充分利用PS5的次世代硬件性能,交付了更高級(jí)別的視覺效果和畫面質(zhì)量,。該游戲現(xiàn)提供以4K分辨率運(yùn)行的圖形模式,,以及每秒60幀的性能模式,這兩種模式都提供了超越本作最初發(fā)行版本的視覺保真度,。經(jīng)過這些優(yōu)化之后,,Digital Foundry稱其為“我們希望看到的FF7重制版”。
為了了解Square Enix如何充分利用索尼的次世代主機(jī),,我們采訪了Square Enix的聯(lián)合導(dǎo)演濱口直樹,、首席渲染程序員池田修一和首席技術(shù)程序員波能智人。他們?nèi)苏務(wù)摿巳绾物@著提升紋理質(zhì)量,,縮短加載時(shí)間,,改善光照和陰影,同時(shí)保持性能平穩(wěn)一致,。
Digital Foundry稱《最終幻想VII:重制版INTERGRADE》為“迄今為止最令人滿意的PS5升級(jí)版本”,。從技術(shù)角度來說,在更新次世代版本的過程中,,你們制定了哪些主要目標(biāo),?
聯(lián)合導(dǎo)演濱口直樹:我最大的目標(biāo)是在制作《最終幻想VII:重制版》的下一章節(jié)之前,親自摸清次世代硬件的性能,。我了解到了一些東西,,例如使用3K和4K渲染分辨率時(shí),可承受的負(fù)載大小,,或者在允許玩家無壓力游玩的同時(shí),,被加載資產(chǎn)的最高質(zhì)量臨界點(diǎn)在哪里,畢竟采用高速SSD之后,,I/O瓶頸已不復(fù)存在。對(duì)忙于開發(fā)我們下一款作品的開發(fā)者來說,,這些都是非常寶貴的經(jīng)驗(yàn),。
《最終幻想VII:重制版INTERGRADE》在PS5上的加載速度顯著提高了。為了在PS5的NVMe SSD上提升加載速度,,是否對(duì)游戲進(jìn)行了大量優(yōu)化,?
首席技術(shù)程序員波能智人:PS5搭載SSD后,,I/O速度已不再是瓶頸。相反,,時(shí)間分片和CPU負(fù)載成了拖緩加載速度的原因,。
因此,我們通過一系列手段改善了負(fù)載流程,,例如采用獨(dú)特的序列化方式,,當(dāng)在特別容易出現(xiàn)瓶頸的區(qū)域執(zhí)行反序列化時(shí),可減輕負(fù)載,。通過這些努力,,我們將12秒左右的加載時(shí)間降低到了6秒。
在探索更深層的改善方案時(shí),,我們意識(shí)到,,加載器非常低效。因此,,我們采用了虛幻引擎4.25中引入的無版本屬性序列化和IOStore,。這部作品是基于UE 4.18開發(fā)的,所以需要進(jìn)行一些更改,。但在實(shí)施更改后,,我們就能將加載時(shí)間縮短到2秒左右,考慮到將帶來的改善,,我認(rèn)為這種投入是非常值得的,。
不僅加載屏幕被最小化了,紋理的加載速度也更快了,,這在游戲的第7區(qū)貧民窟區(qū)域尤其明顯,。能否談?wù)勀銈內(nèi)绾问褂锰摶靡娓纳七@些流送問題?
波能:在PS4版本中,,由于內(nèi)存和磁盤容量的限制,,我們不得不放棄使用更高質(zhì)量的格式和高分辨率紋理。然而,,對(duì)于《最終幻想VII:重制版INTERGRADE》,,仍沒有足夠的磁盤容量可容納高質(zhì)量格式和高分辨率紋理。
因此,,我們采用了Oodle Texture壓縮技術(shù),,并結(jié)合使用Oodle Kraken,如此一來,,即使是更高分辨率的紋理,,我們也能在PS5版本上為其實(shí)現(xiàn)較小的文件尺寸。
另外,比PS4上更高的內(nèi)存容量,,以及對(duì)不可流送MIP貼圖的改進(jìn)(與上述問題的回答相關(guān)),,也有助于紋理的加載。
我們也能夠使用更高分辨率的光照貼圖,,這改善了光照的準(zhǔn)確性,。
游戲中多個(gè)地方的天空盒看起來明顯更清晰、更逼真了,。Square Enix是否通過PS5的額外處理能力,,創(chuàng)作并使用了更加清晰的資產(chǎn)?
首席渲染程序員池田修一:《最終幻想VII:重制版INTERGRADE》的圖形模式提供4K支持后,,我們注意到,,如果保留現(xiàn)有的天空盒,在分辨率上將產(chǎn)生顯著的體驗(yàn)差異,。因此,,我們在一些位置升級(jí)了天空盒紋理,主要用于白天環(huán)境,。此外,,我們更新了渲染資產(chǎn)中的細(xì)節(jié),以匹配這些更改,。
《最終幻想VII:重制版INTERGRADE》改進(jìn)了泛光光照,,更出色地照亮了之前的昏暗區(qū)域。因此在游戲中,,Wall Market區(qū)域布滿霓虹燈的街道看起來格外耀眼,。能否談?wù)勀銈內(nèi)绾问褂锰摶靡娓纳啤蹲罱K幻想VII:重制版INTERGRADE》中的光照?
池田:在開始著手制作《最終幻想VII:重制版INTERGRADE》時(shí),,我們重新評(píng)估了城鎮(zhèn)中放置的所有光源,,并最終決定增加放置數(shù)量。我們也提高了環(huán)境貼圖的分辨率,,它將充當(dāng)表面,,用于反射霓虹光源。我們還重新討論了如何處理靜態(tài)光源的顏色加深,,同時(shí)通過光源探頭修正了亮度校準(zhǔn)值,。
放置在各個(gè)角落和縫隙中的霧信息會(huì)對(duì)所有光源產(chǎn)生反應(yīng),我認(rèn)為這有助于構(gòu)成Wall Market的喧囂氛圍,。泛光是體積霧加上一些后期處理混合而成的,,但通過更新清理和核心程序的處理方式,可以看到即使是最小塊的灰燼也能引起反應(yīng),。
除了光照得到改善外,,Digital Foundry還指出,,《最終幻想VII:重制版INTERGRADE》中添加了新的光源點(diǎn)。能否詳細(xì)說說添加它們的原因,?
池田:因?yàn)槲覀冊诶觅Y源時(shí)有了更大的回旋余地,這確實(shí)使我們能夠在各種位置添加更多光源資產(chǎn),。這樣做的目的是為了給一些平坦的區(qū)域增加更多信息,,這有助于突顯米德加的喧囂。
《最終幻想VII:重制版INTERGRADE》具有升級(jí)的屏幕空間反射(SSR),,在水體反射上尤其明顯,。能否談?wù)勗趹?yīng)用這一增強(qiáng)特性時(shí),你們做了哪些工作,?
池田:我們在《最終幻想VII:重制版INTERGRADE》中使用的SSR不僅會(huì)追蹤光澤表面的光線,,也不會(huì)遺漏通常被忽略的粗糙表面。如此一來,,將在幾何體范圍內(nèi)產(chǎn)生更精確的遮蔽,,這樣,你將看到落地?zé)舻墓饩€從某個(gè)表面反射出來,,或者克勞德的劍鍔映照出劍柄,。
有時(shí)會(huì)在眼睛和鼻子上看到環(huán)境光造成的疊影,這不太美觀,,但大大減少了,。通常,通過法線映射得到的映射矢量會(huì)指向在許多情況下肉眼不可見的方向,。當(dāng)在SSR中使用這些矢量時(shí),,反射方向會(huì)指向表面的內(nèi)部,因此始終會(huì)傳回一個(gè)追蹤錯(cuò)誤,。這時(shí)候,,多邊形表面的映射矢量也會(huì)存儲(chǔ)在緩沖區(qū)內(nèi),為了解決這個(gè)問題,,我們修正了創(chuàng)建反射時(shí)產(chǎn)生的錯(cuò)誤像素,。
通常,SSR會(huì)參考前一幀的圖像,,所以每當(dāng)發(fā)生攝像機(jī)切換之類的事情時(shí),,你可以看到正在處理的反射中會(huì)出現(xiàn)延遲。在這部作品中,,每當(dāng)此類事情發(fā)生時(shí),,我們都會(huì)優(yōu)先渲染不完整的當(dāng)前幀,這將創(chuàng)建替代性的參考幀,,從而解決所有跳幀問題,。此外,,在典型的實(shí)現(xiàn)用例中,被引用的前一幀可能已經(jīng)渲染了霧,,這將導(dǎo)致在SSR中引用時(shí),,霧會(huì)被處理兩次。
當(dāng)開發(fā)圖像時(shí),,我們會(huì)感覺體積霧非常濃重,,當(dāng)反射了遠(yuǎn)處地形的水面上出現(xiàn)這類錯(cuò)誤時(shí),其嚴(yán)重程度會(huì)加劇,。因此,,我們存儲(chǔ)了兩種圖像——帶霧圖像和不帶霧圖像,當(dāng)根據(jù)反射光線所到達(dá)的距離重新構(gòu)建霧密度時(shí),,霧密度可更適合環(huán)境,,從而實(shí)現(xiàn)更自然的反射。
《最終幻想VII:重制版INTERGRADE》中的高質(zhì)量陰影有著更清晰的輪廓,,這使得它們看起來更真實(shí),。在大門等元素投射的陰影中,這一點(diǎn)尤其明顯,。能否談?wù)勀銈冏隽四男┕ぷ?,來提升游戲陰影的保真度?/strong>
池田:我們重新討論了如何分配陰影的處理緩沖區(qū)。由于對(duì)內(nèi)存分配做了更改,,整體保真度增加了,,這反映在了幾何體的細(xì)節(jié)上,曾經(jīng)會(huì)丟失的細(xì)節(jié),,現(xiàn)在都得以保留,。此外,我們糾正了采樣流程中的抖動(dòng)和偏差,,減少了發(fā)生變形的情況,。
我們一直在使用SSAO制作微陰影,但是我們重寫了它的一部分,,包括去噪組件,,如此一來,我們就能得到更清晰的細(xì)節(jié),。
《最終幻想VII:重制版INTERGRADE》使用了體積霧,,可以在愛麗絲屋外花園等地方改變環(huán)境氛圍。能否詳細(xì)說說為什么這種做法非常適合用于更新次世代游戲版本,,你們又是如何通過虛幻引擎實(shí)現(xiàn)的,?
池田:我們已經(jīng)使用了體積霧,但它們作為資產(chǎn)時(shí)的設(shè)置,,如位置和密度,,并不是最佳的,。因此,我們選擇移除所有任意參數(shù),,并嘗試堅(jiān)持使用PBR(基于物理的渲染),,這樣我們就能確保米德加的氛圍更加一致。
霧密度之類的東西仿佛被美術(shù)師用筆刷畫入了場景空間,。我們將其作為探測數(shù)據(jù)鋪入空間,,然后在運(yùn)行時(shí)注入攝像機(jī)視域內(nèi)的計(jì)算體素中。這也考慮到了熱霾,,如果玩家仔細(xì)觀察,可能會(huì)注意到光束的輕微波動(dòng),。
照耀在霧上的光源不僅包括精確光源,,還包括遍布在空間中的多個(gè)光源探頭。散射的計(jì)算模型符合米氏散射的要求,,而且前光也毫無遺漏地顯示出來了,。這種霧也可以從效果中注入——在尼祿的攻擊中就可以看到一個(gè)很好的例子。
啟用所有這些視效增強(qiáng)后,,《最終幻想VII:重制版INTERGRADE》在4K分辨率的圖形模式中出色地保持了每秒30幀的穩(wěn)定速率,,而在分辨率較低性能模式中,保持了每秒60幀的速率,。能否談?wù)勀銈冏隽四男┯螒騼?yōu)化工作,,來實(shí)現(xiàn)這些性能目標(biāo)?
波能:得益于在PS4版本中建立的工作流程,,我們可以改善處理過程中的負(fù)載,。首先,我們檢查了必須修改的地方,,并確定了處理負(fù)載的規(guī)則,。在此基礎(chǔ)上,QA團(tuán)隊(duì)會(huì)檢查不符合這些規(guī)則的區(qū)域,,并通過錯(cuò)誤報(bào)告向我們報(bào)告,。隨后,優(yōu)化程序員會(huì)收到這份報(bào)告,。負(fù)責(zé)處理這項(xiàng)工作的每個(gè)人也將收到分析結(jié)果,、問題和解決方案。我們會(huì)重復(fù)這一過程,,直到所有項(xiàng)目都在規(guī)定的范圍內(nèi),。通過這些努力,我們能夠從玩家的角度理解許多問題,,并獲得穩(wěn)定的幀率,。
對(duì)于希望將游戲移植到次世代主機(jī)的開發(fā)者,,你們有什么建議嗎?
濱口:在開發(fā)《最終幻想VII:重制版INTERGRADE》的過程中,,我不不禁感到虛幻引擎是多么的萬能,,因?yàn)镻S4版的《最終幻想VII:重制版》是在UE 4.18上開發(fā)的,當(dāng)時(shí)自然不支持PS5等未來平臺(tái),。然而,,我們所需要做的只是融合部分內(nèi)容,或者在我們這邊基于最新版本的UE4實(shí)現(xiàn)一些獨(dú)特的項(xiàng)目,,即使是從一個(gè)稍舊的UE版本開始,,也有足夠的靈活性進(jìn)行擴(kuò)展。當(dāng)然,,在更多情況下,,將需要修改虛幻引擎的原生代碼,所以工程師的必備技能仍然是不可或缺的,,但我希望今天的文章可作為參考,,幫助那些希望將游戲移植到次世代主機(jī)的人們。
本文轉(zhuǎn)自虛幻引擎官網(wǎng)~