[前言]

 

因為下面這篇文章↓,以及老師要我教實驗室學弟妹一些東西,索性就試著寫寫看教學文,順便也當作教學前的資料準備。

 

分享 "技術" 的三大迷思!

http://www.unityin.com/2012/08/blog-post.html



我本身並沒有很厲害,對於VFX界來說,我只是準備踏出新手村的新手,而且英文能力不佳,看過的外文文獻並不多,觀念並不是非常正確。

可能路邊哥布林等級的怪物(專案),就可以讓我措手不及。

因此如果看到我哪裡寫得不對,還請多多指教。

 

另外,因為這系列教學的對象,是設定給學過3D軟體,但完全沒有粒子特效基礎的大學學生,因此我會試著以比較白話,易懂的方式進行解說。

這裡盡量不提背後原理,不提計算流體力學。如果想要找比較深度的教學,可以到其他地方找找看。

相信GOOGLE上能找到的好教學非常多。如果對自己英文能力有所擔心,可以到對岸的論壇找尋,或是直接到火星時代觀看舊版RealFlow的教學。

 

最後,由於我是MAX的使用者,所以MAYA的部分可能沒辦法有太多回應。敬請見諒

 

===============================

這篇教學的ppt,可以從這邊下載。 (其實直接看本文會比較好了解,只是裡面的圖片會比較大張)

http://www19.zippyshare.com/v/33867169/file.html


這篇教學,我們將學到

(上)

 —RealFlow是什麼?

 

—粒子與物理特效的基礎觀念
 
 
(下)
—RealFlow基本介面

 

—RealFlow基本工作流程

 

—RealFlow倒水動畫


====================

[事前的準備]

我們使用到的軟體是RealFlow 2012  64bit (ver.6.02),如果版本不是6.02或是以上,建議使用RealFlow5.0,因為會有一些bug造成非常容易死當的狀況。

如果電腦不是64bit的朋友,請安裝32bit,不過可能會有一些功能不支援。

至於軟體怎麼取得,請發揮你們的搜尋能力,我就不多說了。

真的找不到,可以去官方網站找試用版。

 

另外在安裝的同時,也要注意安裝的資料夾內有沒有plugin的安裝黨,根據你自己擅長的3D一起裝好他,如果是較舊版的RealFlow,可能不會一起包進去,這點就要注意了。

=====================

[正文]

 

 

首先,我們要先知道,我今天所教的RealFlow是什麼。


RealFlow是一款築構在光滑粒子流體力學(Smoothed Particle Hydrodynamics,簡稱SPH法)的流體模擬套裝軟體。

他的官方網站是http://www.realflow.com/realflow.php

(RealFlow現在最新的版本是2012,過陣子就會會推出2013,不過我最喜歡5.0的水腦圖)


RealFlow所模擬的結果,可以與現今常見的3D軟體進行連結,將之進行渲染,完成漂亮的流體特效。

因此常常被用在廣告與電影之中。

http://youtu.be/KoEbwZq2ErU

 

http://youtu.be/VKIQP8uKuPk


 

從上面兩段影片,我們不難發現,RealFlow雖說是流體模擬,但大部分使用的案例,用來模擬液體居多,鮮少模擬氣體,或是其他密度相近的流體交融。

大都是模擬密度差異較大的流體活動,如空氣與水。(不過RealFlow直接忽略了空氣的參數,當作是已經散布在整個場景之中了,所以我們只要做好水的部分就好)

 這和SPH法的特性有關,往後有機會我會再慢慢和各位說明。只要先知道RealFlow要模擬氣體會比較困難就好。

 

真的有興趣的話,可以來到這邊了解基本觀念

http://qqww2334.blog.163.com/blog/static/1203658220126279252433/


現在我們知道RealFlow是什麼了,那接下來要說的是學習RealFlow之前要先知道的一些基本觀念

 

[粒子特效製作概念]

粒子,原本是用來計算天文物理的粒子。隨著計算硬體的進步,開始被拿來製作特效,呈現一些非穩定的物體效果。

而粒子系統最重要的三個要素就是:發射器、力場以及碰撞物。

以下以RealFlow的視角去說明這三要素


發射器

發射器的概念,就像是水龍頭的出水口,所有的粒子都從這誕生,改變了出水口的形狀,便能輕易改變粒子產生的狀況。

200907101515364910  



力場

只要牽扯到物理模擬,都免不了力場這一環。簡單的說,力場是用來控制場面的魔法。只要能掌握住力場的特性,各種千奇百怪的流體特效,都有可能做出來。

而最常見的力場為重力,風力以及磁力。這些是物理性力場。

 再來就是刪除系的。在模擬的過程中,一定不會100%如意,甚至會有一些溢出的問題。那麼就要根據不同的條件刪除不需要的粒子。比起不斷調整參數來達到心中效果,刪掉多餘的地方,或許會快上許多。

 最後就是特殊系的力場,這類型的力場都是用來控制粒子的,例如Morph,可以將粒子群聚出來的形狀變成我們所指定的形狀。(例如RealFlow的腦袋Logo)或是經過特殊的力場後,可以改變粒子的特性。

 

碰撞物

有了碰撞物,和流水與物體產生作用,才能激起漂亮的水花。

而RealFlow本身並不具有複雜的建模功能,也因此這些模型往往是從外部匯入的。

由於模型的面數會直接影響到模擬的時間,也因此在MAX/MAYA中建模時,如果模型面數太多,要額外製作一個面數較少的模擬用模型Dummy。

減面的方法很多,在此就不多說了。

 

 

 

[物理動畫模擬製作觀念]

在正式製作物理特效動畫之前,有一個功課便是去蒐集資料,研究現實中該現象是如何產生的,這些現象是對應軟體中的那些參數。如果能掌握這些事情,那麼便能輕易做出類似的效果。

舉一個在做火焰特效時的經典案例。

一個蘑菇狀的爆炸,可以拆成三階段的物理現象。

爆炸這個現象是氣體體積急速增加所致,在這瞬間,溫度也會是最高,因此像是氣流上升的速度等,都會是最高。

然後趨緩,並且燃料急速減少,並產生大量濃煙。

最後燃料燒盡。

也因此我們可以知道製作一個爆破的特效,—擴張、溫度、燃料以及濃煙,這四個參數是最重要的。

 

 我們針對這些參數進行設定,在這些參數上重現爆炸時,—激增、趨緩、熄滅的變化。
如此就可以做出效果的基本雛形,然後我們在根據需求,進行微調整,完成最終的效果。
 
 
 
 
尺度 
有時候,我們已經遵循了物理原理進行製作了,為何模擬的結果還是和期待的有著微妙的差距呢??
這時候,往往就是尺度出了問題。
 
 
以往我們做3D建模時,可能根本不會注意到這個參數。頂多是匯入其他專案時,發現模型大小不同,做個縮放就沒事了。(當然這是要在綁骨架之前)
但對於物理模擬,尺度就是非常重要的設定了。
舉個例來說,假設模擬的結果,A物體要在世界中移動3公尺,但是場景尺度的設定卻是以公里為單位。那麼呈現出來的結果,就很有可能是小到你看不到。
但如果尺度設定是公分。那你可能在下一瞬間就看不到A物體了,因為他已經像子彈一樣飛出去了。
甚至是有一些物理現象,是尺度大的一定程度後才會產生的。
例如大海中的白浪泡沫,這要在寶特瓶尺度的大小之中,不管如何搖晃都不會產生的。
 
 
RealFlow中的每一網格是1平方公尺。
雖然在 RealFlow中可以做設定,但是似乎會有一些小BUG存在,建議還是在建模的3D軟體裡進行尺度設定。
 
[流體動畫製作概念]

廣義來說,流體除了液體還包含了氣體,範圍算是相當廣。
所以要要求一種流體模擬軟體就囊括所有範圍,是有些困難的。
以RealFlow來說,他是築構在粒子法之上,所以在製作墨水滴入水中並暈開,這種密度相近的流體交融效果是有難度的。
同樣的,在製作氣體的模擬時,也會碰上一些困難。
真的要硬做的話是可以做的,但是有一定難度與不擬真度。
建議選擇其他的模擬軟體。(如FumeFX)
 
理由牽扯到計算流體力學(CFD)。有機會在試著寫寫看。
只需要記得,RealFlow最適合的是製作密度相異甚大的流體動畫即可。
 


另外,在大部分的流體動畫,為了不要進行多餘的運算,都會需要規畫模擬範圍,而在RealFlow的部分系統中,也是需要規劃。
因為流體僅會在這範圍中流動,甚至把範圍的邊緣當作牆壁來碰撞,所以理論上這範圍應該要越大越好。
但是計算硬體的能力是有限的,所以如何規劃也是門學問,如果能夠利用力場控制並預測流體的方向,便能有效率的規劃範圍。
 
 
最後,不管任何流體模擬軟體,大都會有個共同的問題。
那就是儲存流體狀態的序列檔,數量很多,而且很大,(在尺度、範圍規劃或是其他參數設定錯誤時,甚至可能會產生單一檔案高達上G大小的窘境)
在檔案存取以及搬移資料的時候,會花很大量的時間。
因此如果你有SSD的話,建議把專案放在裡面來做。
 
如果沒有,請先做好心理準備。(笑)
 
 
(09/11)
因為它們是序列檔的方式去記錄粒子檔案。所以模擬時,新的結果就會直接覆蓋舊有的結果
到時舊版粒子檔除了重新模擬外,就無法救回來了。
 
 
所以想要多嘗試各種參數的效果,又不想覆蓋現有效果的話,記得多備份一份。(那就回到剛剛說的檔案太大的問題)
或是將該元件複製,換個名字再模擬,名字不同才不會覆蓋到檔案。
 
下篇連結
http://tommy20015.pixnet.net/blog/post/46760488/ 
arrow
arrow
    全站熱搜

    修奇 發表在 痞客邦 留言(2) 人氣()