AEJoy —— 表达式之如何制作滑块控制效果【JS】

746 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

效果图

123333.gif

设计思路

很简单,一共分三步

1. 新建合成并排版

导入制作(分层)好的美术素材

image.png

加入合成并调整好各个图层的位置(可以利用右侧的对齐工具进行辅助)和尺寸(初始大小都是 100%)

image.png

2. 新建空对象作为控制器

为空对象添加滑动条控件

image.png

设置滑动条的范围(本例有 9 个图层,所以是从 0 ~ 10)

image.png

3. 编写表达式

在各层的缩放属性上编写表达式(也可以把表达式应用在位置、旋转等属性上)

注意:这里可以右键 “Copy Expression Only” 来拷贝表达式,然后再在各层的相应属性上 Ctrl + V 进行黏贴;

另外,也可以将表达式保存为预设,以便在其他项目中复用。具体参见文末。

image.png

注意将滑动条与表达式联动起来

/// @note 获取空对象(控制器)的滑块值
var sliderVal = thisComp.layer("NullObject").effect("Slider Control")("Slider")

/// @note 本层的索引
var layerIdx = thisLayer.index;

/// @note 当滑块值超过该层索引的时候,播放缩小(缓动)动画
if (sliderVal > layerIdx) {
    x = ease(sliderVal, layerIdx, layerIdx + 1, value[0] * 1.5, value[0]);
}
/// @note 当滑块值尚未超过该层索引的时候,播放放大(缓动)动画
else {
    x = ease(sliderVal, layerIdx - 1, layerIdx, value[0], value[0] * 1.5);
}

/// @note 输出(等比例变换)
[x, x]

将表达式保存为预设

可以将表达式保存为预设,并在其他项目中使用它,使用步骤如下:

  • 在时间轴中,选择应用表达式的属性,例如,表达式应用于一个图层的 旋转 属性,因此选择它。然后,选择 Animation -> Save Animation Preset

  • 重命名预设——比如 “Time40”,然后保存。默认情况下,它被保存在用户预设文件夹作为 Adobe After Effects 预设文件。

  • 要应用预设,打开 “效果和控制”(Effects & Controls) 菜单下的 “动画预设”(Animation Presets) 。你有两个文件夹-预设和用户预设(Presets and User Presets),打开用户预设(User Presets)。它有你在 After Effects 中创建的所有预设。将 “Time40” 预设拖到你正在处理的图层上,就可以应用表达式了!