下麵來講解製作流程
1. 創建草的筆刷,適當調整參數如圖。讓草直一點,隨後好任意旋轉
調整筆刷生長動畫。我們將主要通過設置start time來生成草地生長的動畫。當然,如果你願意,你還可以調整speed的值來獲得不同的生長速度
重命名筆刷為:grass,創建一個空的組物體,我們將用它來放隨後複製的筆刷物體。創建一個circle並作100幀的縮放動畫。讓circle發射粒子,速度為0,我們將在每一個粒子產生的地方放置一個筆刷。場景如圖
選擇粒子,創建creation expression:
string $grassN[]=`duplicate -rr -un grass`;//copy grass
parent $grassN[0] grassGrp; //put the duplicated brush under the grassGrp
vector $p=particleShape1.birthWorldPosition/2.5;//不知道為什麼這個birthWorldPosition和絕對坐標隻有出入。總較實際的小,所以我除了個係數。
move -a ($p.x) ($p.y) ($p.z) $grassN[0];
rotate -r 0 (rand(360)) 0 $grassN[0];//let brush natural
string $nTemp[]=`listHistory $grassN[0]`;//find duplicated brush curve
parent $nTemp[3] grassGrp;
string $cmd="setAttr "+$nTemp[1]+".startTime "+frame/25;//set the starting grow time
eval($cmd);
現在複製的筆刷能夠順利的生長了,但是回放的時候卻不能自動刪除,我們得在0幀的時候reset一下
選擇grassGrp創建一個命名為reset的表達式:
if(frame==0)
{
select -r -hi grassGrp;//select group and it's children
select -tgl grassGrp; //deselect the group Obj
delete;
}