讲故事的手艺人 讲故事的手艺人
  • 创作向
    • 写作
      • 非虚构
      • 剧本
      • 小说
      • 文言
      • 读书
      • 随笔
    • 拍摄
      • 纪录片
      • 设计
      • 视频
      • 摄影
  • 策划向
    • 策划资料
    • 创意之道
    • 短视频研究
  • 技术向
    • AI
    • 前期拍摄
    • 后期制作
    • 原创教程
    • 影像实验
    • 影像设备
    • 穿越机
  • 艺术向
    • 研究学习
    • 大师镜头
    • 电影赏析
    • 视频论文
    • 经验总结
  • 注册
  • 登录
首页 › 技术向 › 原创教程 › AE表达式|文字滚动效果的修改和升级——取模运算实现循环效果

AE表达式|文字滚动效果的修改和升级——取模运算实现循环效果

向安宇
2019-01-22 16:56:43原创教程阅读 6,059

之前弄过一个文字滚动的效果,时间久远,都不记得当时怎么弄的了。感谢曾能鼎同学提出来这个方法有bug,所以重新尝试下这个效果。

效果预览:
AE表达式|文字滚动效果的修改和升级——取模运算实现循环效果-讲故事的手艺人

新建文字层,命名为sourceText,关掉显示,给Source Text添加:

"文 字 滚 动 效 果"

(每个字之间有空格)

再次新建文字层,命名为“text”,给Source Text添加表达式:

t = thisComp.layer("sourceText").text.sourceText; 
s = t.split(" ");

这是调取"文 字 滚 动 效 果",然后以空格为依据将其分解,并组成数列[“文”、“字”、“滚”、“动”、“效”、“果”]

我们知道,在这个数列中,“文”的索引是0,“字”的索引是1, …… ,“果”的索引是5 。

利用数列调取的方法,可以知道,s[0]为“文”, s[1]为“字” , …… ,s[5]为“果” 。

引入一个变量n,如果n能够在0~5之间循环,那么s[n]就可以实现从“文”到“果”的滚动了。

怎样实现呢?

可以利用求余运算,% 。

n = Math.floor(time)%s.length

AE里的时间有小数点后的值,这里须用数字作为索引,所以先要用“Math.floor()”取整,然后调取数列s的长度,这个例子里,数列里有6个值,长度为6。这样就可以得到0~5的循环,s[n]就是从数列中第一个值开始,往后依次调取,并以此循环。

加快变化的速度,需要在time后乘以一个数。为方便控制,给名为“sourceText”的文字层添加一个slider control,并命名为freq,将上面表达式改为:

freq = thisComp.layer("sourceText").effect("freq")("Slider");
t = thisComp.layer("sourceText").text.sourceText;  
s = t.split(" ");  
n = Math.floor(time*freq)%s.length;

s[n]

freq暂时设为4 。

再增加一个滑块控制,命名为spacrY,给文字层“text”的y轴添加表达式:

spaceY = thisComp.layer("sourceText").effect("spaceY")("Slider");
x = transform.position[0];
y = transform.position[1] - spaceY*index;

[x,y]

spaceY暂时设为8 。

command/ctrl + D 复制“text”,得到这样效果:
AE表达式|文字滚动效果的修改和升级——取模运算实现循环效果-讲故事的手艺人

所有层都是从s[0]开始,往后循环,这并不是我们要的效果。

我们希望的是复制出来的层能够错开,也就是:
一层从0开始:0、1、2、3、4、5
一层从1开始:1、2、3、4、5、0
一层从2开始:2、3、4、5、0、1
…………
依此类推。

那么怎么才能实现呢?

让每次复制出来的层有变化,就需要调取图层的索引,也就是加入index

如果给n加上index,就能够产生变化。但是我们发现,索引为2的层,数列的循环索引变成了:

2、3、4、5、6、7、2、3、4、5、6、7、2、3……

然而我们这个例子里,数列只有6个值,索引最多到5,当取值到s[6]、s[7]的时候AE就会报错,因为数列里并不存在索引为6或7的值。(这也是之前老办法的bug所在)

修正到方法就是加上一个条件判断:

j = n + index;
if(j <= s.length -1){
	f = j;
}else{
	f = j - s.length;
}

s[f]

也就是超过5的时候减去6,这样索引循环变成了:

2、3、4、5、6-6=0、7-6=1、2、3、4、5、6-6=0、7-6=1、2、3……

也就是变成了从2开始的0~5的循环。

index为3的时候,就成了:

3、4、5、6-6=0、7-6=1、8-6=2、3、4、5、6-6=0、7-6=1、8-6=2、3……

也就是从3开始的0~5的循环。

复制图层,就得到每复制一层,刚好错开一个字的效果。

这里还有一个问题,当复制图层过多,index超过数列长度的时候,也会报错,所以index值在这里也要有循环,还是利用求余运算:

freq = thisComp.layer("sourceText").effect("freq")("Slider");
t = thisComp.layer("sourceText").text.sourceText;  
s = t.split(" ");  
n = Math.floor(time*freq)%s.length;
j = n + index%s.length;
if(j <= s.length -1){
	f = j;
}else{
	f = j - s.length;
}

s[f]

也就是复制出来的图层:
index为6时,j = n + 0;
index为7时,j = n + 1;
index为8时,j = n + 2;
index为9时,j = n + 3;
index为10时,j = n + 4;
……
形成循环。

这样,无论复制多少层,都是没有问题的。

AE表达式|文字滚动效果的修改和升级——取模运算实现循环效果-讲故事的手艺人

截取其中一帧可以看到,图层之间,刚好错开一个字:
AE表达式|文字滚动效果的修改和升级——取模运算实现循环效果-讲故事的手艺人
这样,实现了横向的滚动,以及纵向的滚动。

替换掉文字,就能得到本文开头位置“效果预览”里的效果了。

AE AE表达式
赞赏 赞(11) 收藏(1)
本文系作者 @向安宇 原创发布在 讲故事的手艺人。未经许可,禁止转载。
厨房专用手机座子
上一篇
紫光檀、大红酸枝和樟木制作一个耳机托架,单兵摄影必备
下一篇

请登录以参与评论

现在登录
所有评论(3)
  • 拿勺儿上北极

    复杂到头晕..

    5年前 湖北省 回复
  • 1585888313528

    s = t.split("\r");之前滚动教程中用的"\r" 表示依据换行符分割字符串储存为阵列单位。键入这个表达式以后。把文本对象替换成了带换行的文本。但是程序提示表达式错误。试了很久也不知道是哪里出错。想请教一下博主。

    5年前 福建省 回复
    • 向安宇

      @1585888313528: 你试一下 \n 或者 〈br/〉( “〈”和“〉”改成英文)。新版的AE表达式引擎变了,这片文章中的表达式在新版ae中也报错,暂时未找到原因。

      5年前 上海市 回复
标签
720全景 ACES AE AE案例 AE表达式 Anyu翻译 CSC电影学院 fusion Hackintosh MG动画 ps教程 vlog wordpress 创意方法 剪辑 字幕 帧影帧画 抖音 摄影 文案 混剪 混音 灯光 看电影 磨皮 穿越机 纪录片 编剧 美术 美食 論語 调度 调色 达芬奇 重讀文學史 青玉记
室内360全景图的简单修图
2020-10-13 21:51:45
2,691 0 0
达芬奇:高频锐化
2020-03-21 22:41:26
3,878 0 3
3、ISO
2019-11-06 21:54:32
1,754 0 0
2、光圈和景深
2019-11-03 17:10:31
1,756 0 2
3 11 1
  • 11
  • 3
关于我:

想要读万卷书,行万里路,看万部电影。当过人民教师,做过策划师,入行影视做剪辑、导演。艺术是目的,技术是支撑,不断钻研,积聚梦想,同时分享干货。

推荐栏目:
视频论文 原创教程 后期制作 非虚构 照片 视频
特色专题:
专题汇总 宜看一侃 帧影帧画 美食摄影 重读文学史 青玉记
Copyright © 2016-2025 讲故事的手艺人. 鄂ICP备16005400号-1 鄂公网安备42050602000017号
  • 创作向
    • 写作
    • 拍摄
  • 策划向
    • 策划资料
    • 创意之道
    • 短视频研究
  • 技术向
    • AI
    • 前期拍摄
    • 后期制作
    • 原创教程
    • 影像实验
    • 影像设备
    • 穿越机
  • 艺术向
    • 研究学习
    • 大师镜头
    • 电影赏析
    • 视频论文
    • 经验总结
# 剪辑 # # 转场 # # 纪录片 #
向安宇
痴迷文字,醉心影像
420
文章
5
评论
325
喜欢