[筆記]莊懂的技術(shù)美術(shù)入門(十九)
1.頂點位移

實現(xiàn)原理
? ? ????將頂點y分量進行sin曲線的偏移

a.#define TWO_PI?聲明常量
b.void方法沒有return,會直接修改inout的值
c.因為避免時間無限大frac了曲線的長度所以要乘TWO_PI來完整sin曲線
2.頂點縮放

同理

3.頂點旋轉(zhuǎn)

實現(xiàn)原理
????????計算物體旋轉(zhuǎn)角度之后,再將角度轉(zhuǎn)化為弧度,再將弧度度轉(zhuǎn)化為對應(yīng)的模型空間的坐標(biāo)

角度轉(zhuǎn)化為弧度公式為
????????????????????????????????radY=radians(angleY);
旋轉(zhuǎn)θ角后由三角函數(shù)得出兩個向量坐標(biāo)為(x·cosθ,x·sinθ)和(-z·sinθ,z·cosθ),然后兩個向量相加得出最終點的坐標(biāo)

4.AnimGhost

我們把動作拆解為如下幾個部分:
? ? ? ? a.?縮放天使圈
? ? ? ? b. 幽靈擺動
? ? ? ? c. 幽靈搖頭
? ? ? ? d. 幽靈起伏
? ? ? ? e. 天使圈顏色變亮
通過頂點色來實現(xiàn)分別控制每個部分

縮放天使圈
x控制縮放強度,y控制縮放速度,z控制下移的距離。如果不下移,那么天使圈將會按照模型的原點進行縮放,即會在y軸上有明顯的位移



幽靈擺動
因為有x和z方向上的偏移,所以需要兩個變量來控制位移屬性

在sin函數(shù)中,vertex.y*_SwingXParams這部分的作用是確保坐標(biāo)不同的y值有不同的偏移,否者整個模型都是單調(diào)的左左右右


幽靈搖頭
Z分量是為了控制天使圈和頭旋轉(zhuǎn)有一定的滯后,像是模擬慣性的效果

這里- color.g * _ShakeYParams.z 就是計算天使圈的滯后性


幽靈起伏


天使圈顏色變亮


代碼實現(xiàn)
