2015/09/10

用thinkingParticles 6模擬飛起的紙張


文 / Hammer Chen

本教學將介紹如何利用thinkingParticles 6模擬出紙張被風吹起的效果,效果是仿效 Adrien Rollet先生的"Houdini - Papers Cloth Simulation"的效果。請注意本教學需要有基本的thinkingParticles知識,不適合完全初學者。

English version of this tutorial please click HERE.



1. 首先確認場景單位是否適合,這裡我設定顯示單位為公分。

2. 場景設置:一個平面作為紙張,一個平面作為地板,一個平面作為分布紙張的,一個移動的球(用來選取地面的紙張)

請注意不要讓兩個平面完全重疊,分布紙張的那個平面往上移一點,本例我往上移了1.157cm

紙張的尺寸為5cm x 5cm。紙張的平面可套用兩個Bend修改器,可讓紙張稍微翹起來比較自然

3. 在場景中創建一個thinkingParticles物件後,產生兩個群組:paper與inmesh

4. 產生第一組Dynamic Set: 利用Position Born產生粒子,丟到paper的群組當中。 Node選取之前建立用來分布紙張的那個平面。

Set Alignmnet可以幫助紙張在平面上隨機選轉分布

5. 利用InMesh來選取地面的紙張,當球體移動過平面,只要紙張在球體裡面就會被選中,丟到inmesh群組中。 Node選取場景中那個移動的球。

5. 讓選中的紙張受到重力所影響。

6. 選中的紙張(inmesh群組)接到BTSoftBody。
記得將Margin設定大於零,否則紙張可能會在地面上亂跳。

Spin可讓選中的紙張瞬間旋轉,可以增加模擬的寫實度。

Velocity往上,讓紙張往上方吹。

Spin與Velocity這兩個外力都是在粒子進入inmesh的瞬間 (Enter Group)才作用的。所以這兩個是瞬間力,並不是持續施加的力。

7. 接上BulletPhysics,記得將Margin設定為0,否則紙張可能會亂跳

8. 如果你希望模擬更穩定一點,可將Master Dynamic的Sample Per Second設定高一點。 完成!

[延伸閱讀]
thinkingParticles book新書上市

Tutorial: floating papers with thinkingParticles
Post a Comment