完美世界《幻塔》工程師首度分享如何打造更好的開放世界

蘇于涵

蘇于涵

· 12月6日

踩過很多坑,嘗試找出解決方案

1

自從開放世界由端游轉到手游后,全球玩家們都沸騰了。開放世界大獲成功,也讓游戲大廠們更有動力去嘗試。

開放世界主打高度自由探索,讓玩家們可以體驗虛擬開放多人世界。

透過高度自由交互、精致游戲畫面,讓玩家們有了打開游戲世界的新方式。

12月3日,在虛幻引擎2021技術開放日上,《幻塔》工作室工程師李寧徽進行了主題分享。他主要介紹了《幻塔》如何制作探索開放世界。

公開資料顯示,《幻塔》將于12月16日開放公測,這是一款廢土風格的輕科幻開放多人世界ARPG。

開放世界會有很多有趣的玩法,例如在幻塔世界中,玩家可以游玩過山車、旋轉木馬、摩天輪。值得一提的是,《幻塔》還提供多種視角供佳玩家選擇,讓玩家更有參與感。

想要制作好玩的游戲體驗,游戲設計上也會遇到許多難題。

李寧徽分別從地形、物件、玩法上講述了開發團隊面臨的問題及解決方法。

例如面向物件探索,要讓玩家在游戲中推動箱子,分別有模擬物理及不模擬物理兩種處理方式。

模擬物理的缺點是不可控因素太多,例如地形不平穩、接觸速度不同,產生的結果也會變異。

因此,開發團隊使用不模擬物理,不論中間介入任何因素,都可以保證箱子會被推動到固定地點。

開放世界讓玩家有更高的自由度去參與游戲,但想構筑龐大的世界架構,對開發團隊的考驗真不小。

以下是幻塔工作室工程師李寧徽演講全文,略經編輯:

在游戲中玩家可以探索大世界,可以高度自由的交互,比如說遇到障礙,我們就跨越,遇到高墻或者山體,我就攀爬。因為跳到水中我就游泳等等。

當然我們也可以對大世界的構建進行,比如說推箱子拋體這些操作,甚至你可以去游樂場去坐過山車,去坐旋轉木馬。 

本次演講就是分享我們在制作這些有趣玩法的過程中遇到的一些問題和我們的解決辦法。這次演講所說的開放世界就探索不是從游戲設計或者是游戲玩法的角度去出發,而僅僅是從用人實現的角度去出發。 

比如說我走過的路地上會留下腳印,我淌過的水會有漣漪。源于我對大世界有所動作,時間也會給我相應的反饋,我簡單的把實現探索世界分成單位,分別是地形探索、物件探索和玩法探索。

下面我們就從地形探索說起。這邊有個小視頻就是我們可以從視頻中看到玩家跑過地上會留下腳印,然后進入水中,水中會泛起漣漪,然后從水中再出來就會產生新的角度。

而大家如果仔細看一下的話,其實從水中出來的腳印的顏色是要比沒有進入水中的顏色是要更深一點的。

其實在之前我們的版本里面從水中出來,那是腳印,我們是有手機效果的,但是我們把它去掉了,至于我們為什么把它去掉? 在過去的很多游戲里面,其實腳印這樣的功能已經有了。而且有些游戲把腳印的效果做得非常好。

一般對腳印的需求就是踩在地上如下一個印子,需要稍微高一點。會要求我踩在不同的地表上會留下不同的腳印。 

比如說沙地上草地上腳印是不一樣的。再比如說我們剛才從水出來,我們可以添加水效果。比如說你踩在雪地上,然后會有那種凹凸的感覺。

甚至可以帶起那種比如說像這種雪花的效果,至于腳印的表現,我們可以用去用貼花,用粒子這些去做。用貼花去做腳印的效果是好的,但是貼花有一個問題就是它的消耗。特別特別是大。

而對于手游來說,因為手游的類型是有限的。而且手機表面的溫度、手機的續航,這些都是手游戲體驗非常重要的一個。所以我們就做了取舍。

那么我們是怎么做的呢?我們只是簡單的一個面片來創建一個腳印,并且對腳印做充實的處理。

這個時候我們只是對緩沖室里面的腳印做。比如說它的透明度,它是否顯示以及顯示的位置? 對這些屬性控制而不再反復的創建和消耗,以此來降低消耗。當然這是根據需求以及優化做出的趨勢,這是為什么我們之前把效果去掉的原因。

剛才說的腳印其實是玩家和地面的交互,而漣漪就是玩家和水面的交互。然后我們可以看到這左邊當玩家走路的時候,漣漪是一個波紋。但是如果是摩托車的話,就會有一種把水推開的那種效果。

當水花特效都是玩家和水面的交互,只是他們有一個共同點就是這些交互的效果只生存在水面上,而且與交互的對象的形態不同。它所產生的效果也不一樣。

能源氣候我勉強的把它稱之為玩家和空氣的交互,也就是說在不同的氣候區域里面玩家表現不一樣。比如說左邊在等等區域玩家會有一些比如說搓搓手表現玩家等等的動作。而在右邊如果在很熱的區域玩家還會有扇汗這樣的動作。

其實制作其實很簡單,就是在不同的稀有區域里面,你參加觸發器可能就可以了。當然你可以在這基礎上做一些其他的玩法,比如說添加bug什么的,這種制度實現起來很簡單,但是給玩家的感受卻很好。

我下來我們談一談對障礙的跨越,翻越移動組件里面有一個屬性叫max配置。當障礙物的高度超過這個值的時候,這個時候完全就會被擋住,我認為這個會怎么樣?要么就沿著障礙滑動,要么就被擋在那邊,無法繼續前進。 

雖然我們可以通過跳躍去翻越障礙,但是如果是手機的話,你不停的在按跳躍,那必然會影響到其他操作,而且不是所有的障礙都可以通過跳躍跨過去。

因此對于開放世界自由探索的游戲,特別是手游,這個時候角色可以跨度過程。但是這樣它自動跨過去的需求就很強烈了。而傳統方式制作跨越有很多種,但是他們或多或少都有些問題。 

所以可不可以有那么一種情況,我對大世界的所有障礙都沒有任何限制。美術可以自由發揮,完全是程序自動去檢測翻閱做出翻閱的操作。下面是我們的答案。

剛才我們提到的那種傳統當中那些有限制的方式,我們把它稱作為就是策劃你出去的方式。我們這種方式完全是程序驅動,也就是說我們對地形對障礙沒有添加任何限制。只要你愿意發工具普遍做,然后我們也不會去添加標記,不會去添加觸發器。

從頭到尾完全是程序根據地體檢測算算出來的。我們算出這樣那樣的高度,我們算出我們跨越時候的落腳點,然后根據這樣的高度去選擇合適的動作進行跨越操作。

這上面顯示的三組塊,如果分別是低中高低的話,我們的腳就會一抬腳就上去了。然后中間的稍微高一點,可能要用手撐一下。最后變量可能是比較高,可能手要夠一下,這樣才能撐得過去。

我們現在已經做到了。就是說你可以制作任何去分級,我們現在可以做配置。就是說只要你自己要求我可以做3種5種甚至10種這樣的方式。

在移動組件里面它帶了這種基礎的一個模式,但比如說working, for example,這幾種技術基礎的一個模式是不太合適做跨越的,所以我們就創建了自己的自定義的模式來專門處理跨越。

得益于移動組件的可維護性可重復性和擴展性的強大,所以我們其實相當于站在肩膀上讓我省得很多麻煩,比如說我們很多問題。那么跨越最關鍵的地方是哪?我們這邊是要計算出跨越后的落腳點。

一旦落腳點計算出來之后,那么跨越高度已經算出來了,這樣的話我們會根據跨越的高度去選擇一個合適的動作進行越過障礙。

我們這里面也有一些在落腳點的時候有幾點要注意,比如說地形的斜度是不是允許你站上去,比如說你玩家的可戰略半徑,而且還有在整個過程中的動作銜接。剛才說的是一些有行走時候的正常時候的跨越,我們也存在一些特殊的情況。

比如說左邊這種。從在水里面游泳的時候跨越山脈,游泳的時候其實它落腳點其實相對于行走的途徑,落腳點其實是有一點點不一樣,但是主要的速度還是一樣的,主要是把路交給計算出來。

所以右邊因為他們就是說如果障礙的高度已經超過了我們配置最大的障礙高度,這時候我們可以通過攀爬跟攀爬翻越來越過這個障礙。

當然就是說因為玩法的關系,就是我們策劃會要求我玩法,在我觀察里面。這個地方我是不允許跨越的,你不能翻越那么我們,這個時候我們怎么處理呢? 

這點比較有意思的是傳統的用來制作,可以翻查翻閱的那些方法論,我們這個時候用反過來用作這個地方不能改,我們可以打標記可以開發自發性,還是挺有意思的。 

那么在這個地方有一些比較注意的點,就是說因為我們對地形沒有做任何的限制。就是美術培育任務。任何自己的發揮他們可以隨便做,所以難免會遇到很多奇葩的地形,就是那種稀奇古怪的地形。保證你們在計算過程保持了落腳點不準確。

我舉幾個例子,比如說有一些往前傾斜的地形,比如說有一些有凹槽的地形,還有什么浮空的地形很多,一有一個節點就是你的膠囊體的底部,不是在地表上的那種情況,都會導致你提升了落腳點不是那么準確。

這個時候我們就需要在這些檢測算法里面添加一些額外的檢測來避免這些問題,所以我們的例行檢測算法其實也是一個不斷的優化和更新過程,慢慢變得成熟的。 

我們沒有對地形做任何限制,你說可以自由發揮,我們也不打標記,我們不添加生發盒子,就是說我們通過進行檢查算法,就是玩家攀爬可以到的地方,玩家的觀察的速度,也就玩家的朝向完全是程序計算出來的。 

在游戲里面因為攀爬是一種脫離重量的那種表現,所以而且一旦你過于寬敞了,你就會掉下來。所以我們還定義了很多自定義的子模式,分別面對攀爬里面的不同情況。比如說攀爬里面就像左邊這種比如說各個方向上的自由攀爬。

比如說,說你攀爬跳躍,比如說攀爬回跳,比如說在下雨天的時候,你攀爬的時候打滑的狀態,還有一道攀爬的邊緣搬上去的那種狀態,就用那些自定的模式來處理。

在攀爬的時候,我們的角色會通過動作融合以及配合一些蒙太奇,讓攀爬的狀態更加的合理,更加的自然。

這邊假設是三組進入攀爬的情況,分別是行走進入攀爬、下方進入攀爬以及空中進入攀爬。其實我還漏了一個就是從從水中進入攀爬,你看他們三種情況是他們檢測攀爬的計算方式方式是都不一樣的,但是他們有個共同點我要找到。

我可以你攀爬的面,而現在我們講的是不是都是自動進行探討,我們在之前的一個版本就是在進入探討時,我們有過一個非常不好的體驗是什么? 

一般的運動模式,比如說行走人口,比如說游泳也好,其實他們主要是在X軸和Y軸水平方向上的,因為攀爬時和地形息息相關的,就是我攀爬使用要貼人不行的,一旦我拖了就行了,我就要掉下來了。

所以在X的方向,也就是說前后方向我們始終要往前貼著進行,這樣的話我們就可以把我們更多的注意力集中在力度和外部方向,就是說前后左右方向。這樣的話我們相當于把一個三個方向的計算已經變成了一個兩個方向計算。 

特別是右邊 o型地形看,我們的手其實是沿著地形這樣滑過來的,攀爬跳躍其實也是攀爬中的重要元素,我們把它跳躍可以跳的距離,包括你的速度都是作為參數可以拋出來,然后策劃可以配置,當然也可以可以在游戲中根據玩家的屬性動態去修改。

我們看它是這樣的,是玩家搖桿或者鍵盤輸入會有一個方向,我們會沿著這個方向做設計做檢測,就是鉆出攀爬狀到月的結束點,然后配合著蒙太奇從這邊進行開發策略,左邊是各個方向。然后中間是凹凸上的,我們會爬到奧地利轉向這一塊,然后右邊是坍塌到底會翻越上去。

IK INVERSE KINEMATICS,它就是用節點去驅動父節點,這個節點有兩個參數一個角度,但可能一個角度從他的角度單純最根本就是目標點。就是說我攀爬的時候我手要搭在哪兒。比如說我踩在機器上,我腳要放在哪兒。 

它計算的結果是無限度的,所以我們要通過將它這個參數來確定為理解,而避免出現那種反關節的不合理的情況,比如說我他都在我的手我的手關節都到我臉上,這種情況就可以通過這個方式來避免。

滑板,滑板是所有地形探索里面唯一一個涉及到海陸空。也就是說我們承載了移動組件里面的。我可以撥你和使用的三種動作模式來實現滑板。他需要注意的點就是說在這幾種模式切換的時候,我們要保證和動作和速度可以很平滑的過渡。

過去我們做這個的目的也是為了讓玩家在在操作的時候有一種很爽快的感覺,看下一個滑翔,因為我們人類是能夠飛的,所以在游戲里面可以飛?;枋且环N很好的體驗,所以我們就做了滑翔。

我們滑翔是通過重載移動組件里頭來做的,我們修改了優化了它的轉向,包括它的動力加速度來實現的滑翔。游泳,因此其實也有游泳模式,我們也添加了自己的一些東西,比如說加速游泳,你這邊應該有展示加速。

這種還有我們對它的轉向以后的優化,因為手機上的搖桿其實是有些特別的,所以我們在這一塊比較花心力的在手機上面操作手感,這方面我們花了一些精力去做優化。

現在我們看第二組物件探索,我們先看推箱子,我們實現了兩種推箱子,分別是模擬物理的和不模擬物理的,互相有各自的優缺點。我們先說模擬的,我有物理的推箱子在掉落,在碰撞,在翻滾的時候表現特別自然。效果特別好。

但是它有一個很好的界定,它的不可控力就好多。如果我的地形是不平的,如果我碰到的角度不一樣,如果或者說我碰到它的速度不一樣,有碰撞力度不一樣。它所出來的結果是完全不一樣的。

特別是在一些玩法的時候,比如說像左邊這種這是個機關,就是說我要把我這個箱子推到那個地方才能打開機關,但如果是用模擬物理的相似的話,可能我們推一次結果都不一樣,就完成不了。所以我們就做了第二種不模擬物理。

拋舉,我們這么使用我們制作的一個叫做很多的組件,凡是擁有各個組件的部件都可以進行操作,包括這種拋舉。我們在拋的時候其實就是把這個物件開始到一個峰值點上,然后配合著半生動的實現了拋起來,然后移動的效果。 

然后在拋的時候,我們會根據玩家輸入玩家的輸入規劃會有一個方向,我們會在那個方向給他一個公司的速度,這個時候我們會把物件往往開始,然后去模擬這樣的一些時間能超出。 

砍樹,樹體是有系統發出來的,當我們在揮刀砍的時候,刀就會和樹發生碰撞,這個時候會有一個樹被砍倒的效果,然后用被砍掉的樹樁的是切換出的來實現砍樹。如果恢復的話,隔一段時間我們會把樹樁那是再替換回來,我們樹的那就給刷回來了。

砍草,草和樹是有不同的,草沒有碰撞,因此我們實現的辦法是在一個AP表上做標記,我在AT上打個標記,然后在只不過一個砍草的效果。然后如果要恢復的好的時候,一定時間之后,我們把AT標題去掉,然后把草重新刷出來,把這樣實現彈出來。

物件探索我們也就說這么多,我們現在看看過山車。大家可以看一下,這個時候玩的會到探索的位置上。我們提供了好幾種視角,玩家可以根據你自己的喜好去選擇一種適合自己的視角。

其實最開始我們是沒有計劃坐過山車的,為什么會做這個呢?其實這個挺好玩的,就是有玩家跟我們說,我說我們到游樂場,我們只看到有那么個東西,為什么我不能玩?我們要玩過山車。包括旋轉木馬,這樣的話其實也是那時候做的,你看一下。而大家可以留一下,我們在坐旋轉木馬的時候,你看你可以留一下你那邊的過程其實也是在走的。 

旋轉木馬這個東西,包括后面還有說的摩天輪,過山車也好,其實他們實踐起來不難,但是他們給人玩玩的感受就非常好。也許作為男的也是就沒什么最好的好幼稚,但是這種玩法對于女性玩家和小孩子是非常有殺傷力的。

而且你跟你游戲能不能一起去做,宣傳門一起去玩,這可以更加游戲中的交互。其實過山車也好,旋轉木馬也好,摩天輪也好,他們有一個共同的特點,就是他們始終是沿著一個固定的軌跡。所以我們實現的原理其實也是一樣的。

然后我們會控制玩家的視角,我們會提供幾種視角,然后玩家對自己的喜好去選擇一個合適的視角,讓他在固定的軌跡上重復操作。最后我們要布置方案,就要保證特別是比如說過山車,我們要保證它的移動速度和節奏。這樣的話就會給玩家一種身臨其境的感覺。 

其實我們游戲里面還有很多其他的交互情況,我們做了很多,比如說我們做了抓手,就是我這個東西過去,然后一下拉過去,比如說磁場,比如說既有玩法和也有物件,比如說踢足球,比如說保齡球等等。

大家可以看到其實這邊這其實是個游樂場,我們現在已經做到了游樂場跟所有的游樂設施都可以交互的,跟你可以去玩,比如說抓娃娃,比如說打小飛機等等都是可以交互的。

我們希望這種方式實現的交互越來越多,用這種方式玩家有一種參與游戲開發的感覺,我們希望后面會越來越多的這樣的公司出現。所以今天我的任務就到這里,謝謝大家。

本文系作者蘇于涵授權競核發表,并經競核編輯,轉載請注明出處、作者和本文鏈接。
想和千萬競核用戶分享你的新奇觀點和發現,點擊這里投稿 。

注冊郵箱未驗證

我們已向下方郵箱發送了驗證郵件,請查收并按提示驗證您的郵箱。

如果您沒有收到郵件,請留意垃圾郵件箱。

更換郵箱

您當前使用的郵箱可能無法接收驗證郵件,建議您更換郵箱

賬號合并

經檢測,你是“鈦媒體”和“商業價值”的注冊用戶?,F在,我們對兩個產品因進行整合,需要您選擇一個賬號用來登錄。無論您選擇哪個賬號,兩個賬號的原有信息都會合并在一起。對于給您造成的不便,我們深感歉意。

最新91av免费在线,玩具酱pr社首页,美女新婚出轨胡子,国产一二三自拍,valcoxfritau,本庄优花视频二区久久久高清,91日韩在线欧美在线国产在线BT,国产高颜值百合情侣水声清晰,五号房AV 国产熟女另类视频在线播放| 99偷拍久| 制服丝袜美腿一区二区三区| 国产自拍影院| 高傲美人妻美谷朱里在线观看| 91夫妻原创自拍| 桃桃亚洲视频| pr社少女私人玩物窥视美厨娘| 国产自拍日韩无码| pr社萌兰酱| 啪啪的视频网站免费| 我的新哥哥韩国电影| 韩国主播在线观看全| 主播魅心80部全集| www.wuyeav| av网红大片在线看小草| 美女自慰黄色富二代国产| 极品网红主播大秀福利下载| 91激情在线视频观看| 牛牛影视妈妈的朋友| 情侣酒店探花性生活| 国产剧情误喝血千夏正在播放| 国产伊人在线| 国产网红福利免费视频下载| 国产原创理论主播搭讪野战在线播放| 国产AV无限看| 夜恋秀欧美18禁A片影院| 国产民工午夜福利影视大全| 台湾av演员金娜娜| 公馆美人妻在线播放| 日韩爆乳AV一二三区| 18色秀精国产欧美韩日一区| 羊城百合| 情侣拍拍自拍偷拍| 国产免费二区| 韩国主播影院在线观看视频| 果冻传媒 卢珊珊| 久久偷拍盗摄| 星空无限传媒堕落空姐| 中日韩快播网免费| 【国产Av佳作】Swag剧情演绎瑜伽美体老师羞羞学员| http://www.location-samoens-criou.com http://www.mesbarbies.net http://www.mailshakes.com http://www.anttikokkomaki.com http://www.mtmtop.com http://www.a-ttak.com