先看效果圖
下面來講解制作流程
1. 創(chuàng)建草的筆刷,適當(dāng)調(diào)整參數(shù)如圖。讓草直一點,隨后好任意旋轉(zhuǎn)
調(diào)整筆刷生長動畫。我們將主要通過設(shè)置start time來生成草地生長的動畫。當(dāng)然,如果你愿意,你還可以調(diào)整speed的值來獲得不同的生長速度
重命名筆刷為:grass,創(chuàng)建一個空的組物體,我們將用它來放隨后復(fù)制的筆刷物體。創(chuàng)建一個circle并作100幀的縮放動畫。讓circle發(fā)射粒子,速度為0,我們將在每一個粒子產(chǎn)生的地方放置一個筆刷。場景如圖
選擇粒子,創(chuàng)建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和絕對坐標只有出入。總較實際的小,所以我除了個系數(shù)。
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);
現(xiàn)在復(fù)制的筆刷能夠順利的生長了,但是回放的時候卻不能自動刪除,我們得在0幀的時候reset一下
選擇grassGrp創(chuàng)建一個命名為reset的表達式:
if(frame==0)
{
select -r -hi grassGrp;//select group and it's children
select -tgl grassGrp; //deselect the group Obj
delete;
}
下面來講解制作流程
1. 創(chuàng)建草的筆刷,適當(dāng)調(diào)整參數(shù)如圖。讓草直一點,隨后好任意旋轉(zhuǎn)
調(diào)整筆刷生長動畫。我們將主要通過設(shè)置start time來生成草地生長的動畫。當(dāng)然,如果你愿意,你還可以調(diào)整speed的值來獲得不同的生長速度
重命名筆刷為:grass,創(chuàng)建一個空的組物體,我們將用它來放隨后復(fù)制的筆刷物體。創(chuàng)建一個circle并作100幀的縮放動畫。讓circle發(fā)射粒子,速度為0,我們將在每一個粒子產(chǎn)生的地方放置一個筆刷。場景如圖
選擇粒子,創(chuàng)建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和絕對坐標只有出入。總較實際的小,所以我除了個系數(shù)。
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);
現(xiàn)在復(fù)制的筆刷能夠順利的生長了,但是回放的時候卻不能自動刪除,我們得在0幀的時候reset一下
選擇grassGrp創(chuàng)建一個命名為reset的表達式:
if(frame==0)
{
select -r -hi grassGrp;//select group and it's children
select -tgl grassGrp; //deselect the group Obj
delete;
}