2010/11/07

次世代場景設計---模組化(Modular Level)的觀念


古早時代的瑪莉兄弟, 模組化的設計隨處可見!
世代的遊戲角色設計, 這個名詞常常聽到. 次世代場景設計卻少被提及. 如果讀者有開過UDK的場景地圖 就會發現即便是像Unreal這樣的第一人稱射擊遊戲的場景 並不是多人玩家的MMO遊戲, 場景卻都還是大量使用模組化的設計概念 把場景模型對記憶體的損耗減小到最低!

Unreal Engine 3關卡的模組化設計與遊戲資產

模組化場景設計並不是創新的觀念, 早在任天堂時代, 硬體昂貴記憶體匱乏的狀況下, 模組化設計其實是關卡設計師不得不做的必要策略. 在這動不動就要求相片寫實的次世代遊戲時代裡 場景設計師面對的困難並沒有改變! 即便是記憶體有了4Gb, 上限還是存在. 對於MMO類型的遊戲, 難道就不該奉行"模組化"設計的教條嗎?


----以下為翻譯-----
標題:模組化的遊戲關卡與元件化的設計. 如何接受這個新觀念來製作高細節的遊戲關卡
作者:l e e p e r r y
編譯:Hammer Chen

未來終於到來!過去我們夢想的技術離我們越來越近了。如果你夠幸運的話,其實現在就能享受到這些科技,更多的polycount、更好的硬體設備,讓你製作出原本都沒期望的細節程度。整個製作環境變得更嚇人,都是隨著每次的顯卡進步, 使用者都來不及利用這些新硬體的優勢,常常會想,如果遊戲引擎能有這個功能 有多好,現在這個問題要改成『我們是否有能力去使用某某新增功能?』。而遊戲產業裡面的場景設計尤其是如此!

當我們無拘束地繪製細節,似乎無限的創意最重要,但是我們會做出夠穩定的品質細節嗎?能確保這個場景設容易修改,團隊要如何分工才能達到這個目標?這是一個很問困難的問題,即使是業界老手,也會被這樣的狀況所嚇到!

當我們仔細想想未來,看看過去遊戲界的作法,我們可能會想到過去以像素元件所堆砌出來的遊戲。就好像超任的遊戲世界般,可以歸納成模組化元件的概念,當今遊戲的細節還是利用材質來堆砌,但是可見的將來,未來的遊戲細節來源是模型的細節,這會是很大的挑戰,特別是競爭激烈的第一人稱射擊遊戲。因為這類遊戲是以畫面來取勝,但是,上述問題的解決之道不但能夠處理第一人稱類型的遊戲世界,其他類型的遊戲也是有用。

使用精心設計的模型,用一些技巧是達到場景細節的方法。本文將說明我們在Epic公司是怎樣達到場景模組化設計的,我們怎樣導入這個系統,這種工作流程的優點與限制。

你可能會問,怎樣達成?
模組化設計,一開始是因為希望不必製作每一個高細節的材質/模型就可以做出有細節的場景。要求傳統場景設計美術,要他們創建場景,利用簡單的工具就要他們做出藝術美感的細節,很不切實際!很多場景環境美術對於高階的建模軟體不是很熟,甚至就算知道怎樣使用軟體,也無法把2d概念圖正確地轉換成3D場景。時代已經不一樣了!

用模組"堆砌"出來的關卡

要傳統美術去設計遊戲關卡也不是很好,很容易產生好看的環境難以預測的遊戲場景。常常,美術專注他們的『偉大場景』時,很容易做出不好玩的遊戲場景與效能的犧牲。而就美術而言,他們如果幾個星期一直在做同一個場景,也會很快地失去熱情!

以上這些元件都能用來裝飾一面牆

另外一種場景工作流程是:有一個專門的人很快速地做出場景的大致形狀,然後再交由美術把這個場景美化完稿。這樣的流程還可以,但是如果再利用模組化設計的觀念,整個場景設計會變得更容易些。花好幾個月,替一個具有很多細節的場景進行建模與貼圖,最後可能還要大修,到最後,那位負責修場景的人,最後可能會希望重複使用先前場景元件。既然這樣,那為什麼不一開始的時候就用元件的方式製作場景?以下我們將介紹用模組化的觀念製作場景必須考慮的要點:

尺度
有智慧地規劃。模組化的場景不會像你想像般限制那麼大,事實上,模組可以由不同的尺度來實施,有些是沿著路徑的MORROWIND。這些建築物只是一片裝飾物,而整個城堡可以拆成好幾片牆,另外一個案子裡,則是專注在細節很多的場景,有很多小尺度的元件,這些元件可用來裝飾牆面,例如1a與ab 。

要怎樣開始製作建築的prefabs呢? 首先你必須要研究你專案的尺度是多大,這可以由你場景的大小來決定,如果你是要製作賽車場景,那你模型元件的尺度可能就是一塊一塊的街景:如果你是要讓玩家通過一個很狹小的太空艙道,那你場景的模組可能就要做到非常細節,而每個元件有很複雜的交錯!

Grids 格點
除了尺度以外 ,格點額外重要。格點的大小跟你的專案,或是有引擎有關。不論如何,一旦決定了用怎樣的格點,就固定用那樣的格點,甚至把格點再切割成更小的單位。如果你的系統設定一面牆是245個單位,那牆面的細節就可設定為128個單位或是64個單位…等等。

決定系統單位時也得考量遊戲機制,如果玩家是128個單位高,或是玩家往前跳可跳過64個單位,整個場景必須要考慮到這些數字。如果有這些概念再去設計場景,那設計就會進行的比較順利,而不是不斷地在嘗試錯誤中學習。

把動畫考慮進去!角色可能會與場景中的電腦互動。使用門把,或是坐在某模型上面,或是其他場景互動,考慮到這些細節讓你後面不必處理許多痛苦的修改。這裡最重要的參數就是樓梯的高度與深度,越早決定這些單位,把這些單位列印出來,儘快地交給其他場景團隊成員,在這邊花費個幾個小時,將會為你後面的製作生產避開頭痛的問題。

計畫
現在是設計師與美術討論遊戲場景裡面需要哪些元件的時候了。請列出關卡裡面關鍵的要素,還有能定義關卡的獨特元件,可能是飛彈砲塔 或是複雜的火山造型。

除了特殊元件外,另外,玩家會在場景中花較多時間的區域也很重要,決定出關鍵的模組後,就要計畫一般使用的模組。可以列出一組模組,這樣使用上會更彈性,例如走廊,或是一般的市區街道。

在計畫模組這方面困難的部份在於轉場。要由一個場景轉換到另外一個,定下風格就可以省去思考風格轉換之間的問題了,有些模組結構必須是封閉的,要想想這要怎樣達成。例如,如果你有條模組化的河流要流過地形,有個讓它成為封閉的好辦法,是設計出河流會流到閘門,或是以瀑布為終點,如果你要用走廊的元件搭出整棟大樓,記得要把走廊的頂部封住。

你可以讓場景概念美術從這時候開始設計場景,或者是更早一點讓場景概念設計就參與,而在模組清單列出來後再來設計概念。

先從最基本的開始
在這關鍵時刻,整個prefab元件都要仔細想一遍, 要讓元件能夠符合grid的單位。不要先做複雜的接合之處,先製作基本的元件,到時候可以利用這些產生變化性。如果你正在製作3d地形組,先做基本的tile 複製,然後修該出變化性,當這些不同的變化組做好以後,就把他們擺在一起。製作出轉場用的prefabs。當然要繼續下一步之前,還是要確認這是實際可以使用的。

定期地確認這些模組放在測試場景裡是可以用的,能夠完美地tile。有時候把這些元件組合在一起的時候,你會意外發現能組合出複雜的效果。

如果專案允許,請從多功能的角度來思考,洞穴的模組可能可以用在天花板。典型的太空艙通常不管轉向看起來都可以使用。

不要以為大片的結構就一定要使用單一模組,例如,就可以細分成走廊模組、牆壁模組、地板模組,整個接合起來就形成了完整個走廊。這樣可以讓設計師更具彈性!

這樣也可以讓你產生多種變化,如果你有很大的樓梯物件,你可以做短的、中型的、大的版本添加彈性,當然要確保材質也有話, 改變顏色可以然氣氛完全改變,加入變化的鏡像,即使是使用同樣的元件來構建,還是能夠產生完全不同的外觀。

事先構想你的模型是否必須要製作出背面,有些情況下必須要讓模型背面也要顯示出來。

元件的原點擺放在角落會比較方便

魔鏡,魔鏡!(模型鏡像)
設計師都會希望拿到有彈性的模組,用起來不會有問題的,要達到彈性的關鍵就是盡可能地在任何軸都能製作鏡像,所以在製作的時候牢記在心。

圓柱的結構在這方面十分重要,圓柱的邊最好能被四整除,雖然一開始這會看起來很怪,但是當你做了一個七邊的圓柱,試著旋轉九十度,你就知道為什麼要這樣做了。因為會出現縫隙,邊界無法對齊,很快的變得團糟,如果是8或是16邊的話,你就可以輕易地旋轉、鏡像,也不必擔心出現接合的縫隙了。

有了對稱的觀念後,你可能會希望所有元件都能鏡像,但是除了垂直鏡像外,還有水平鏡像。接著你可製作中介的元件,讓整個元件堆砌的更加彈性。

元件的軸心放在中心, 縮放或旋轉的時候會出現問題

原點
你可能會製作符合格點的prefab元件,但是如果一開始就沒有設定好原點,組合起來的東西可能也不在原點上,所以在製作的同時就要注意原點的問題。所以在製作平面的時候不要把原點擺放在中心,而要把原點放在平面的角角,這樣當你縮放prefab時,可以確保整個元件還能夠符合grid的單位。如果原點在中心的話 旋轉的時候也很難對齊grid。

模組化的邊界, 能夠提供關卡的變化性

別忘了配件
下一步則是要做出能夠打斷重複性的元件,例如城堡的走廊,如果能放幾的雕像 或是從牆掉下來的石頭,這樣就能打斷重複感了!不需要花太大力氣就能欺騙玩家的視覺 讓他感覺不到走廊的重複性。

另外一個好技巧就是把打破重複性的物件,再拆成好幾個模組,例如雕像,你可以拆解成不同的下半部、腰部、還有頭,這樣你排列組合這些元件,就可以產生非常不同的走廊了!
即使是很簡單的prefab 也能把左圖的基本場景轉變成複雜又寫實的場景(右圖)

你還可以更近一步地利用配件,你的場景可能很吻合,但是如果你可以另外製作可以擋住縫隙的物件也很不錯。例如,你製作出很自然的岩石牆的元件,但是元件之間卻有縫隙,如果你有做出專門遮擋縫隙的元件,例如生鏽的鐵桿,或是植物,就可以用把縫隙隱藏起來了。

特殊元件
一旦你把基本元件做好之後,下一步就是製作出具有設計感的元件了。很重要是這步一定是要做完基本元件後才進行,因為這樣你才能考慮由基本元件轉換到特殊元件之間要怎樣去思考。

在製作配件的時候也要考慮配件是否可以分割成更細的元件,例如太空艙的走道你可以分割成區域,可慮到配件是否可幫助擴張走廊呢。

建構出整個遊戲場景
之前辛苦製作元件總算有了回報!這裡有些技巧與各位分享。首先,腦海裡面要先有幾個場景版本,自己可以先拼裝元件看看,如果有需要還可以回去前個步驟製作更多元件。

如果原本元件的功能是這樣,但是你用在不同的地方那也沒關係,只要這些元件可以接合在一起就好了,如果你完全死板地使用這些元件,很容易讓玩家看出來會讓他不想玩這個場景。某些場景很容易就做出彈性設計,複雜的科幻太空艙,你可以添加上一個古老的圓柱,這樣可子大大增添特色。

混合地使用每個元件,你也可以把元件當做整個場景的關鍵元素,例如你可以用一片木板製作出一個破舊的走道。

最後,如果你的遊戲引擎支援投影的材質或是光源,請善用這個功能,打破場景的重複性。

思考優點
首先也是最重要的是,用元件來製作場景能夠做出很自由地設計,更新場景也很方便,不喜歡電視機的材質嗎?馬上改,馬上就更新,而且場景是用元件建構的, 不太需要回去跟原始的美術討論了,自己就可以改,或是場景測試員需要讓場景添加一個新的出口,使用模組式的場景建構方式,這不是太大問題。

除了算圖問題外,記憶體一向式重要因素必須考慮的,用元件來建構場景讓場景中的物件可以都是相同的instance。一個複雜的牆可能是由好幾個元件組成,可以有最小的記憶體損耗,即使是很幅雜的場景也可能只用到很少的記憶體。

另外一個重要考量是一致性,如果整個美術場景團隊很多人,這個優勢更明顯,用prefab建構的話,即使是巨大的場景,想要維持整體的風格也不是問題。如果場景是用整大一塊幾合體構成的,那維持一致風格就不是那麼容易了。

我們總是希望場景裡面有越多玩家越好,模組化的場景設計也對場景的LOD製作很有幫助。你可以針對不同的遊戲機做出不同LOD 除此之外,模組化設計也能讓美術專注於他們的優勢,場景設計師可以專注於場景的好玩性,而不需要擔心場景的細節表現。有了模組化設計,他可以專注於整個場景的配置,而不太需要考慮到美術面的東西。

最後,模組化場景設計對於如果你要釋出遊戲場景編輯器時,也會有幫助。例如MORROWIND、NEVERWINTER NIGHTS、the WARCRAFT…等遊戲都是模組化的場景,讓玩家可以輕易地用編輯器客製化,這樣對於整個遊戲社群的成長也會很有幫助。

模組化場景設計的缺點與限制
有些遊戲開發者可能看到模組化這個字就會恐懼,一開始時聽到這個詞時就會聯想到古早那種遊戲畫面。

事實上模組化的場景本來就會有很多限制,跟你完全做出不同幾合體做出的場景比較起來的話。但是對大部分的遊戲美術,隨意的製作幾合體根本就不可行,因為模組化設計對於修補縫隙比隨意製作的模型更容易,根據你的遊戲特性你可以決定的場景要模組化到怎樣的程度 。

如果你對模組化設計很恐慌,可以先試著少量使用prefabs。
有些美術對於別人做出來的元件會很不習慣用,但是最後他們會習慣,因為他們會發現不用模組化的遊戲設計就不可能製作出頂級的AAA遊戲,這跟重複使用別人做的貼圖狀況並沒有不同阿!一旦美術習慣這樣的場景製作方式,他很難不去看到這樣做的優點。

未來
未來我們會遇到什麼事情呢?搞不好模組化的場景設計最後會演變成完全的程序化的遊戲世界。有些人認為這是不可避免的方向,有些人卻不希望朝這個方向走,不論你喜不喜歡,你現在製作的遊戲場景某些程度上一定是用模組在拼湊了! 如果你用了重複性的貼圖,如果你用了標準的階梯高度, 如果你用了重複性的地形,那你早就是用到了模組化設計的概念了阿!你需要不過是把這樣的觀念發揚光大罷了!

----翻譯完畢----

[相關文章]


1 comment:

Anonymous said...

感谢作者辛苦的翻译。这篇文章我曾经费时读过英文原版的,但理解的非常少,现在读了中文版的,了解多了许多。
只是对于怎么实现“模块化”还是缺少经验。