【AE表达式】基于时间随机的溶解转场

本文介绍了如何使用AE表达式创建基于时间随机的溶解转场,这种转场基于形状图层而非效果,适用于AE和PR等软件。内容包括表达式的应用、转场控件的复用性和灵活性,以及随机时间的不透明度渐变原理。通过计算行列、位置和随机时间,实现转场效果的动态变化。文章还提供了简化代码的方法和导入运行的指导。
摘要由CSDN通过智能技术生成

这篇文章里面讲的内容非常简单,又比较实用,而且很常用,它是一种可以自由设置的转场,基于表达式和形状图层,而不是效果,因此你可以用它来制作很多比较平凡又不那么平凡的转场,不管是在 AE 中还是 PR 中,甚至任何软件里面都可以使用,下面的视频仅枚举了最简单的设置。

除了实用性,本篇文章也将带你学习表达式在处理空间和时间上的一些基本用法,都是非常简单的,数学知识不超过小学二年级范围,学习时间大概半个小时。另外想起来,我前两天翻出来我那台十年前的 Thinkpad W520,因为配置很老,只能运行 AE 2018 版本,然后发现在旧版本上并不支持新的 JavaScript 引擎,但是我现在这个专栏中的所有表达式都是基于 JavaScript ES6 标准的,如果你还在用旧版本,建议升级到 2021 或最新版本。

一个 Comp 或者一个 Layer 之所以被我称为控件,就是因为它是参数控制的,通过参数控制或者一些简单的复制、删除等操作就可以自动生成出同类但不相同的效果,控件的好处就在于复用性,特别像转场这种东西,你可能需要不断的调用它,但是又不像总是重复相同的效果,所以使用控件或者可以自定义的转场效果都是不错的选择,相对于转场的效果或插件,使用控件主要是可以避开前者的一些限制,而且通过 Alpha 遮罩控制的转场也可以更灵活。如果你做出一批画质很好,尺寸很大的预设转场,使用时直接调用渲染好的视频,也可以缓解软件的运行压力。

先说一下这个控件的产生背景是一位粉丝私信我关于随机控制时间节点的问题,他的代码思路基本上没错,只是在命令上多打了一个字母,所以报错了。我从他的这个事情上获得一些灵感,就做了这个控件以备后用。这个控件的核心是被分割的画面进行透明度过渡,但是它们执行的时间是随机的,这是让转场效果看起来不那么呆板的核心。

7ba56556265db74da04d1b9134ab50ae.png

1262d7c3e2cf161773c5cb98244bf780.png

fa3ddb4219596fc6851e8012e34668b5.png

三次转场只是分割的块不同,当你把它看作一个网格,然后只考虑存在几行几列就很容易理解了。直接看工程中的结构。

0fbc006bc0cb5b4a3c7dfbe8860d61a3.png

这是对应最上面那个竖条转场的,所以它有 1 行,行中存在 6 个块,按表格方式理解的话即 1 行 6 列,行列都是按照合成宽高平均分布的。我们需要实现计算的主要是行和块的大小和位置。

54b5fcd9a15123be532ee5b3bd823b19.png
自动计算块的大小

为了可以让每一个块都可以单独控制透明度,必须把块的路径和填充放在组中包裹起来,现在来看一下表达式所在属性的层级索引:

770c5724e3aac4766ae7a79f25fc1102.png

计算列数即查找 [4] 内容 中的数量,计算行数则查找 [6] 内容 中的数量。这部分还不知道的请继续复习 propertyGroup() 部分的知识。

    getCellSize: () => {
     
        let w = thisComp.width / thisProperty.propertyGroup(4).numProperties;
        let h = thisComp.height / thisProperty.propertyGroup(6).numProperties;
        return [Math.ceil(w), Math.ceil(h)]
    },

块的宽度即列宽,等于合成宽度除以列数;块的高度即行高,等于合成高度除以行数。为了避免不能整除得到的画面出现缝隙,我们都用 ceil() 方法对结果进行上舍。下面再来计算一下每一个块(单元格)在行中的位置:

7d1a99a76cb9c205f6ed0d6ee4fbdbb7.png

这里再一次用到了属性层级索引:

c8dd378606f3364ef8e161aab745f58e.png
 // 获取列的位置函数
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值