╋艺 镇╋╋影视の后期╋┣◇After Effects → [转帖]关于AE表达式wiggle()在多维参数上的单独震动解答


  共有13022人关注过本帖树形打印复制链接

主题:[转帖]关于AE表达式wiggle()在多维参数上的单独震动解答

帅哥哟,离线,有人找我吗?
乐魔舞
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 天之飞雪
等级:青蜂侠 帖子:1427 积分:11370 威望:0 精华:7 注册:2007/12/25 16:21:28
[转帖]关于AE表达式wiggle()在多维参数上的单独震动解答  发帖心情 Post By:2013/7/26 13:39:26 [只看该作者]

关于AE表达式wiggle()在多维参数上的单独震动解答

    对于AE中wiggle的表达式大家并不陌生,是AE中最为常用的表达式之一,但是大家对于在单方向的运动规律却并不熟悉,在这里写一篇博文解释一下。

    这个问题在我的表达式教学中有过讲解,方法是通过使用链接的方式把wiggle中的一个参数链接到一个slider上单独控制,这样是完全可以的。但是有位细心的买家问到,如何不通过链接而是用书写的表达式来单独控制单个方向的震动呢?

    wiggle(freq, amp, octaves = 1, amp_mult = .5, t = time)是基本形式,wiggle()括号里面写5个数组,但是我们一般只写两个,即wiggle(频率,幅度),频率是每秒钟震动次数,频率是2也就是每秒钟震动2次,频率是0.5的话也就是每秒震动0.5次即2秒震动一次。幅度是在基数(即做表达式的参数的原数值)的基础上上下进行震动。好了,这是最基础的解释。

    如果对二维的固态层的position书写wiggle(2,20)的话就是在X和Y轴两个方向进行震动。如何进行单向震动呢?比如如何在x轴向上wiggle(2,20)的方式震动而在y轴wiggle(3,25)的方式震动呢?

    方法一,单独链接slider,也就是添加2个slider的特效,在position上面书写

x=effect("Slider Control")("Slider");

y=effect("Slider Control2")("Slider");

[x,y]

    然后在Slider Control上面书写wiggle(2,20),在Slider Control2上面书写wiggle(3,25)就可以完成单独震动。

    方法二,书写一个表达式完成效果。但是要明白一个问题,wiggle是多维的属性,当直接书写在二维或者三维四维数组上是可以的,比如在图层的position上书写wiggle是可以的,不会报错,而且这个层是二维层三维层都可以,但是如果这样书写:

关于AE表达式wiggle()在多维参数上的单独震动解答

    可以看到这样书写就会报错,错误说数组不能扩展到大于一个数值,也就是说表达式中的x和y仅仅代表了一个数值,不能代表多个数值,而wiggle是多维的,当然不能直接赋予x或者y这样一维的数组。

    但是如果直接书写wiggle的话,不能单个控制图层在x和y轴上单独的运动,这种情况怎么办呢?

    在AE中,可以在多维数组后面添加[0][1][2]来限定维数,这些在《罡渡晨星AE表达式全析教程》里面有详细的解释,如果想深入学习研究可以看一看。[0]代表x轴,[1]代表y轴,[2]代表z轴,这样就可以限定多维数组中的单轴数值。AE里面的参数不仅仅只有三个维数,有些会很多,比如颜色是四维数组。这样在wiggle后面添加一个维数的限定就可以进行单轴的赋值了。

    所以解决单轴不同震动的问题可以书写这样的表达式。

x=wiggle(2,20);

y=wiggle(3,25);

[x[0],y[1]]

    OK,问题解决。有人可能问到那x和y这俩数组不就是多维的了吗?对,没错,但是在最后返回的时候添加了[0]和[1]就限定了多维参数中的其中一个维数的数值了。这些在我的表达式教程里面有过讲解,讲的还是比较细致的,在这里给自己做个小广告哈关于AE表达式wiggle()在多维参数上的单独震动解答关于AE表达式wiggle()在多维参数上的单独震动解答

 

    再举一个例子,我有一个三维的图层,在position上赋值,x轴数值为20,y轴数值为50,z轴数值为wiggle(3,30),可以书写表达式

x=22;
y=50;
z=wiggle(3,30);
[x,y,z[2]]

    好了问题解决了!

    再出一个题大家可以看看是什么效果,一个三维图层在position上书写表达式如下,

a=wiggle(2,25);

[a[0],a[1],a[2]]

    看看每个轴是一起震动还是单独震动。



http://blog.sina.com.cn/s/blog_6f00aab501016d6a.html


  
“艺镇”官方站:www.zyzsky.com QQ群:1221854  回到顶部
帅哥哟,离线,有人找我吗?
乐魔舞
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 天之飞雪
等级:青蜂侠 帖子:1427 积分:11370 威望:0 精华:7 注册:2007/12/25 16:21:28
  发帖心情 Post By:2013/7/26 13:42:31 [只看该作者]

wiggle(freq,
amp, octaves=1, ampMult=.5, t=time) {freq, amp, octaves, ampMult, 和 t 是数} 属性值随机摆动(wiggles)
WIGGLE有5个参数那么 position.wiggle(7, 30, 3)那么3指的是哪个参数?
e而且WIGGLE可用于多维数组,那么WIGGLE的返回值是多少?
如果将
t=wiggle(5,40)[1];
[value[0],value[1],t];
这段代码写入一个3维图层的position中,
如果改t=wiggle(5,40)[0];
又是不一样的结果。
求解答

------------

  • 按逗号排,position.wiggle(7, 30, 3)里的3指的是octaves=3

  • wiggle相当于一个滤镜,用在二维数组上,它就返回二维值,用在三维数组上,返回的结果就是三维值

  • 用在3维图层的position中时,wiggle(5,40)[1] 相当于 position[1].wiggle(5,40),两种不同的写法而已,所以,position[1] 不等于 position[0],wiggle的结果怎么会一样呢?



  • http://zhidao.baidu.com/question/529448451.html


      
    “艺镇”官方站:www.zyzsky.com QQ群:1221854  回到顶部
    帅哥哟,离线,有人找我吗?
    乐魔舞
      3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


    加好友 发短信 天之飞雪
    等级:青蜂侠 帖子:1427 积分:11370 威望:0 精华:7 注册:2007/12/25 16:21:28
      发帖心情 Post By:2013/7/26 13:45:29 [只看该作者]

    wiggle表达式后面的振幅怎么给一个范围?

    例如是wiggle(1,20)

    我不想弄20,我要让振幅在-30-10之间 ,改怎么解决??? 感激



    -------------


    wiggle(1,random(-30,-20))


      
    “艺镇”官方站:www.zyzsky.com QQ群:1221854  回到顶部