视频教程


表达式

//1.定义路径
path = content("Shape 1").content("Path 1").path
//2.定义路径上点的数组
var arr = path.points();
//3.获取所有点的x坐标
arr_x = Array.from(arr, x => x[0]);
//4.设置目标点的x值(这里的控制器 可能你要自己连一下)
var x_pos = thisComp.layer("控制器").effect("ADBE Slider Control")("Slider")
arr_x.push(x_pos);
arr_x.sort(function(a, b){return a-b});
//5.找到目标点在所有点的位置
x_index = arr_x.indexOf(x_pos);
//6.计算目标点的y值
y_pos = linear(x_pos,arr[x_index-1][0],arr[x_index][0],arr[x_index-1][1],arr[x_index][1]);
//
points = arr.slice(0,x_index);
points.push([x_pos,y_pos]);

//7.重新生成路径
path.createPath(points,[],[],false);

操作

首先自己绘制折线图,我用的是钢笔工具直接绘制的

再新建一个空对象,命名为控制器,并添加滑块控制

把表达式放在折线的路径里即可

给滑块做动画

注意

1.在第1步定义路径这里,可以路径不对,可以自己连接一下

2.在第4步设置目标点x时,可以自己连接下控制器,或者自定义x的动画

3.表达式引擎需要改成js,因此2018以下应该不行,我用的是2020

4.如果有有其他报错,可能你滑块数值太大/太小,已经超出了折线范围

如果有其他问题 请反馈

Leave a Reply

Your email address will not be published.

评论(2)

  • 阿卡.图威鲁 2021年5月12日 am10:37

    请问第三步 arr_x = Array.from(arr, x => x[0]);是输出了吗? 复制进去会报错,改成x => x[0] 就好了

  • J. 2021年5月21日 am3:02

    打卡

请下载到本地观看!因为pdf是用的阿里云盘预览,可能部分字体加载不了。

请安装油猴脚本,并下载月离的万事屋脚本

请在右上角三个点 - 下载管理 - 找到刚才的文件,选择允许下载。 或者换个浏览器
echo