After Efftcs表达式控制层颜色

修改
鏉ユ簮: 貌似殊途 浏览 3898 日期 2012-01-13 0

本教程教朱峰社区的朋友们使用表达式控制层颜色及层位置,在复制图层的时候,新图层会根据表达式自动定义颜色及位置,你还可以自定义开始颜色、结束颜色、饱和度以及复制出来的图层与原图层之间的距离。转发过来,希望朱峰社区的朋友们喜欢这篇教程。

具体的制作步骤如下:

1、新建合成,如图01所示。

2、按快捷键“ctrl+y”新建固态层,宽设置为50,高设置为300,颜色设置什么都可以,如图02

3、将固态层的3d开关打开,新建空物体层并修改名称为“控制器”,如图03。

[next]

4、为“控制器”层添加特效“color control”、“color control 2”、“slider control”、“slider control 2”,如图04所示。

5、修改特效名称及参数,开始颜色值为#ff00e4,结束颜色值为# 00b4ff,如图05。

6、新建摄像机层,旋转一下试图以便于观察图像效果,如图06。

7、选择固态层,按“p”键展开position属性,为position属性添加表达式:

[position[0],position[1],index*thiscomp.layer("控制器").effect("z轴距离")("slider")]

position[0],position[1]为定义层的x与y轴数值,index*thiscomp.layer("控制器").effect("z轴距离")("slider")意思是将层的z轴定义为层编号乘以“控制器”层的“z轴距离”特效的slider属性值,如图07。

8、表达式设置完成后,选择固态层,多复制几层看看,效果如图所示。

[next]

9、现在删掉刚才复制出来的几层,为固态层添加fill特效,颜色设置为#ff0000,如图09所示。

10、选择开始制作让复制出来的图层颜色自定义,为fill特效的color属性添加表达式为:

n=thiscomp.layer("控制器");

s=rgbtohsl(thiscomp.layer("控制器").effect("开始颜色")("color"));

e=rgbtohsl(thiscomp.layer("控制器").effect("结束颜色")("color"));

if (e[0]<s[0]) {e = e + [1,0,0,0];}

k=thiscomp.layer("控制器").effect("饱和度")("slider");

if (k == 0) {k =1}

firstlayer= n.index + 1;

lastlayer = thiscomp.numlayers;

hue=linear(index,firstlayer,lastlayer,s[0],e[0])%1;

sat=1;

lum=easein(index%k,0,k,0.1,1);

if (index == firstlayer) {hsl=s;} else

//if (index == lastlayer) {hsl=[hue,e[1],er[2],e[3]];} else

{hsl=[hue,sat,lum,1];}

hsltorgb(hsl)

此表达式是将层的颜色范围控制在“控制器”层的特效“开始颜色”、“结束颜色”之间,将用“控制器”层的特效“饱和度”来控制层颜色饱和度,如图10所示。

11、表达式设置完成后,选择固态层按ctrl+d多复制几层,可以看见效果如图11所示。

12、选择“控制器”层,调节“开始颜色”、“结束颜色”、“饱和度”、“z轴距离”特效参数,效果会随之发生变化。

评论

{{ username ? username.charAt(0).toUpperCase() : '?' }}
Ctrl+Enter 发布
{{ (c.username || c.author_name || '?').charAt(0).toUpperCase() }}
{{ c.username || c.author_name }} {{ Utils.formatDate(c.created_at) }}