2010/11/14

建築物爆破:真實與CG之間的鴻溝


3DCG裡面要製作爆破牽涉到幾個幾個基本流程:首先,要把完整的模型弄破碎 (碎裂),再來就是控制這些碎裂的動態移動,還有就是隨之產生的煙塵。碎裂有很多方法,免費的有FractureVoronoi、付費的有Rayfire以及Cebas VolumeBreaker。動態的話則是可以用Particle Flow或是Thinking Particles,強調物理模擬的話可使用內建的Reactor或是付費的Rayfire。煙霧的話可使用FumeFX或是最新的Phoenix FD

這樣看起來似乎一切工具都具備,要做出寫實的建築物爆破沒有太大問題。然而, 實際上真的是這樣嗎?這篇文章裡面,我們講舉幾個實際建築物爆破的例子,分析它的爆破特徵,接著,跟CG做出來的爆破效果比較,看看問題的癥結點在哪邊!

真實的建築物, 是如何爆破的?
我們收集了幾個真實的建築物爆破影片 (截圖取自http://implosionworld.com/網站),分析的重點是碎裂的分佈方式、大小、還有它移動的方式: 我們可在這幾個建築物爆破裡面看到,其實,碎裂是很局部的。一棟建築物甚至可能是一整塊像自由落體般落下,建築體本身只有扭曲的效果卻沒有真正的碎片。有些是因為埋炸藥的方式,建築物變成三大塊落下。小碎片的產生也不是沒有,它會在大塊的建築體之間有很細小的碎片,這之間伴隨著煙塵。除了一開始的炸藥小爆炸外,幾乎都會在很短的時間內,由上往下產生地面煙塵,這些煙塵也會把那些小碎片的細節遮蔽著。

從格子狀的窗戶可看出來 除了建築物本身自屋頂有扭曲之外, 沒有明顯的大塊碎裂. 真正的小碎片反而被煙塵遮蔽

碎裂成三大塊的建築物, 斷點切面間產生了小碎片 夾帶著煙塵. 三大塊幾乎原封不動地沈入地面.

這個例子有比較多的碎片 但也是很局部, 帶有一點扭曲.

建築物只有一點扭曲, 自由落體, 然後就消失在厚重的煙霧當中

我們可以說,真實的建築物爆破,它的大塊碎片幾乎是很完好地落下!如果建築物斷裂成三段,它在落下的過程並不會被切成很平均的碎片,而是頂多帶點扭曲的方式掉在底下的大塊煙塵裡面。之前的知本金帥大飯店也是很好的例子,建築物沒有分裂成小碎片,表現的重點反而是一塊大的建築體往河的方向傾斜,掉落在河流裡激起似煙塵的大水花,把倒下所隨之產生的小碎片都遮蔽著了!

若是以此為參考, 倒塌的建築物可以沒有明顯碎裂, 也能有很好的擬真效果.

電腦動畫的爆破
接下來,我們看看電腦動畫處理的大樓倒塌,效果是如何。我們先看Rayfire的幾個範例,首先,這個例子建築物被預先切割成很細的碎片。當大樓倒塌時,這些碎片很平均的擴散開來,往地面塌陷。雖然Rayfire具有根據撞擊點來產生更係小的碎片的功能,但是跟真實的大樓爆破影片想比,你就會馬上發現到問題點: 碎片根本就沒有想像的多,而就算弄了超多的碎片,也不保證模擬效果能夠很擬真。原因就是碎片本來就沒有那麼多,大樓也不會像切碎機那樣被切的那樣平均!Rayfire影片的另外一個例子是天外飛來一個隕石,把大樓打成碎片,這跟實際的大樓爆破影片也有很大差距。可以跟911的世貿大樓相比,就知道在撞擊瞬間,根本就不會把大樓切成那樣多的小碎片。因此我們知道,就算是你設定Rayfire把你的建築3D模型切碎成三萬個碎片,也不能保證做出寫實的爆破感! 況且,切的越細會讓電腦效能急速下降。

Rayfire的問題是, 碎的太平均了!

天外飛來的隕石, 讓大樓整個脆掉! 好假!

真正的狀況應該是, 撞擊點很局部的碎裂 夾帶煙塵; 其餘部分幾乎是完整的.

另外一個例子是利用VolumeBreaker與ThinkingParticle製作的電影2012特效片段。在這個例子裡很顯然製作人員比較有概念,他們知道完全用物理模擬的爆破特效反而不能做出真實的效果。所以用的是混合的表現方式:一方面用物理來計算大面積的建築物塊;一方面當右邊的建築物倒塌到左邊時,用程序性的方式產生撞擊點的細小碎片。這樣,整體而言,建築物本身並沒有太過平均的被切割成片段,而撞擊點本身就能夠提供夠細緻的碎裂片段,這的確是比較高明的作法!

電影2012的特效算圖效果

電影2012特效, 可看出Thinking Particles在撞擊點局部產生碎裂與許多微小粒子. 這粒子可以不是物理的幾何體.

話說回來,Rayfire的策略也並非完全無用武之地。對於那種本身是凸面體(convex) 而不是像建築物那樣有複雜的凹面(concave)幾何構造,例如一座雕像、或是高速公路這類的物體,用Rayfire就能產生相當不錯的效果。尤其Rayfire可以讓碎片碎了再碎,因此對於局部的爆破表現,效果仍然可圈可點。

Rayfire用在雕像的爆破相當適合.

高速公路的模型通常是凸面體, 因此效果通常可以很逼真.

筆者曾經嘗試了幾種方法想要做出寫實的建築物爆破效果,但效果總是不滿意。 後來才發現原來問題根本就不是碎片的數量問題,而是它實際的爆破方式不是像現有的破碎軟體那樣是可以『按個紐』就能模擬出來的,中間是需要一些微調、一些程序性控制、一些粒子特效(而非幾何碎片的物理碰撞模擬)、甚至一些人為的keyframing的動作,才有可能做出令人信服的特效。而這中間煙霧對細節遮蔽,也會有大大加分的效果。提供給讀者分享。


筆者利用Rayfire製作的大樓倒塌效果. 效果不是很理想.

----本文完----

[相關文章]



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遊戲,這跟重複使用別人做的貼圖狀況並沒有不同阿!一旦美術習慣這樣的場景製作方式,他很難不去看到這樣做的優點。

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

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

[相關文章]


Recent Comments