2015/06/19

thinkingParticles tips and tricks 技巧補遺(一)

文 / Hammer Chen

這裡整理一些tP零碎但又重要的技巧。


這邊如果你沒有添加Particle Age的條件,也就是只在Born 的時候套用Velocity  那粒子的Velocity 會override Gravity的效果(如果之間有加gravity的重力), 這樣粒子就會以直線前進。


這樣接的意思是每一個粒子的都是介於Value 1與Value 2之間的隨機速度 (Speed)


這邊Float填入的是78,表示隨機的範圍是由-78~78之間的數值,因為Value1前面有加了一個InvertOperator 。



啟動一個事件同時關閉一個事件透過Invert

Life Span = 壽命
Age = 年齡
Age / "Life Span" 得到的數值隨著時間會越來越大,所以速度也會越來越大。(初速度為零)

 粒子隨著時間越變越大。這裡Age / Life Span,假設壽命為50,那麼隨著時間 0/50,1/50...50/50這樣的序列,也就是數值越來越大,逼近於1,最後的數值剛好等於1。輸出的數直接到ValueToTime,

將0-1的數值轉換成0-100的time,time的意思是frame,我們對Size設key由0-100,這樣就可以產生粒子漸漸變大的效果。


當粒子在z軸座標為0的位置 (相當於地板) 就會被殺掉。Threshold設為-9999 , 0 勾選inside 意思是z軸數值在-9999~0之間,就啟動Particle Die


兩個條件(InMesh與Light)同時成立,才會丟到下一個群組

DirectionPosion的差異 :
如果接到Direction的話,所有粒子都是往同一個方向 (Node的方向)
如果是接到Postion的話所有的粒子都會往單一個點移動 (Node的那個點)


Position Follow 可讓粒子跟隨物件。如果把模式改為Spring 設定Laziness 高一點就會有延遲的效果 。


沿著路徑移動 Speed直接控制粒子速度 ,當粒子走到末端就會停住所以你要增加其他條件。對速度增加一個Threshold控制當速度到達0以下就把它殺掉 。





Node有Particle Shape可吃到粒子形狀的資訊,所以新生成的粒子可以自前一個粒子的形狀表面發射。


VolumeBreak op的output只有Born Particle,可使用Particle Data Helper (綠色的),可以暴露出Particle Size的資料。 Particle Data還有另外一個是橙色,但功能不同。


透過Particle Data (橘色)可以給予粒子Life Span壽命的資訊



點擊右鍵Show in track view 可顯示出Float的keyframe曲線 


在官方檔案中surface_follow2_m9.max 可做出簡易的群體動畫效果。其中Rolling  op可以做出物件在表面移動時,同時有滾動的效果。



在官方檔案中radial_cylinder force.max 可僅利用Force就做出螺旋力場的效果,透過Radial Cylinder的選項。


如果希望粒子隨著時間漸漸消失,可接上Material Time,其中套用的材質對Opacity設key然後在Material Time  Slot中填入keyframe的結束點,本例為20


自表面生長的另一種串法


範例檔SurfaceDeformFollowshakeOffMax9.max 做出甩掉羽毛。在Follow上可以讓羽毛follow身體的表面,然後偵測其Velocity,當達到特定範圍就丟到另一個群組。


讓起始的instance geometry都旋轉方向都隨機 ,是不是一直旋轉 。透過接上Particle AgeBorn來達成 。



自中心朝外發射 ,利用Distance產生方向 


當粒子到達某個速度 就定速 ,由Float控制。

No comments: