有学员问,为什么我的微电影片尾字幕往上滚动的时候会不停的抖动(或说闪动)。
大家知道,做视频时最小的呈像单位是像素。看下面这张图:
这是一个文字在y坐标分别是360,360.2,360.4,360.6,360.8时呈现的样子。可以看到仅仅相差零点几个像素,文字的显示就会有差别,实的部分和虚的部分就会不同。
再看下面这张图:
y坐标分别是361和360,坐标相差整数距离,文字的虚实部分是完全一样的。
在字幕滚动的时候,尤其是速度比较快时,文字的y坐标可能一会儿是整数一会儿是小数,所以文字的虚实部分很难保证始终一致,所以就会感觉有闪动。
========================
解决方法:
方法一:速度尽量要慢。速度慢下来文字的坐标可能是这样变化的:360, 359.1, 358.2, 357.3, 356.4。。。。。,这样变化就不会明显。如果速度快,坐标的变化可能是这样:360, 355.7, 350.2, 345.5, 340.1。。。。。。,这样虚实变化就会非常明显。
方法二:想办法让文字坐标的变化是整数。使用下面的表达式:
t = time/thisComp.frameDuration;//当前是第几帧
x = value[0];
s = 2;//速度,最好别改
y = value[1] - t*s;
[x, y]
这样文字就以每帧两个像素的速度移动。
这两个方法可以改善文字抖动的现象,但不可能完全不让文字抖动。因为目前电脑和软件的工作原理没法改变。
大家如果有别的好办法也欢迎提出来。
明狮交流群
明狮交流群