前段时间项目要求实现一个竹简铺开的效果,类似于卷轴的效果!
以前也想过,无奈水平有限没有想出简单的方法,只能用一些欺骗手段了~呵呵....
这次终于想出了一个比较不错的方法:
主要是用到数学中的递增效果,卷轴卷起部分角度从内向外是慢慢减小的.....
用mel写了一个小插件scrollJnt,只要执行一下,就可以创建卷轴控制!
三个属性:
deg---控制旋转角度,multi---控制递减效果,scroll---控制卷轴动态!
其中用了n*(n+1)/2这个公式..
{
$numJnt为骨骼段数;$deg为旋转度数;$multi为骨骼差值;
($numJnt-$i)*$deg + $multi *(($numJnt-$i)*$i + ($numJnt-$i)*($numJnt-$i+1)/2)
}
还有一种方法就是可以利用paintEffects,需要自定义画笔工具,利用bend属性控制!
各种效果的实现其实就是让计算机去计算,找出一种算法,都有规律可寻,看样子数学方面还是要补一下(不光是数学啊!)
以前也想过,无奈水平有限没有想出简单的方法,只能用一些欺骗手段了~呵呵....
这次终于想出了一个比较不错的方法:
主要是用到数学中的递增效果,卷轴卷起部分角度从内向外是慢慢减小的.....
用mel写了一个小插件scrollJnt,只要执行一下,就可以创建卷轴控制!
三个属性:
deg---控制旋转角度,multi---控制递减效果,scroll---控制卷轴动态!
其中用了n*(n+1)/2这个公式..
{
$numJnt为骨骼段数;$deg为旋转度数;$multi为骨骼差值;
($numJnt-$i)*$deg + $multi *(($numJnt-$i)*$i + ($numJnt-$i)*($numJnt-$i+1)/2)
}
还有一种方法就是可以利用paintEffects,需要自定义画笔工具,利用bend属性控制!
各种效果的实现其实就是让计算机去计算,找出一种算法,都有规律可寻,看样子数学方面还是要补一下(不光是数学啊!)