深圳環(huán)球數(shù)碼動畫學(xué)院

7x24小時咨詢熱線

400-660-3310

當(dāng)前位置 : 好學(xué)校 深圳環(huán)球數(shù)碼動畫學(xué)院 學(xué)習(xí)資訊 資訊詳情

jason schleifer 腿部設(shè)置

2013-06-28

談到這js的設(shè)置,兩大亮點,兩大難點:

1.腿部的表達式

2.手部的bend系統(tǒng)

OK,先說腿部那的經(jīng)典表達式,Roll系統(tǒng):

腿部的控制器分別有三個屬性:roll,toeLift,toeStraight

三個要聯(lián)合使用

roll可以立刻看到效果

toeLift意思是ball到多少度腳尖開始抬起

toeStraight意思是腳尖到多少的時候ball關(guān)節(jié)變回直的

就像人走路,跑步時候腳掌的角度變化:

Jason這里用了一招挺有特色的,其實也是經(jīng)常用了,做特效的人幾乎時刻都面對,沒有什么特別的,只是用在這設(shè)置上有點創(chuàng)意,那就是linstep,其實還有smoothstep,clamp,一大堆操作節(jié)點,只要靈活聯(lián)想,都可以出到很好的效果,特效的同事應(yīng)該清楚了,當(dāng)時沒有看JS的時候我是用判斷節(jié)點和clamp節(jié)點做的,一樣的道理

OK,分析一下他這段函數(shù)

ball_loc.rotateX = (linstep(0,$toeLift,$roll)) * (1-(linstep($toeLift,$toeStraight,$roll))) * $roll;

linstep(X,Y,Z)意思是給定一個范圍 (大于X小于Y)

我們輸入Z,當(dāng)Z小于X的時候linstep輸出為0

當(dāng)Z大于Y的時候linstep輸出為1

當(dāng)Z大于X小于Y輸出的就是當(dāng)中的比例值

JS表達式分開了兩部分,互相相乘,我覺得這個挺有趣的,有點像以前的小學(xué)簡單數(shù)學(xué)

這兩部分分別是(linstep(0,$toeLift,$roll))

(1-(linstep($toeLift,$toeStraight,$roll)))

(linstep(0,$toeLift,$roll))  : 我們輸入roll值,當(dāng)roll小于0的時候 ,

(linstep(0,$toeLift,$roll)) = 0

相乘后 ball_loc.rotateX = 0 ,ball關(guān)節(jié)沒有旋轉(zhuǎn)

當(dāng)roll大于0,小于$toeLift  , (linstep(0,$toeLift,$roll)) 輸出0-1的比例值

當(dāng)roll 大于$toeLift ,(linstep(0,$toeLift,$roll))輸出為1

在看另外一段:(1-(linstep($toeLift,$toeStraight,$roll)))

我們先分析里面的一段: linstep($toeLift,$toeStraight,$roll)

當(dāng)roll小于$toeLift的時候 ,linstep($toeLift,$toeStraight,$roll) = 0

整段 1-(linstep($toeLift,$toeStraight,$roll)) = 1-0 =1

當(dāng)roll大于$toeLift,小于$toeStraight  , linstep($toeLift,$toeStraight,$roll) = 0 輸出0-1的比例值,是慢慢增大的值,但是

整段 1-(linstep($toeLift,$toeStraight,$roll)) 就相反了,輸出1-0的比例值,是慢慢減少的

當(dāng)roll 大于$toeStraight ,(linstep(0,$toeLift,$roll))輸出為1

整段 1-(linstep($toeLift,$toeStraight,$roll)) = 1-1 =0

那么兩段相乘,非常好,

(linstep(0,$toeLift,$roll)) * (1-(linstep($toeLift,$toeStraight,$roll))) * $roll

當(dāng)$roll值在0,$toeLift 的時候 ,第二段為 (1-0=1),計算以第一段為準(zhǔn)  例如 :X * (1-0)= X

當(dāng)$roll值在$toeLift,$toeStraight 的時候 ,第一段為 (1-0=1),計算以第二段為準(zhǔn)

例如 :1 * Y= Y

而第一段是0-1遞增的,后面是1-0遞增的

所以ball關(guān)節(jié)有真實人的效果

PS:其實動動腦筋,有更多的方法,說不定比他更簡單的還很多,大家可以想想sin,cos函數(shù),哈哈

更直接,先賣個小關(guān)子。。

明天說他手部的bend抬起系統(tǒng),其實就是跟腿一樣原理,就是在切換方面下了點小技巧來配合elbowLock

接著會給大家說你們看到一些DEMO的 閉唇運動,二級控制器的vector算法,大家多多交流哈

說完。。。收工。。。

收藏
分享到:

相關(guān)課程

相關(guān)資訊

深圳環(huán)球數(shù)碼動畫學(xué)院

深圳環(huán)球數(shù)碼動畫學(xué)院

認證等級

信譽良好,可安心報讀

深圳環(huán)球數(shù)碼動畫學(xué)院

已獲好學(xué)校V2信譽等級認證

信譽值

  • (60-80)基礎(chǔ)信譽積累,可放心報讀
  • (81-90)良好信譽積累,可持續(xù)信賴
  • (91-100)充分信譽積累,推薦報讀

與好學(xué)校簽訂讀書保障協(xié)議:

  • 100%
  • 50
  • 19259
在線咨詢
;