大家知道,做视频时最小的呈像单位是像素。文字的坐标如果始终处于整数位,那么它的虚实部分就会保持一致。
如下图,两个文字Y坐标相差一个像素:
当一个文字的Y坐标相差零点几个像素,文字的显示就会有差别,实的部分和虚的部分就会不同。如下图,Y坐标相差零点二个像素:
在字幕滚动的时候,尤其是速度比较快时,文字的y坐标可能一会儿是整数一会儿是小数,所以文字的虚实部分很难保证始终一致,所以就会感觉有闪动。
解决方法:
方法一:速度尽量要慢。速度慢下来文字的坐标在小数部分就不会变化很快,可能每一帧小数就相差零点一、零点二这样,文字的虚实变化就不会明显。如果速度快,坐标小数位的变化会比较大,这样虚实变化就会非常明显。
方法二:想办法让文字坐标的变化是整数。使用下面的表达式:
t = time/thisComp.frameDuration;//当前是第几帧
x = value[0];
s = 2;//速度,最好别改
y = value[1] - t*s;
[x, y]
这样文字就以每帧两个像素的速度移动。
这两个方法可以改善文字抖动的现象,但不可能完全不让文字抖动。因为目前电脑和软件的工作原理没法改变。
大家如果有别的好办法也欢迎提出来。
如下图,两个文字Y坐标相差一个像素:
当一个文字的Y坐标相差零点几个像素,文字的显示就会有差别,实的部分和虚的部分就会不同。如下图,Y坐标相差零点二个像素:
在字幕滚动的时候,尤其是速度比较快时,文字的y坐标可能一会儿是整数一会儿是小数,所以文字的虚实部分很难保证始终一致,所以就会感觉有闪动。
解决方法:
方法一:速度尽量要慢。速度慢下来文字的坐标在小数部分就不会变化很快,可能每一帧小数就相差零点一、零点二这样,文字的虚实变化就不会明显。如果速度快,坐标小数位的变化会比较大,这样虚实变化就会非常明显。
方法二:想办法让文字坐标的变化是整数。使用下面的表达式:
t = time/thisComp.frameDuration;//当前是第几帧
x = value[0];
s = 2;//速度,最好别改
y = value[1] - t*s;
[x, y]
这样文字就以每帧两个像素的速度移动。
这两个方法可以改善文字抖动的现象,但不可能完全不让文字抖动。因为目前电脑和软件的工作原理没法改变。
大家如果有别的好办法也欢迎提出来。