TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua

 找回密码
 加入社区
查看: 3525|回复: 15

TCAX进阶教程(一) [复制链接]

正式会员

妖木

Rank: 4

发表于 2014-4-23 23:22:14 |显示全部楼层
本帖最后由 mzlmcx 于 2014-4-24 00:08 编辑

这次讲tcax的进阶教程,没错,就是你们所期待的怎么样写xx.py,这次将通过实例一点点讲解各个组成部分,如何放在一起形成各种不同的特效。请适当学习一点python语言,可以有助于你更好的看懂此教程!!!

TCAX教程 2.rar (454.64 KB, 下载次数: 722)

多谢疯子亲晚上给我文档排班 ,太感谢咯


全部弄完之后发现没有写AVS应该怎么样写脚本,怎么样预览……简直了~~
总之,我觉得放aegisub里看更快一点的说
4

查看全部评分

正式会员

妖木

Rank: 4

发表于 2014-4-23 23:24:50 |显示全部楼层
首先,请先下载一下下面这个PY脚本编辑工具:
Python脚本编辑工具 Notepad2
http://www.tcax.org/forum.php?mo ... &extra=page%3D2

这个脚本工具怎么用,你通过打开一个PY脚本自己琢磨吧……

其次,想做特效,那么请问一下你们ASS特效代码都记清楚了么??请人手一份随时观看,这是写特效最基本的!!下载地址在上面有说,自己去翻。

既然开始讲PY脚本了,那么我想先问下,你们懂得PY脚本的使用么……在群里经常看到你们问一些prase以后,没有字幕出现或者只有字幕没有特效等的问题。
Py特效分五种:进入效果;存在特效;表现特效,消失特效和附加特效
也就是说,比如某一句特效,它首先要有进入的效果(时间),然后再表现出存在的效果(时间),然后字幕消退的效果(时间),这个字幕特效才是完整的;表现效果是指你想让这句字幕呈现出怎么样的效果,如字体,边框,颜色等,而附加效果是指字幕周围出现什么的效果,比如星星,闪烁等……
进入特效:IN--in
存在特效:MAIN--main
表现特效:EFT--eft
消失特效:OUT--out
附加特效:EXT--ext
(英文单词请记住啊,接下来写PY也有用的)
例如:
你在一个TCC文件里面写的是
①< py file = !in_009.py >    < beg line = 1 >    < end line = 0 >
这个PY有进入的效果,所以字幕是显示的,但是只有进入时间的一点特效,所以还需要加上存在时间的特效等;具体情况请自行prase以后查看
②< py file = !ext_009.py >    < beg line = 1 >    < end line = 0 >
这个py只有附加的效果,只呈现出附加效果(星星,shine等),不会有字幕显示
所以,如果你想让字幕呈现出合适的特效时,请加入字幕的效果和附加的效果两种(当然只有字幕效果也是可以的)。
当然,TCC文件里面也有设置字体大小,颜色,边框等各种基本设置,这些设置如果在xx.py里面写有,外面可以不用设置,如果只是使用内置,可以在TCC里面设置。
TCC文件详细说明:
http://www.tcax.org/forum.php?mod=viewthread&tid=87


TCC文件里面,这个也请注意下,如果你写了两种特效效果,想分别在不同的字幕行数里显示,请牢记下面的两个使用方法。
< beg line = 1 >
# 该特效脚本所应用的起始行, 1表示从第一行开始生效, 0表示最后一行, -n表示倒数第n+1行
< end line = 0 >
# 该特效脚本所应用的结束行, 0表示到最后一行一直有效

以上是xx.py的使用技巧,如果还有什么问题的话,可以在论坛提出或者群里询问下其他的大神;接下来就是讲述怎么样写xx.py脚本

正式会员

妖木

Rank: 4

发表于 2014-4-23 23:34:38 |显示全部楼层
本帖最后由 mzlmcx 于 2014-4-23 23:35 编辑

编写XX.PY脚本
首先,打开tcax的EXE程序, 1.jpg


新建一个PY脚本,填2按回车,然后填写想要的filename.py
然后用NOTE打开这个py脚本, 2.jpg


第1行必须存在,第4行存在,第10-19行可pass。
第22行必须存在,分两种:
①def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):
②def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a ,_txt):
可根据自己的编写特点使用。
第24行必须存在,25行可pass(当使用tcas特效时使用)
第30行必须存在(这个才是写作重点,通过ass_main()编写各种特效)
第34行必须存在,通过return才可运行编写的特效
##### 脚本主函数, 会对每个文字执行一次 #####
# _i                第_i句, 即当前操作的文字所在的句子序号
# _j                第_i句中的第_j个文字, 即当前操作文字的序号
# _n                第_i句中有_n个文字, 即当前句子所包含的文字数
# _start/_BT        句子的开始时间
# _end/_ET                句子的结束时间
# _elapk/_SK        到第_j个字经过的时间, _start + _elapk 到 _start + _elapk + _k 即为当前文字的存在时间
# _k/_KT                第_j个文字的卡拉OK时间
# _x/_X                第_j个文字的水平坐标
# _y/_Y                第_j个文字的垂直坐标
# _a/_A                第_j个文字的水平跨距, 可以看作文字的宽度, 同样_Fs也可近似看成文字的高度
# _txt/_TXT                第_j个文字的内容

请把以上的意思搞懂,才能对整体的字幕制作和K值的字幕制作有自己的意识!!属于重点项目!!

正式会员

妖木

Rank: 4

发表于 2014-4-23 23:38:47 |显示全部楼层
本帖最后由 mzlmcx 于 2014-4-23 23:39 编辑

http://www.tcax.org/forum.php?mod=viewthread&tid=17
以这个里面的例子为例: 3.jpg


第9行后接的:
    ##### 声明全局变量 #####
    global _Fs                        # 字体大小
    global _TextAdvDiff         # 文字的坐标定位偏移量
    global _TextLength                # 一句歌词的文字长度
    global _ResolutionY         # 垂直分辨率
    global _OffsetY             # 垂直边距
属于变量,当你写的py效果里面有这些相关的变量时,须在Init这里注明
    ##### 获取预定义的值 #####

    _Fs           = GetVal(val_FontSize)
    _TextAdvDiff  = GetVal(val_TextAdvanceDiff)
    _TextLength   = GetVal(val_TextLength)
    _ResolutionY  = GetVal(val_ResolutionY)
  _OffsetY      = GetVal(val_OffsetY)
4.jpg
  

上面这些val_FontSize等来自TCAX程序文件夹里的tcaxPy.py
可参照一下,可能对于新手来说实在太多,看不懂,所以,这个可pass。


5.jpg

特效字幕由上面所说的五个效果组成。

正式会员

妖木

Rank: 4

发表于 2014-4-23 23:42:39 |显示全部楼层
本帖最后由 mzlmcx 于 2014-4-23 23:44 编辑

Py编写操作
6.jpg

上面这个是我创建的一个PY,我把16行下面的TCAS_BUF=[ ] 去掉了,相对应的是我把27行的return(ASS_BUF,TCAS_BUF)变成了return(ASS_BUF,None)来执行。
接下来就是22-24行的编写操作,首先注意的是ass_main由(ASS_BUF,SubL(时间),特效代码,_txt)组成,SubL里面的时间点请写对,自己算好出入时间来对应;特效代码里面可以写pos,move,color,be,fad,frs(x/y/z),bord,blur等,能够随意结合,接着就是_txt,也就是字幕的意思。
我上面写的时间点随意填写,pos也是随意填写,你们可以看下效果
7.jpg

因为时间点对不上,pos等的关系,可以看出很不美观
当我把时间点和pos对应的改了一下后prase可以发现
8.jpg

这样看起来就比较和谐一些。
pos(_X+randint(-3,3),_Y+randint(-3,3))
还可以加入randint使用,上面这个表示在randint(-3,3)直接随意取值,你们可以自己prase一下。(PS: randint(a,b),a必须小于b,否则会报错。
同样,可以move(_X+randint(-20,20),_Y-30,_X+randint(-20,20),_Y+30)等
例:pos(_X,_Y+30)+frx(78)+alpha1(255)+alpha3(0)+be(1)+color3("CCCCCC")
上面这句加入了frx,alpha,be等,alpha1等于主要字体的透明度,alpha3等于边框透明度,color也是同样的用法。
例:Color = ("BF4E2E", "E6BD2D", "E6D728","F4650E", "DADB84")
color1(Color[randint(0,3)])+color3(Color[randint(1,4)])
主字幕颜色在前四种颜色中选,边框颜色在后四种颜色中选
例:t1(0,_KT*10,fscx(100)+fscy(100)+bord(6))+fad(0,400)
PS:tcax时间计量与aegisub不同,tcax以十毫秒为单位,aegisub以一毫秒为单位,当生成ass脚本时,要有一个时间的装换,所以_KT要乘10,这样是一个完整的K时间。)
运用了t和bord,fad的用法,跟ass代码使用是相同的。

正式会员

妖木

Rank: 4

发表于 2014-4-23 23:48:22 |显示全部楼层
如果想要加一些樱花啊,小图形之类的,那么就把ass_main后面的_txt改为矢量图的表现形式,例如:
9.jpg

加了一句矢量图的句子,得到下面这个字幕,可以看出心形的樱花
10.jpg

但是一点都不美观,而且是在字幕上面出现的,把字幕都挡住了
11.jpg

于是,我再加入两句话,前面有讲j的含义:第_i句中的第_j个文字, 即当前操作文字的序号,因为在这句话中我们是以樱花矢量图为操作文字的,所以,我们增加一句for j in range(0,10):表示把这片樱花随意增加复数,然后加入fsc,frz和move,color,randint等,使其旋转,移动,再加上樱花瓣的颜色,特效出来就觉得立马就不一样了
12.jpg

这里出现了range,for...in,等新词语,
可以从这几个句子中表现出,
for i in range(_BT+_SK-20,_BT+_SK+_KT,30):
for j in range(2):
for k in range(3):
表达句子的i,表达句子中的单个文字j,和表达K值的k
使用同上~~

然后if,elif,else这三个词语
13.jpg

简单点说,就是
多分支选择结构
If
Elif
Elif
.......
Else

小明考试分数
>90 优秀
80-90之间 良好
70-80之间 中等
70以下    差

也就是说第一句字幕,特效这样①
第二句字幕,特效这样②
……
其余的字幕,特效这样③
值得注意,如果使用if,for...in等词语,需空四格……
例: 14.jpg

可以看红点,分别都是4的倍数。

正式会员

妖木

Rank: 4

发表于 2014-4-23 23:56:24 |显示全部楼层
接下来是内置特效的构成,你们可以通过改内置特效的基本设置换一些颜色啊等

【辅助】TCAX内置py脚本中文详细注释版

http://www.tcax.org/forum.php?mo ... &extra=page%3D1
@爱萌就要控
这个帖子非常详细的说明了内置特效的各个参数的含义

如果通过我上面的讲解,你们能够明白的话,绝对可以写得出简单的内置特效效果

TCAX内置特效脚本编写规范
http://www.tcax.org/forum.php?mod=viewthread&tid=64
这个帖子讲述内置特效的规范,并且把各个内置特效的脚本都罗列了出来供大家围观,还是老话,多看看各位大神的脚本,多prase一些脚本,你绝对会豁然开朗的!!!

至此,进阶教程讲述完毕,分别通过讲py怎么用, 特效脚本构成,特效脚本怎么写 (特效脚本中用了哪些py语法, ass特效代码)等,来帮助你们理解tcax。

我写的是非常啰嗦没错啦,但是这些都是我自己学习tcax的重要点,尽量写出来给你们少走弯路,能看的下去就看,看不下去就算了。

接下来有空的话就写粒子,fad流,cilp,jump,圆函数等吧……有生之年系列,我觉得!!



唔,然后给大家看个例子,就能明白我之前所有讲的一切了吧,挺有趣的
{L[NZ}I3G2}TONPVBU4@7}O.jpg
E)88$`0P%V]J3O)N2MR{J~Q.jpg
HHLDR{B0%Q`GK4IAFKO%K2V.jpg

同样都是一个"●"的矢量图,但是写出的效果都不一样,所以,我只是想说明,不同的组合出的效果也是多种多样的啊!!!


Moderator

疯子

Rank: 5Rank: 5

发表于 2014-4-24 00:00:29 |显示全部楼层
我来第一个支持,哈哈哈,沙发是我的

Rank: 4

发表于 2014-4-24 08:48:25 |显示全部楼层
终于有新教程了

Rank: 4

发表于 2014-4-24 09:05:49 |显示全部楼层
逼逼姐好厉害 写这么长的教程 请务必收下我的膝盖

Rank: 4

发表于 2014-4-24 17:17:35 |显示全部楼层
新人表示感谢!期待有生之年系列~

Rank: 5Rank: 5

发表于 2014-4-26 10:50:38 |显示全部楼层
哔哔姐雄起~~~~~
请受小弟一拜

Rank: 4

发表于 2014-12-11 16:41:36 |显示全部楼层
谢谢楼主大大分享!努力学习中~

Rank: 6Rank: 6

发表于 2016-1-26 11:21:32 |显示全部楼层
才看见BB姐还写过这个

Rank: 4

发表于 2017-4-4 19:00:45 |显示全部楼层
谢谢楼主

Rank: 4

发表于 2018-3-8 16:33:53 |显示全部楼层
这个对现在的初学者来说还是蛮有用的!
您需要登录后才可以回帖 登录 | 加入社区

GitHub|TCAX 主页

GMT+8, 2018-10-23 18:42

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH