激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

UE教程:打造精致《重生邊緣》野外場景

發(fā)布時(shí)間:2023-12-19 15:23:11 瀏覽量:230次

以下文章來源于NExT Studios ,作者引擎全開的


上篇文章中,我們從地形、崖壁、植被、河流、道路五個(gè)方面介紹了NExT Studios 在使用虛幻引擎4開發(fā)《重生邊緣》的過程中,過程化內(nèi)容生成的一些嘗試。


本篇將針對工具加入場景制作后,如何解決新的工具在實(shí)際工作中遇到的各種問題,以及分享一些試驗(yàn)性工作。


我是進(jìn)度條


過程化內(nèi)容生成中容易遇到哪些流程問題?


比如生成的效果達(dá)不到美術(shù)的要求;工具的使用門檻太高,他們不想用;工具不夠穩(wěn)定,他們覺得折騰的成本太高;或者涉及多人協(xié)作的問題,這個(gè)事情到底是程序員做、TA做、還是關(guān)卡美術(shù)做?多個(gè)關(guān)卡美術(shù)的協(xié)作需求如何解決?等等。只有解決了這些問題才算是一個(gè)合格可用的工具鏈。


基于前面的分享,相信大家也能看出,我們的目的是:并不追求全地圖自動(dòng)化生成,而是根據(jù)需求做一些定制,提高制作效率。


過程化內(nèi)容生成管線


自動(dòng)生成內(nèi)容和人工編輯內(nèi)容之間的沖突問題如何解決?生成內(nèi)容之間的關(guān)卡切分問題如何考慮?不同子關(guān)卡的生成限制如何保證結(jié)果的穩(wěn)定性?


我們總結(jié)出來兩個(gè)原則,第一是生成的內(nèi)容不能覆蓋人工編輯的內(nèi)容。第二是各個(gè)子關(guān)卡之間盡量地獨(dú)立地編輯和生成。就像 Unreal 大世界里的地圖,通常會(huì)編輯成多個(gè)子關(guān)卡,方便多個(gè)美術(shù)協(xié)作,然而對于過程化生成的內(nèi)容,也需要去做這樣的支持。比如可以對world composite做一個(gè)支持,支持地形自動(dòng)切分到子關(guān)卡。


自動(dòng)切分到子關(guān)卡


關(guān)于生成的內(nèi)容(大量貼花、崖壁、河流等)之間,也都需要切到子關(guān)卡。只有切分了子關(guān)卡,才能做獨(dú)立地剔除和 level streaming,同時(shí)也能支持不同的人來編輯和生成不同的子關(guān)卡。


對于不同的子關(guān)卡,我們生成的限制是需要保證結(jié)果的穩(wěn)定性:不管是多塊一起計(jì)算出來的結(jié)果,還是單塊單獨(dú)計(jì)算出來的結(jié)果,應(yīng)該是一致的。這樣才能夠保證按照子關(guān)卡的方式去工作。


地形和建筑的穩(wěn)定性如何解決?


對于地形來說,我們沒辦法很好地解決。因?yàn)殛P(guān)卡與關(guān)卡之間會(huì)有一道必然的交界,如果只更新了其中的一塊,另外一塊就接不上了。


雖然可以對整個(gè)地形做整體的侵蝕或美化,做一次全量更新,但這對于整個(gè)開發(fā)來說是非常不友好的行為,因?yàn)樾枰獏f(xié)調(diào)所有人,把所有的關(guān)卡文件都解鎖。我覺得更實(shí)用的做法是做局部的更新,比如只更新刷過mask的區(qū)域。


局部更新mask


對于有些建筑區(qū)域,比如某處建了一棟房子,要求地基是平的,我們不想在生成地形的時(shí)候改變地表,很可能房子就懸空了。我們可以使用volume把區(qū)域框起來,跳過這個(gè)區(qū)域的侵蝕生成。


volume排除侵蝕區(qū)域


跟美術(shù)編輯的沖突問題如何解決?


有時(shí)候過程化生成的內(nèi)容跟美術(shù)編輯的內(nèi)容在同一個(gè)數(shù)據(jù)集里面,就會(huì)產(chǎn)生沖突問題。到底用誰的呢?Unreal提供了Edit Layer的功能,它跟Photoshop的圖層一樣,可以把生成的單獨(dú)放一層,人工編輯的單獨(dú)放一層,甚至還可以開更多的層,這樣就可以混合人工編輯和我們生成的數(shù)據(jù),得到想要的效果。但有的時(shí)候可能并不想要混合效果,而想要替換效果(比如說河流河道可以替換掉原有的地形)。我們又開發(fā)了一個(gè)Edit Layer的覆蓋混合模式,用來支持這樣的需求,同時(shí)也擴(kuò)展了Unreal權(quán)重繪制的工具,用來繪制mask,支持這種覆蓋混合和很多層的表現(xiàn)。


Edit Layer覆蓋混合模式


還有一種沖突比較常見,比如說美術(shù)在某處放棵樹,只是用來做裝飾的,但是我們生成植被的時(shí)候很可能就把這棵樹給生成沒了,那這不是他們想看到的。所以我們針對生成的樹都會(huì)打標(biāo)記,每個(gè)instance上都會(huì)有一個(gè)特殊的屬性,這樣就能夠區(qū)分出來到底哪些樹是我們生成的,哪些樹是美術(shù)編輯的。再重新生成的時(shí)候,就可以把原來生成的樹全部刪掉,做一次全量更新,但美術(shù)擺的樹并不會(huì)被刪掉,而且也可以選擇避開他們。


很容易樹沒了


數(shù)據(jù)導(dǎo)入導(dǎo)出的問題如何處理?


我們沿用了Unreal Landscape Spline曲線生成,這些數(shù)據(jù)需要導(dǎo)出到Houdini當(dāng)中進(jìn)行運(yùn)算,其實(shí)這也是為編輯的操作習(xí)慣而做的妥協(xié),也避免了再開發(fā)全新的一套曲線編輯工具。


我們把Unreal Landscape Spline重新做了算法量化,導(dǎo)出成一個(gè) JSON,然后在Houdini當(dāng)中提取這些關(guān)鍵點(diǎn)做重建,這樣就可以基于這條曲線去做算法實(shí)現(xiàn)。我們也加了各種各樣的自定義屬性,比如說曲線的類型,因?yàn)樗鼤?huì)有不同的內(nèi)容(路、護(hù)欄、河等),他們是屬于不同曲線的。曲線的寬度還有優(yōu)先級(jí)也都是通過這種方式添加到 JSON 文件里。


針對生成的內(nèi)容。我們也做了一個(gè)簡單的熱力圖掃描工具,可以選擇任意一個(gè)Unreal當(dāng)中的某個(gè)stat,比如針對面數(shù)去做統(tǒng)計(jì),生成可視化的表現(xiàn),方便美術(shù)在生成完或者關(guān)卡編輯完后去做性能自查。


熱力圖性能分析面板


一些試驗(yàn)性的探索


如果只是針對之前提的那幾個(gè)功能的話,可能整個(gè)工作流是大同小異的,但是每個(gè)項(xiàng)目其實(shí)需求都不一樣。比如說有的項(xiàng)目完全不用Houdini,生成算法全在Unreal里程序員自己實(shí)現(xiàn)。還有的項(xiàng)目可能因?yàn)椴幌矚g數(shù)據(jù)互相導(dǎo)來導(dǎo)去,選擇整個(gè)的關(guān)卡布局是在Houdini當(dāng)中進(jìn)行制作,然后再導(dǎo)入U(xiǎn)nreal,這個(gè)時(shí)候就不能改了。還有的像我們一樣,頻繁導(dǎo)入導(dǎo)出,需要很多數(shù)據(jù)交換,那我們需要程序員不斷地處理這些特殊的需求。


所以我們在把這種工具推廣到不同項(xiàng)目的時(shí)候,就需要重構(gòu)整個(gè)管線。我們支持了藍(lán)圖節(jié)點(diǎn)編輯,讓原來Houdini的HDA文件生成一個(gè)藍(lán)圖的異步節(jié)點(diǎn),其所需要的數(shù)據(jù)準(zhǔn)備是通過藍(lán)圖來進(jìn)行的(包括數(shù)據(jù)輸出的后處理),這樣就具備了非常高的靈活性,能滿足很多奇奇怪怪的需求。


可定制的生成流程


我們生成完,可以給它打個(gè) tag 或者設(shè)置一些類似 virtual texture的屬性,然后生成一個(gè)actor,甚至改變它的材質(zhì)。在這套機(jī)制下,解放了程序員的生產(chǎn)力,不用他們專門開發(fā)特性。因?yàn)橛械臅r(shí)候我發(fā)現(xiàn)不是這些功能實(shí)現(xiàn)不了,而是美術(shù)等不了,或者用戶等不了,反復(fù)折騰的時(shí)候他們就不想用了。


另外,我們把數(shù)據(jù)的輸入輸出做了抽象,比如抽象成圖,或者曲線,或是一些點(diǎn),然后把這些數(shù)據(jù)做了抽象之后,甚至可以通過網(wǎng)絡(luò)來傳輸這些數(shù)據(jù),把生成的服務(wù)放到一臺(tái)更強(qiáng)健的GPU工作站上。而且把數(shù)據(jù)做完抽象之后,也不限于只用Houdini來做,可以搭建一些自己的服務(wù),用 Maya或Blender也都可以,因?yàn)閿?shù)據(jù)的交換變得非常簡單。


生成服務(wù)器


我們也做了些機(jī)器學(xué)習(xí)的一些嘗試,比如說基于GAN算法的現(xiàn)實(shí)世界生成,或者是地表地形的風(fēng)格化遷移等。還有一個(gè)很常見的問題是在用Houdini做這些工作的時(shí)候,數(shù)據(jù)的導(dǎo)入導(dǎo)出和計(jì)算都需要非常長的等待,有些團(tuán)隊(duì)會(huì)傾向于在引擎中自己實(shí)現(xiàn)生成算法,我們在這方面也做了一些簡單的嘗試,參考了《地平線:零之曙光》(Horizon Zero Dawn)的做法,使用GPU加速的方式做地表地形的生成和植被的分布。


應(yīng)用探索


過程化內(nèi)容生成的技術(shù)除了應(yīng)用在游戲開發(fā)中,還有其他應(yīng)用場景。例如NExT跟新華社合作的數(shù)字航天員小諍的火星視頻中,我們使用了過程化內(nèi)容生成的技術(shù)模擬火星的地貌。UE5的Nanite可以在不限制三角形數(shù)量的情況下做大量的幾何細(xì)節(jié),這應(yīng)該也是后續(xù)游戲制作的趨勢之一。

熱門課程推薦

熱門資訊

請綁定手機(jī)號(hào)

x

同學(xué)您好!

您已成功報(bào)名0元試學(xué)活動(dòng),老師會(huì)在第一時(shí)間與您取得聯(lián)系,請保持電話暢通!
確定