【原创】循环的噪音函数,以及应用。

function loopNoise(t,T,seed){

var r1=noise(t%T+seed);

var r2=noise(-(T-t%T)+seed);

var r=linear(t%T,0,T,r1,r2);

return r;

}


参考循环wiggle写的循环noise。假如你的数字需要连续变化,而且需要循环,这个会有用。


文本层复制粘贴上面的代码,然后

r=loopNoise(time,thisComp.duration,index)*最大值


就可以得到从负最大值,到正最大值之间的,在合成持续时间内循环的,“连续随机”数。


js 递归产生数组 笔记

等差

function makeArr(max){

    if(max==0){

        return [0];

    }else{

        result=makeArr(max-1);

        result.push(max);...


【原创js】把马赛克到svg,提取成用来做拼图或者十字绣之类到数字

先把图片在ai创建马赛克,存成svg以后,用chrome打开svg,然后在console粘贴下面这段:

var R=document.getElementsByTagName("rect");

//获取矩形

var C={name:[],x:[],y:[]};


var brNum=0;


for(var i=0;i<R.length;i++){

//开始循环,从第一个到最后一个方格


    C.name[i]=R[i].className.animVal;...


【AE表达式】三角波与锯齿波函数 #AE表达式#

[图片]

 三角波函数:

function triWave(t,cycle){

return 1-Math.abs(( t%(cycle)+cycle)%(cycle)-cycle/2)/(cycle/2);   //by leizingyiu

}

triWave(time,1);

其中t相当于sin函数的x,cycle为周期,一个周期相当于sin函数的2π


[图片]

锯齿波函数:

function sawWave(t,cycle){

return ((t)%cycle+cycle)%cycle/cycle;...

【AE表达式】指定位数的整数(也就是前面加0)——滑块控制指定整数位数的文本图层

指定3位整数

e=effect("e")("滑块").value;

e=Math.round(e);

if(e<0){
    i=-1;
}else{
    i=1;
}

e=Math.abs(e);

if(e<10){
    e="00"+e;
}else if(e<100){
    e="0"+e;
}else{
    e=e;
}...

【AE教程】propertyGroup()快速上手!形状层编组不再报错!

教程作者:@leizingyiu
原文链接: https://uiiiuiii.com/aftereffects/121245045.html

yiu_propPath下载:链接:https://pan.baidu.com/s/1kVVLrvT 密码:5hi9
rd_GimmePropPath下载:http://redefinery.com/ae/view.php?item=rd_GimmePropPath


hello大家好,这次给大家分享的是propertyGroup()的快速上手方法。

很多小伙伴在使用表达式的时候,总是因为在形状层里面进行编组,而出现...

yiu_springHose —— 一个基于RubberHose的AE预设,可在一个Hose层中并排排列数个相同参数的“RH”。只需几步,轻松让每个小RH单双侧排列,统一控制描边颜色、描边粗细,以及修剪路径。
快速生成二维弹簧,只需一个hose层,以及yiu_springHose.ffx。

本预设采用知识共享署名-相同方式共享 4.0 (CC BY-SA 4.0) 国际许可协议授权。

预设作者/ @leizingyiu
英文版译者/ @岩鹽芝士奶蓋的岩鹽


中文版下载: http://www.zcool.com.cn/work/ZMjQ5MTIyNjA=.html...

【AE表达式】时间重映射里循环的两个表达式

方法1

loopOut();


方法2

(time+value)%source.duration;


方法1没啥好说的,就是循环两个关键帧,默认里面就是cycle,没啥好说的。。


方法2是刚想到的小办法,是什么鬼呢?


time,就是现在合成的当前时间;

value就是当前属性值,所以用这个办法的话,只保留一个关键帧就可以了;

time+value,就是以当前时间加上属性值,得到比现在时间更早或者更迟的时间;


问题来了,

假如time+value超过了预合成里面的总时长之后,怎么办呢?

不用if else,让time+value...

Q:想问问,如何获取某个关键帧的值,比如某个图层在位置上有三个关键帧,如何获取图层第一个关键帧的值

先贴Adobe官方文档:

https://helpx.adobe.com/cn/after-effects/using/expression-language-reference.html#key_attributes_and_methods_expression_reference  


然后是说人话的解释:


第一个关键帧的值: key(1).value;

第n个关键帧的值: key(n).value;

最后一个关键帧的值: a.key(a.numKeys).value;


容错一下变成:


a=你要获取的属性;

if(a.numKeys>0){...

【AE表达式】旋转一个矢量

function rotate(vec,angle){var vx=vec[0],vy=vec[1],cosVal=Math.cos(angle),sinVal=Math.sin(angle),Vec=new Array();Vec[0]=vx*cosVal-vy*sinVal;Vec[1]=vx*sinVal+vy*cosVal;return Vec}


来源已经忘记了。。。

又做了个组件[doge]

【AE表达式】父子级透明度自动跟随(2017年9月7日.更新)

直接填以下表达式,自动跟随父级透明度

k=100; 

result=hasParent?parent.transform.opacity/k*value:value; 

解释: 

设置k为父级透明度的最大值; 

结果等于( 

层有爸爸的话,结果等于 爸爸的透明度 除以 k 乘以 这个属性值; 

层没有爸爸的话,结果等于 当前属性值; 

) 

应用:

https://uiiiuiii.com/aftereffects/121212834.html...

【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; ...

loop()

后续在这更新。

【AE表达式】 形状图层路径属性可用的 loopOut()

start=key(1).time; end=key(numKeys).time;

keyDura=Math.abs(start-end);

result=value; /*by leizingjiu*/

if(time>end){result=valueAtTime((time-end)%keyDura+start);

}else if(time<start){result=valueAtTime(keyDura-(start-time)%keyDura);}

在形状图层里面,做路径变形动画的时候,loop系列表达式不让使用,于是写了这个。

来源以及预设下载: UiiiUiii.com 

作者/预设作者/教程作者:@leizingyiu 欢迎到微博交作业~


这个是滚滚↑

 

这个是弹弹↑


教程中使用的overshot的弹性表达式,直接复制黏贴就可以使用(来源):

freq=3;

decay=5;

n=0;if(numKeys>0){n=nearestKey(time).index;if(key(n).time>time){n–}}if(n>0){t=time-key(n).time;amp=velocityAtTime(key......

利用图层标记文本换行,但是感觉直接想办法用lrc比较方便

str=value;enter=String.fromCharCode(13);strG=str.split(enter);var ctrl;ctrl=thisLayer.marker;if(ctrl.numKeys>=1){var n=ctrl.nearestKey(time).index;if((time<ctrl.key(1).time)){N=0}else{if(ctrl.key(n).time>time){n--}}var start=ctrl.key(n).time;var end=ctrl.key...

打字键盘初步完成,然后就是修bug。。。。

后面直接在这里更新吧

应用(是的,只用了四个关键帧,设置文本长度需要4个关键帧):

【UI偷懒教程】快速批量填充XD中的repeat grid 文本

导语:一劳永逸——利用表格工具,处理好批量的文本,快速批量填充 XD 中的 repeat grid 文本。


在 PS 或者 skech 中,需要填充大量文本内容时,我们常用 craft 插件来完成;

在 adobe XD 中,使用 Repeat Grid 产生大量相同内容后,矩形可以通过拖放图片来实现批量填充,而文本同样有类似的功能;

首先这是一个日历界面,就差里面的内容了(废话=。=|||)

[图片]

然后我们看看五月的日历

[图片]

先是30号,然后就是1到31,然后又从1 开始。。。。那打开个 表格工具 和 记事本 吧

[图片]......

【AE表达式】逐渐wiggle

freq=effect("freq")(1);

amp=effect("amp")(1);

v=value;

w=thisProperty.wiggle(freq,amp);


function vt(n){

if(n>thisProperty.numKeys){

return thisComp.duration;

}else if(thisProperty.numKeys>0){

return thisProperty.key(n).time;

}else{

return 0;

}}...

没有想要的插件

那就自己写:)

【AE表达式】 获取属性最近的关键帧时间(按关键帧时间跳帧)

单属性版本:

function propKeyTime(ctrl){

var T=time;

if (ctrl.numKeys > 0) {

            var n = ctrl.nearestKey(time).index;

            if ((time < ctrl.key(1)....

【AE表达式】RGB与HSB(HSV)转换

function rgbToHsv(rgbArray) {

    var r = rgbArray[0];

    var g = rgbArray[1];

    var b = rgbArray[2];


    var a = 1;

    if (rgbArray.length > 3) {...


吸取视频的颜色并且生成(伪)渐变

【AE表达式笔记】 rubberHose笔记(toComp()/propertyIndex()等)

尝试解决获取存在父子级的对象的绝对坐标时候,参考了一下rubberHose,查了一下生成图层里面的表达式,先做笔记。


三元表达式、try catch、propertyIndex的使用、toComp()的解析以及使用


三元表达式

条件?a:b;      等于      if(条件){a;}else{b;}

在JavaScript三元表达式中使用try/catch语句

true ? (function(){try{alert(1)}catch(e)...

【AE表达式】时间重映射:k帧归零//结合图层标记valueAtTime(marker.time)

用弹性里面一段改了个用在时间重映射的东西,再滑块ctrl里面k帧就是时间从0开始


ctrl=effect("ctrl")(1);

//获取滑块控制,代号ctrl;

T=0;

//先设默认值为0,防止出错;

if (ctrl.numKeys >= 1){ 

//如果ctrl里面的关键帧数量大于等于1;

      n =ctrl.nearestKey(time).index; 

//n等于现在时间最近的关键帧的序号(就是第几个的意思)...


【AE表达式】自动填满或边距

在文本图层里面打一大段一大段文字,然后直接黏贴这段去文本图层的缩放里面:)

margin值自己改哈。


margin=100;/*px*/


obj=thisLayer;

objS=obj.sourceRectAtTime();


w=objS.width;

h=objS.height;

l=objS.left;

t=objS.top;


W=thisComp.width;

H=thisComp.height;

wW=w/(W-2*margin);

hH=h/(H-2*margin);


if(wW<=1&&...

1 / 3

© leizingjiu | Powered by LOFTER