2011年1月13日 星期四

[Dynamic] Maya Sprite 精靈貼圖 之 跳躍的小黃

看標題就知道我又拿老師的小黃人跳躍算程序列圖啦!
密碼仍然相同,下載處:小黃跳躍序列圖-freakshare空間

[Step01]應用上一篇的方法,先完成如下圖的效果。


Creation類別的表達式:
particleShape1.spriteNumPP = rand(0,42);
particleShape1.spriteScaleXPP = rand(2,2.4);
particleShape1.spriteScaleYPP = rand(2,2.4);
particleShape1.goalU = rand (0,1);
particleShape1.goalV = rand (0,1);
particleShape1.goalOffset=<<0,particleShape1.spriteScaleYPP*0.5,0>>;

Runtime before dynamics的表達式:
particleShape1.spriteNumPP += 1;
particleShape1.spriteNumPP = particleShape1.spriteNumPP%42;

GoalU和GoalV都用rand的原因是在UV面上隨機擺放粒子。

[Step02]建立一個Locator,定義一個變量用以定義locator的位置,運行表達式如下:
vector $locat=<<locator1.tx,locator1.ty,locator1.tz>>;
再定義一個變量
float $dist=mag($locat - position);
這個意思是定義一個浮點變數,等於locator的位置減去粒子的位置,由於這兩個位置都是向量,因此用一個mag函數把向量轉成常量數值。

這時候去拖曳Locator,就會發現雖然沒有在撥放,但是粒子卻開始跳起來了。

[Step03]增加rgbPP,create ramp的時候選擇option,設定為rgbVPP。這時顏色變成紅色。建立運行表達式:
particleShape1.rgbVPP = linstep(0,5,$dist);
由於rgbVPP顏色由向量組成,所以後面也要對應三個值。linstep是線性光滑兩個數值之間的過渡,如果是smoothstep,就會更加光滑。
光以數值來說,r對應的是0,g對應的是5,b對應的是$dist。所以從圖中可以知道,與Locator位置相同的地方,是紅色;五個單位內的則是綠色,之後的則是藍色。
這時再對顏色進行修改,以營造出聚光燈效果。

[Step04]按下7,用燈光模式顯示可以看得更為清楚。


[Step05]修改ramp顏色,中央是類似光照到的顏色,而外圍則是暗色系。接著建立點光源(用線性衰減),parent給locator就可以營造出聚光燈照亮的效果了。

沒有留言:

張貼留言