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類型的遊戲, 難道就不該奉行"模組化"設計的教條嗎?