【AE动画表达式】一些常用的动画代码

本文介绍了如何通过JavaScript控制动画参数,如透明度、弹性缩放和位移,以及利用AI简化动画制作过程。实例展示了如何编写代码来实现规律性透明度变化、弹性效果和文字翻转动画。
摘要由CSDN通过智能技术生成

动画原理我们就不再讲了!

添加代码的办法,按住Alt键不松手,左键点中某属性的关键帧即可在时间轴看到输入代码的地方

1.让一个参数规律的变大变小

(比如透明、发光等,可以控制任何参数)

 

var freq = 2; // 频率,控制每秒循环次数
var amplitude = 100; // 幅度,控制透明度变化的最大值(100%)
var offset = 50; // 偏移量,调整动画开始时的透明度位置

opacity = Math.abs(Math.sin(time * freq * 360) * amplitude / 100) + (100 - amplitude);

// 如果需要从50%初始透明度开始,并且只在0-100%范围内变化:
opacity = 80 + 5 * Math.sin(time * freq * 360 + offset) * amplitude / 100;

下面这个实现了规律性闪烁透明度 

var freq = 0.5; // 频率,控制每秒循环次数
var amplitude = 100; // 幅度,控制透明度变化的最大值(100%)
var offset = 80; // 偏移量,调整动画开始时的透明度位置
 
opacity = Math.abs(Math.sin(time * freq * 360) * amplitude / 100) + (100 - amplitude);
 
// 如果需要从50%初始透明度开始,并且只在0-100%范围内变化:
opacity = 50 +20 * Math.sin(time * freq * 360 + offset) * amplitude / 100;

2.这个代码实现了弹性缩放

rate = 700;
rampDur = value[0]/rate;
freq = 2;
decay = 8;
w = freq*Math.PI*2;


  if (time < (inPoint + rampDur)){
    s = linear(time,inPoint,inPoint+rampDur,0,value[0]);
  }else{
    t = time - (inPoint+rampDur);
    s = value[0] + rate*Math.sin(t*w)/Math.exp(t*decay)/w;
  }

[s,s]

3.弹性左右晃动表达式

下面的代码放在position 属性上即可

3.1 持续不停晃动,间隔性晃动

var amplitude = 100; // 晃动幅度(可调整)
var frequency = 2; // 摆动频率(单位为Hz,可调整)
var duration = 4; // 动画总持续时间(秒,可调整)
var centerX = thisComp.layer(thisLayer.index).transform.position[0]; // 图层初始X位置
var centerY = thisComp.layer(thisLayer.index).transform.position[1]; // 图层初始Y位置

// 获取当前时间相对于动画开始的时间偏移量,并始终将其限制在[0, duration)区间内
var relativeTime = Math.max(0, time % duration);

// 计算波动效果并应用衰减因子
var waveMotion = amplitude * Math.sin(2 * Math.PI * frequency * relativeTime);
var decay = Math.pow(0.01, (relativeTime / duration)); // 衰减率可以根据实际情况调整
waveMotion *= decay;

// 应用摆动效果到X轴位置,保持Y轴位置不变
thisLayer.transform.position = [centerX + waveMotion, centerY];

 3.2 只晃动一次

4.在设置好的关键帧基础上,让动画循环播放

首先需要我们手动设置好动画关键帧,最后时3帧

 然后按住Alt 键盘,添加表达式,输入下面一句话。

loopOut(type = "cycle", numKeyframes = 0)

 

AI

但是,AI的时代,一切都变得简单!解决方案当然是AI!

我正在用AE做动画,请你给我写一段嚷一个文字弹性翻转过来并慢慢停下的表达式代码

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
中缀表达式转后缀表达式是一种常用的算法,也称为逆波兰表达式。下面我将以动画的形式展示中缀表达式转后缀表达式的过程。 首先,让我们来看一个例子:中缀表达式 "3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3"。 步骤1:创建一个空的栈和一个空的输出队列。我们将使用栈来保存操作符,并且输出队列将保存后缀表达式。 步骤2:从左到右遍历中缀表达式的每个元素: - 如果遇到操作数(数字),直接将其添加到输出队列中。 - 如果遇到左括号 '(',将其压入栈中。 - 如果遇到右括号 ')',则将栈中的操作符弹出并添加到输出队列中,直到遇到左括号为止。 - 如果遇到操作符,先判断栈顶操作符的优先级: - 如果栈顶操作符的优先级大于当前操作符的优先级,将栈顶操作符弹出并添加到输出队列中,直到栈顶操作符的优先级小于或等于当前操作符的优先级。 - 最后,将当前操作符压入栈中。 步骤3:重复步骤2,直到处理完所有的输入元素。 步骤4:将栈中剩余的操作符依次弹出并添加到输出队列中。 最后,输出队列中的元素就是转换后的后缀表达式。 现在,让我们来观察一个实际的动画演示来理解这个过程。请点击以下链接查看动画演示: [中缀表达式转后缀表达式动画演示](https://www.cs.usfca.edu/~galles/visualization/StackArray.html) 希望这个动画演示能帮助你更好地理解中缀表达式转后缀表达式的过程!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unity3d青子

难题的解决使成本节约,求打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值