欢迎光临散文网 会员登陆 & 注册

【AE表达式】基于不规则形状生成点线动画

2021-10-13 13:31 作者:Cubx  | 我要投稿

/*表达式文末自取*/

另外贴一个官网表达式解释:

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

思路

通过读取源路径上的点,再进行连线

实现

准备工作

新建形状图层,用钢笔随便画一个路径

画个蛋

再建一个形状图层,用于表达式生成路径

并为内容添加路径和描边

再给这个图层的添加两个滑块控制//之后要用

建议用表达式把两个图层的PSR锁好,以免鼠标误操作

给路径图层下的路径添加表达式

先定义一些变量并赋值

从这里开始需要一些基本代码知识了

首先需要把取到的点的位置放在一个数组里

以便之后给createPath使用

于是先定义一个数组

再用for循环+pointOnPath取所有点

关于pointOnPath用法的官网解释

简单说就是

路径.pointOnPath(百分数,time)

返回路径上一点的位置//起点百分数为0,终点为1

取得点后用createPath描点连线

createPath用法详见

或者看我上篇文章

也可以看官网解释

回到取点过程,因为pointOnPath是通过百分数i/n进行点的定位

那么需要i/n+c就能实现相位变化

但i/n+c为百分数,只取0到1的数

则进行模运算,改为(i/n+c)%1

这样无论c如何增加,(i/n+c)%1都不会超过1

但目前只生成了路径,还需要画点

创建点

动画中的点实际上就是正圆形

新建形状图层,添加椭圆路径及填充

用P键打开图层位置属性,添加之前的变量

再添加

如果想要很多点,Ctrl+DDDD……就好了

后记

前天在群里看到这个表情包,就想模仿一下

不知道有什么用,说不定就可以用在视频里呢

之前两篇感觉讲得太麻烦了,这次就讲得更简单了些,有不懂的地方欢迎私信

路径

path_=thisComp.layer("源路径").content("形状 1").content("路径 1").path;

n=effect("点数")("滑块");

n=clamp(n,20,1);

c=effect("相位")("滑块")/100;

c=clamp(c,50,0);

 

pos=[path_.pointOnPath((0/n+c)%1,time)];

for(i=1;i<=n;i+=1){

       p=path_.pointOnPath((i/n+c)%1,time);

       pos.push(p);

}

createPath(pos,[],[],1)

path_=thisComp.layer("源路径").content("形状 1").content("路径 1").path;

n=thisComp.layer("路径动画").effect("点数")("滑块");

n=clamp(n,20,1);

c=thisComp.layer("路径动画").effect("相位")("滑块")/100;

c=clamp(c,50,0);

 

o=index-1;

if(o>n){

       o=0;

}

path_.pointOnPath((o/n+c)%1,time)+value


【AE表达式】基于不规则形状生成点线动画的评论 (共 条)

分享到微博请遵守国家法律