深圳环球数码动画学院

7x24小时咨询热线

400-660-3310

当前位置 : 好学校 深圳环球数码动画学院 学习资讯 资讯详情

jason schleifer 腿部设置

2013-06-28

谈到这js的设置,两大亮点,两大难点:

1.腿部的表达式

2.手部的bend系统

OK,先说腿部那的经典表达式,Roll系统:

腿部的控制器分别有三个属性:roll,toeLift,toeStraight

三个要联合使用

roll可以立刻看到效果

toeLift意思是ball到多少度脚尖开始抬起

toeStraight意思是脚尖到多少的时候ball关节变回直的

就像人走路,跑步时候脚掌的角度变化:

Jason这里用了一招挺有特色的,其实也是经常用了,做特效的人几乎时刻都面对,没有什么特别的,只是用在这设置上有点创意,那就是linstep,其实还有smoothstep,clamp,一大堆操作节点,只要灵活联想,都可以出到很好的效果,特效的同事应该清楚了,当时没有看JS的时候我是用判断节点和clamp节点做的,一样的道理

OK,分析一下他这段函数

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

linstep(X,Y,Z)意思是给定一个范围 (大于X小于Y)

我们输入Z,当Z小于X的时候linstep输出为0

当Z大于Y的时候linstep输出为1

当Z大于X小于Y输出的就是当中的比例值

JS表达式分开了两部分,互相相乘,我觉得这个挺有趣的,有点像以前的小学简单数学

这两部分分别是(linstep(0,$toeLift,$roll))

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

(linstep(0,$toeLift,$roll))  : 我们输入roll值,当roll小于0的时候 ,

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

相乘后 ball_loc.rotateX = 0 ,ball关节没有旋转

当roll大于0,小于$toeLift  , (linstep(0,$toeLift,$roll)) 输出0-1的比例值

当roll 大于$toeLift ,(linstep(0,$toeLift,$roll))输出为1

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

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

当roll小于$toeLift的时候 ,linstep($toeLift,$toeStraight,$roll) = 0

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

当roll大于$toeLift,小于$toeStraight  , linstep($toeLift,$toeStraight,$roll) = 0 输出0-1的比例值,是慢慢增大的值,但是

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

当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

当$roll值在0,$toeLift 的时候 ,第二段为 (1-0=1),计算以第一段为准  例如 :X * (1-0)= X

当$roll值在$toeLift,$toeStraight 的时候 ,第一段为 (1-0=1),计算以第二段为准

例如 :1 * Y= Y

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

所以ball关节有真实人的效果

PS:其实动动脑筋,有更多的方法,说不定比他更简单的还很多,大家可以想想sin,cos函数,哈哈

更直接,先卖个小关子。。

明天说他手部的bend抬起系统,其实就是跟腿一样原理,就是在切换方面下了点小技巧来配合elbowLock

接着会给大家说你们看到一些DEMO的 闭唇运动,二级控制器的vector算法,大家多多交流哈

说完。。。收工。。。

收藏
分享到:

相关课程

相关资讯

深圳环球数码动画学院

深圳环球数码动画学院

认证等级

信誉良好,可安心报读

深圳环球数码动画学院

已获好学校V2信誉等级认证

信誉值

  • (60-80)基础信誉积累,可放心报读
  • (81-90)良好信誉积累,可持续信赖
  • (91-100)充分信誉积累,推荐报读

与好学校签订读书保障协议:

  • 100%
  • 50
  • 19233
在线咨询
;