下麵來介紹流程。首先,我們創建一個plane,點擊 Create / Polygon Primitives / Plane box,開啟 polygon plane options 窗口,設置如圖二所示:我這裏隻是為了方便,大家可以嚐試不同的數值,但有一點要說明的是,下一步所要創建粒子的個數是與你所建立的這個平麵的頂點數是一致的。好的,我們開啟Poly Count 顯示,我們可以看到其頂點個數,我這裏剛好是100。
[page]
現在建立粒子。點擊Particle tool box,在Number of particles中設置數值,也就是你所建立平麵的頂點個數,我這裏是100,在視圖中點擊左鍵,按回車鍵確認。在粒子選擇的情況下,按SHIFT,點選平麵,選擇菜單Particles/Goal ,為其建立目標。播放動畫看一下,粒子被全部依附到平麵上,保持其選擇狀態,選擇菜單 Solvers/Initial State/Set for selected,這樣就設置了粒子的初始狀態。把平麵隱藏吧,我們暫且不需要它了。
接下來,我們再建立一個polygon cube 物體,設置如圖三,保持pCube1的選擇狀態,按SHIFT鍵點選粒子,點選菜單 Particles/Instancer(replacement),把這個CUBE也隱藏吧。到此為止,我們的準備工作已經完成了。場景如圖四所示:
圖4
[page]
選擇粒子,在屬性窗口中找到Add dynamic Attributes卷展欄,點擊general按鈕,為其建立一個名為cyclePP的動態屬性,設置如圖五。這樣,在per particle(array) attributes 卷展欄中大家可以看到新增的這個屬性。點右鍵,選Runtime Expression,寫入如下表達式:
particleShape1.cyclePP=((floor(particleShape1.particleId/10)+particleShape1.particleId)/10+time)%1
選擇粒子,我們再為其建立一個名為rampPP的動態屬性,設置與上次相同。點擊右鍵,選擇Create Ramp,再次點擊右鍵,選擇,<-arrayMapper1.outValuePP/Edit Ramp,設置如圖六所示:
[page]
選擇粒子,在屬性窗口中找到lifespan attributes(see also per-particle tab)卷展欄,設置lifespan Mode屬性為live forever。打開Hypergraph窗口,選擇particle1節點,點擊菜單graph/input and output connections,用中鍵拖動particleShape1節點到arrayMapper1節點之上,鬆開鼠標,選Other.於是調出Connection Editor 窗口,連接cyclePP和vcoordPP兩屬性,如圖七所示:關閉窗口。
保持粒子選擇狀態,在屬性窗口中找到instancer (geometry replacement)卷展欄,激活allow all data types屬性,設置Visibility為rampPP。
最後按播放鍵看效果吧