【AE表达式】speedK(prop)根据速度判断对应正负方向(2017年9月7日.更新)

关键表达式:

property.speed%(Math.abs(property.speed)-1)


应用:

位置根据透明度变化,移动相应距离(在位置上黏贴此表达式后在透明度上打关键帧):

t=transform.opacity;

ts=transform.opacity.speed;

result=value+[(t-100)*(ts%(Math.abs(ts)-1)),0];

详细应用:https://uiiiuiii.com/aftereffects/121212834.html

注释:

t=transform.opacity; /*设t等于不透明度*/

ts=transform.opacity.speed;/*设t等于不透明度的速度*/

result=value+[(t-100)*(ts%(Math.abs(ts)-1)),0];

/*结果 = 当前属性值 + [透明度 * (速度 除以 (速度绝对值-1) 的余数)0]*/


——————————————2017年9月3日更新————————————————

a=transform.opacity;/*这里自己获取一个需要的属性值*/

k=speedK(a); /*速度方向系数*/

n=-2; /*比例系数*/

result=value+[0,(a-100)*k*n];/*(a-100)是为了让透明度在100的时候为中间位置,渐入渐出的时候让位移自动移动*/


function speedK(prop){

if(prop==undefined){prop=thisProperty;}

var result=prop.speed%(Math.abs(prop.speed)-1);

return result;

}



——————————2017年9月7日更新——————————

a=transform.opacity;/*这里自己获取一个需要的属性值*/

m=100;/*a的最大值*/

n=-0.5; /*比例系数*/

k=speedK(a); /*速度方向系数*/

x=(m-a)*k*n;

result=value+[x,0];


function speedK(prop){

if(prop==undefined){prop=thisProperty;}/*容错*/

var pSp=prop.speed;


/*配合inOut,可删除*/

var inP=inPoint+thisComp.frameDuration;

var outP=outPoint-thisComp.frameDuration;

pSp=time<inP?prop.speedAtTime(inP):pSp;

pSp=time>outP?prop.speedAtTime(outP):pSp;

/*配合inOut,可删除*/


var result=pSp%(Math.abs(pSp)-1);

return result;

}

评论

© leizingjiu | Powered by LOFTER