Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

roundhead/tcaxLearn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

3 Commits

Repository files navigation

TCAX 教程

说是教程,其实也就是按照方便学习的顺序总结了一下milkyjing大神(TCAX的作者)写的各种文档教程。

TCAX 的基本原理

使用ass/ssa 做字幕特效时,可以按句为单位添加各种效果,包括模糊,变换,位移,透明等。 这里 有一份ass/ssa 的命令说明。然而仅靠 这些命令完成一些复杂的特效会过于麻烦,这就是为啥需要TCAX。

TCAX所做的事情很简单。它读入字幕文件(需要有卡拉ok轴),对于卡拉ok的每一个单字,运行一个 python脚本来生成相应动画效果的ass代码。我们可以通过编辑这个python 脚本来控制特效。TCAX可 以为我们的python脚本提供各种相应的数据,包括

_i		 #第_i句, 即当前操作的文字所在的句子序号
_j		 #第_i句中的第_j个文字, 即当前操作文字在该行中的序号
_n		 #第_i句中有_n个文字, 即当前句子所包含的文字数
_start	#句子的开始时间, 单位为10毫秒
_end		#句子的结束时间, 单位为10毫秒
_elapk	#到第_j个字经过的时间, _start + _elapk 到 _start + _elapk + _k 即为当前文字的存在时间, 单位为10毫秒
_k		 #第_j个文字的卡拉OK时间, 单位为10毫秒
_x		 #第_j个文字的水平坐标
_y		 #第_j个文字的垂直坐标
_a		 #第_j个文字的水平跨距, 可以看作文字的宽度, 同样_Fs也可近似看成文字的高度
_txt		#第_j个文字的内容

比如要实现一句的每个字依次出现,只要把出场时间设置在_start+dt*_j 即可。(这里 的dt是两个字之间的时间差,可以随意调整)。

TCAX 安装

首先需要安装一些外部依赖:点我

其中4我用的是k-lite。根据我的经验,要正常播放avs似乎要先安装k-lite然后再安装avsynth。

TCAX本体在这里下载。

另外windows下编辑python脚本文件的工具,我虽然一直用Emeditor, 不过还是要推荐一下atom

初学教程

这里 有一个很好的初级教程, 照着做一做,尝试用一用各种内置特效,可以快速帮助理解TCAX可以做什么。关于该教程提供的实例, 这里附上一些说明:

  • preview.avs 是一个avs文件,可以用任何文本编辑器编辑。avs是avsynth文件的扩展名, 它可以用来处理视频。好处是所有的视频处理流程(缩放,裁剪,滤镜)都是用命令语句完成的,因此 一劳永逸。

    压制不都是要写AVS的吗 by 某驴

    我们这里的这个avs其实只做两件事,一是载入显示ass字幕需要的滤镜,二是载入对 应的影片和字幕。 为了载入滤镜,你需要修改一下preview.avs 文件并将 LoadPlugin 里的地址改成TCAX安装地址。 另外实际做字幕的时候有一些很有用的avs语句,可以在没视频的 时候用一个空白的视频冒充,或者缩放原视频测试字幕在不同分辨率下的效果。(未完待续,之后补充)

  • test.tcc TCAX的主要文件之一,用来告诉TCAX要用读取哪个文件作为卡拉OK轴,使用哪个 python文件作为脚本,还有输出字幕的字体,位置,大小等。

  • test_k.ass 卡拉ok轴,关于如何有效的拉卡拉OK轴,我之后再单独解释。注意,卡拉OK轴 本身是个ass字幕文件,但是它除了时间之外的所有东西都会被忽略,也就是说在这里设置字体,位置, 颜色都是没用的。

这个教程使用的全是内置特效,也就是TCAX实现提供的一些python脚本。学会了这个就可以接着愉快的 学习如何自己写python脚本辣!

进阶-如何给TCAX写python脚本

python 是一种简单易学的脚本语言。

python并不难学过如果仅仅是为了TCAX的话,多改改样例的python脚本就可以大致掌握需要的 知识了(?)(等我有空补充一点简单的python知识)

这里是TCAX作者给出的一个 样例。(猫神八百万= =)以Nekogami_OP.py为例,49行以前可以不用动,后面则是特效的主要部分

  • 49到51 测试是奇数行还是偶数行,给他们设置不同的位置,来实现双行字幕的效果。
  • 55到66和69到79行分别是偶数行和奇数行的进入和淡出效果。以55-66为例:
    • 55-58行计算了单个字的进入和消失效果的关键时间点。t0到t1是进入效果持续的时间段, t2-t3是消失效果持续的时间段。注意这个关键时间点是以10毫秒为单位的,而后面具体动画效果 里涉及到的时间是以毫秒为单位的。
    • 60行描述了这个字进入的时候如何移动。
    • 61行描述了字在进入的时候大小和透明度如何变化(从1.5倍,alpha通道200变成1倍大小, alpha通道0,效果耗时500毫秒,加速度1.2)
    • 62行把上面两个效果实际应用到字上。
    • 64-66行类似。
  • 82行是存在效果,也就是进场之后,出场之前字的状态。
  • 87-95行是卡拉OK效果,也就是这个字被唱到时的效果,注意这里te和ts,效果的开始和结束时间 是怎么算出来的。因为和60-62行本质上是相同的,不多解释了。

我的建议是首先运行tcc文件,看看能不能生成可以观赏的字幕文件。如果可以的话,就随便改一改上面 提到的那些行。修改修改数字,删掉一部分等,看看会出现什么效果。

现在问题来了,如果想加入自己的特效怎么办呢?这里 有一个TCAX可以使用的函数总结,刚刚出现的fsalpha都在这里。这个网页有些过于 简洁了,好在这些函数基本和ass本来的命令同名,所以如果不清楚某个函数怎么用,可以参考本文一 开始提到的ass/ssa命令说明。

(之后补充一些主要会用到的函数)

TCAS-像素级字幕

上面的脚本运行后会给出一个很大的ass文件。然而如果有一些特别的需求,比如嵌入图片,给字加纹 理等,用ass实现就过于麻烦了。因此TCAX还有另一种输出方法,即TCAS。

TCAS的说明在此,然而这东西 有点难用,能不用还是不要用了吧。。。

(上面的链接蛮详细的,等我有空补充细节)

一些注意点

  • 表示绝对时间点的时间(包括\_k,\_start,\_end,\_elapk)都是以10毫 秒为单位的。但是animationmove系列的函数里时间用的是毫秒为单位。这个似乎和ass里面对应位置 的时间单位有关。

  • 彩虹效果如何实现?彩虹渐变其实是在HSV空间里固定S和V,让H从0变到1。在TCAX里,每一行中(_j-1)/(_n-1) 这个量从左到右也是从0变到1,因为第一个字时_j=1,最后一个字时_j=_n。所以只要 从网上抄一个hsv到rgb色域转换的函数,然后给每个字算一下颜色就行啦!!

About

tcax 学习教程

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /