如何用javascript实现AE内文字图层的打字特效,文字图层包含标题和正文,正文的每句话的出现时间可以自行控制

在Adobe After Effects中实现打字特效,通常会通过使用 Text Animator 和一些 Expressions 来控制文字的逐字出现。你提到希望通过 JavaScript 来控制 AE 内的文字图层,且能够为正文中的每句话设置不同的出现时间。这个需求实际上是通过 After Effects 中的 ExpressionsKeyframe 来实现的,而不是真正的 JavaScript,虽然它们在 AE 中的脚本语言中有些相似。

以下是一个基本的思路,来实现你想要的打字特效,并根据每句话的出现时间进行控制:

1. 创建文字图层

首先,在 AE 中创建一个包含标题和正文的文字图层。你可以把标题和正文分成不同的文本层,方便控制。

2. 设置打字特效

AE 的 Text Animator 提供了一个 "Typewriter" 动画预设,可以让文字逐字出现。你可以利用这个功能和 Expressions 来控制每个句子的出现时间。

3. 使用 Text Animator 设置打字效果

在文字图层中:

  1. 选择文字图层,点击 Animate > Opacity,然后选择 Typewriter 预设(这会在 Animator 1 中添加一个 Range Selector,并应用打字效果)。
  2. 选择 Range Selector,你会看到有一个 StartEnd 的属性,默认会控制打字的进度。

4. 控制每句话的打字时间

为了让正文中的每句话有不同的打字时间,你需要使用 Expressions 来控制 Range SelectorStartEnd 属性,或者通过在时间轴上关键帧来实现。

下面是一个基于时间控制每句话打字效果的表达式:

Expression 示例:

总结:

通过组合 Text AnimatorExpressions 和时间轴控制,你可以创建一个非常灵活的打字效果,并为每句话设置不同的出现时间。上面的表达式只是一个基本示范,具体的实现可以根据你的需求进行进一步的调整和优化。

5. 优化效果

通过使用 linear() 函数,我们将时间范围映射到 0 到 100 之间,以控制打字的进度。通过调整 sentenceStartTimessentenceDurations 数组的值,你可以自由地控制每个句子的打字出现时间。

6. 调整其他属性

你还可以根据需要调整其他属性,比如文字的颜色、字体、大小等,来增加打字效果的视觉表现。

  1. 打字效果时间控制StartEnd 属性上,你可以添加一个表达式来控制每个句子的出现时间。例如:
    // 设置句子的开始时间和持续时间
    var sentenceStartTimes = [0, 3, 6, 9];  // 每句话的开始时间(秒)
    var sentenceDurations = [2, 2, 2, 2];   // 每句话的持续时间(秒)
    
    var index = 0;
    for (var i = 0; i < sentenceStartTimes.length; i++) {
        if (time >= sentenceStartTimes[i] && time < sentenceStartTimes[i] + sentenceDurations[i]) {
            index = i;
        }
    }
    
    var sentenceStart = sentenceStartTimes[index];
    var sentenceDuration = sentenceDurations[index];
    
    var progress = linear(time, sentenceStart, sentenceStart + sentenceDuration, 0, 100);
    progress
    
    解释:
  2. sentenceStartTimes 数组中是每个句子的开始时间(以秒为单位)。
  3. sentenceDurations 数组中是每个句子的持续时间(以秒为单位)。
  4. 这个表达式会根据当前时间 time 来判断应该显示哪个句子,然后根据句子持续的时间,逐步控制每个句子的打字进度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值