【AE表达式】AE 自动滚动 的优化使用(输出宽度高度/拼贴中心)

假如你在使用自动滚动-水平,然后图层进行了S的缩放,你会发现就算形状本身已经放在画布里面,但是滚动出来的图形还是会被切的话,把输出宽度的表达式改成下面这个:


if(scale[0]<100){

(thisComp.width / (thisLayer.width * (scale[0]/100))) * 100;

}else{

100;} 


至于这效果本来为什么要这样写,我并不清楚。

反正图层放大了就给你裁掉一截,想不通。。。


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

2017年4月24日

假如是垂直方向就[1]就好了。


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

2017年4月24日

自动滚动-垂直的输出高度(autoscroll-vertical: output height):

if(thisComp.height>thisLayer.height){

(thisComp.height / (thisLayer.height * (scale[1]/100))) * 100;

}else{

100;} 

自动滚动-水平的输出宽度(autoscroll-horizontal: output width):

if(thisComp.width>thisLayer.width){

(thisComp.width / (thisLayer.width * (scale[0]/100))) * 100;

}else{

100;} 

修正判断条件,感谢洪旭。


2017年5月10日-------------------------------------

if(thisComp.height>thisLayer.height){

(thisComp.height / (thisLayer.height * (scale[1]/100))) * 100 + (thisComp.height/2 - transform.position[1]);

}else{

100;} 

添加位移修正

if(thisComp.width>thisLayer.width){

(thisComp.width / (thisLayer.width * (scale[0]/100))) * 100 + (thisComp.width/2 - transform.position[0]);

}else{

100;} 



使用 【效果—角度控制器】 控制【拼贴中心】,取代速度

垂直滚:

sT=effect("scrollTimes")(1);

offset=sT*thisLayer.height/360;

[thisLayer.width/2, thisLayer.height/2 + offset]


水平滚:

sT=effect("scrollTimes")(1);

offset=sT*thisLayer.width/360;

[thisLayer.width/2 + offset, thisLayer.height/2]

添加一个角度控制器,叫scroolTimes 就行;



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

需要全屏贴满整个合成的话,输出高度是这个:

(thisComp.height/2+Math.abs(transform.position[1]-thisComp.height/2))*2/thisLayer.height*100;

输出宽度是这个:

(thisComp.width/2+Math.abs(transform.position[0]-thisComp.width/2))*2/thisLayer.width*100;

评论

© leizingjiu | Powered by LOFTER