【TCAX模板】Little Busters! OP(单段版+两段版:中日双语特效)
注:以下两种方法(针对单段版脚本)最终生成的ASS字幕文本内容完全一致,本专栏单段版分内容的主要目的是给在TCAX视频教程到论坛内比较成熟的完整特效脚本之间的过渡学习上有障碍的初学者准备的。
github下载链接:
[Seek] Little Busters! OP(单段版+两段版:中日双语特效)
注:套用本文中的TCAX模板前请先将上述压缩包中的脚本解压到TCAX的文件目录下替换原先的tcaxPy.py脚本,因为原先的脚本无法正常生成粗体标签b0和b1。。。(:з」∠)
单段版(日文)
方法1:照着TCAX视频教程写出来的代码,具体参考了下面这几部分:
P5 19分50秒:这里有tcaxPy_Main函数各部分内容定义的中文说明
P8 10分36秒:这里开始讲TCAX的字幕生成时间的计算
P9 5分30秒:这里开始讲TCAX的字幕生成时间的计算
from tcaxPy import *def tcaxPy_Init():global _FD # frame duration, in millisecondglobal _Blur_FD = 1000 / GetVal(val_FXFPS)_Blur = GetVal(val_Blur)def tcaxPy_Fin():passdef tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):ASS_BUF = [] # used for saving ASS FX linesTCAS_BUF = [] # used for saving TCAS FX raw datats = _start + _j * 3 - 20te = _start + _elapkts2 = _start + _elapkte2 = _start + _elapk + _kts3 = _start + _elapk + _kte3 = _end - (_n - _j - 1) * 3 + 20EFT = pos(_x, _y) + color1('3767E6') + color3('FFFFFF') + blur(2) + fad(200,0)EFT2 = pos(_x, _y) + blur(2) + color1('3767E6') + color3('FFFFFF') + t(color1('FFFFFF') + color3('3767E6'))EFT3 = pos(_x, _y) + color1('FFFFFF') + color3('3767E6') + blur(2) + fad(0,200)if _Blur > 0:EFT += blur(_Blur)ass_main(ASS_BUF, SubL(ts, te), EFT, _txt) #入场特效 - start2sylass_main(ASS_BUF, SubL(ts2, te2), EFT2, _txt) #卡拉OK特效 - sylass_main(ASS_BUF, SubL(ts3, te3), EFT3, _txt) #退场特效 - syl2endreturn (ASS_BUF, TCAS_BUF)
复制代码
方法2:结合论坛内的完整特效脚本简化代码后的写法。
这里其实就是把方法1的ts、te、EFT等代码内容直接写进ass_main的SubL里面来了,各位朋友可以自行对比一下。
用过Aegisub的朋友对下面这种写法会比较熟悉,这里TCAX的SubL函数就相当于Aegisub的retime函数。
用Aegisub的说法来描述的话,方法1的代码相当于把时间参数单独列出来写在了Aegisub的code行,方法2则相当于把这些参数直接写在了Aegisub的template行中了,后续我可能会在我写的TCAX脚本中加上这样的注释,方便划分各个部分的代码:
-----tcax line-----(相当于Aegisub的ass模板中的-----code line-----,line是行的意思)
-----ass_main line-----(相当于Aegisub的ass模板中的-----template line-----,line是行的意思)
from tcaxPy import *def tcaxPy_Init():global _FD # frame duration, in millisecondglobal _Blur_FD = 1000 / GetVal(val_FXFPS)_Blur = GetVal(val_Blur)def tcaxPy_Fin():passdef tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):ASS_BUF = [] # used for saving ASS FX linesTCAS_BUF = [] # used for saving TCAS FX raw dataass_main(ASS_BUF, SubL(_start+_j*3-20,_start+_elapk), pos(_x,_y)+color1('3767E6')+color3('FFFFFF')+blur(2)+fad(200,0), _txt) #入场特效 - start2sylass_main(ASS_BUF, SubL(_start+_elapk,_start+_elapk+_k), pos(_x,_y)+blur(2)+color1('3767E6')+color3('FFFFFF')+t(color1('FFFFFF')+color3('3767E6')), _txt) #卡拉OK特效 - sylass_main(ASS_BUF, SubL(_start+_elapk+_k,_end-(_n-_j-1)*3+20), pos(_x,_y)+color1('FFFFFF')+color3('3767E6')+blur(2)+fad(0,200), _txt) #退场特效 - syl2endreturn (ASS_BUF, TCAS_BUF)
相关链接:
tcaxPy.pyc 模块函数说明
tcaxPy 脚本模板详解 (英文)
两段版(日文两段+中文单段)
方便起见这里就只贴一个脚本直接生成中日双语特效的脚本代码了,下面这段代码对应的K值ass、py脚本、tcc文件以及方便修改TCAX自动化后的ass字幕文件的V4+ Styles的文件头(如下图)都在1楼的那个压缩包里面了:
from tcaxPy import *def tcaxPy_Init():global _FD # frame duration, in millisecondglobal _Blur_FD = 1000 / GetVal(val_FXFPS)_Blur = GetVal(val_Blur)def tcaxPy_Fin():passdef tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):ASS_BUF = [] # used for saving ASS FX lines# ----------OPJP:K值换色----------if _i < 3: # (这里表示对K值行的第1~3行执行如下的TCAX自动化模板,因为_i从0开始计数,所以 if _i < 3 计算得到的_i的数值就是0~2,即对应K值行的第1~3行。)ass_main(ASS_BUF, SubL(_start+_j*3-20,_start+_elapk,0,'OPJP'), pos(_x,_y)+color1('3767E6')+color2('FFFFFF')+color3('3767E6')+b(1)+blur(2)+fad(200,0), _txt) #入场特效 - start2sylass_main(ASS_BUF, SubL(_start+_elapk,_start+_elapk+_k,0,'OPJP'), pos(_x,_y)+color1('FFFFFF')+color2('3767E6')+color3('3767E6')+b(1)+blur(2)+K(_k), _txt) #卡拉OK特效 - sylass_main(ASS_BUF, SubL(_start+_elapk+_k,_end-(_n-_j-1)*3+20,0,'OPJP'), pos(_x,_y)+color1('FFFFFF')+color2('3767E6')+color3('3767E6')+b(1)+blur(2)+fad(0,200), _txt) #退场特效 - syl2end# ----------OPJP2:主边换色----------if _i > 2 and _i < 9: # (这里表示对K值行的第4~9行的内容执行如下的TCAX自动化模板,因为_i从0开始计数,所以 if _i > 2 and _i < 9 计算得到的_i的数值就是3~8,即对应K值行的第4~9行。)ass_main(ASS_BUF, SubL(_start+_j*3-20,_start+_elapk,0,'OPJP2'), pos(_x,_y)+color1('3767E6')+color3('FFFFFF')+b(1)+blur(2)+fad(200,0), _txt) #入场特效 - start2sylass_main(ASS_BUF, SubL(_start+_elapk,_start+_elapk+_k,0,'OPJP2'), pos(_x,_y)+color1('3767E6')+color3('FFFFFF')+t(color1('FFFFFF')+color3('3767E6'))+b(1)+blur(2), _txt) #卡拉OK特效 - sylass_main(ASS_BUF, SubL(_start+_elapk+_k,_end-(_n-_j-1)*3+20,0,'OPJP2'), pos(_x,_y)+color1('FFFFFF')+color3('3767E6')+b(1)+blur(2)+fad(0,200), _txt) #退场特效 - syl2end# ----------OPCN----------if _i > 8: # (这里表示对K值行的第10~18行的内容执行如下的TCAX自动化模板,因为_i从0开始计数,所以 if _i > 8 计算得到的_i的数值就是9-17,即对应K值行的第10~18行。)ass_main(ASS_BUF, SubL(_start+_j*3-20,_end-(_n-_j-1)*3+20,0,'OPCN'), pos(_x,_y+993)+color1('FFFFFF')+color3('3767E6')+b(1)+blur(2)+fad(200,200)+fn('Source Han Serif SC'), _txt) #整体特效 - linereturn (ASS_BUF, None)
【TCAX模板】Little Busters! OP(单段版+两段版:中日双语特效)相关推荐
- 【TCAX相关】一键套用完整特效脚本制作中日双语特效的条件
本帖主要讲一键套用完整特效脚本制作中日双语特效需要满足的条件及套用方法,后续会在本帖基础上多做一些模板方便新人学习. 需要满足的条件 图1:TCC设置中为确保中日特效制作更方便而需要在字体名称上注意的 ...
- 『遥かに仰ぎ、丽しの』游戏初回版特典原声集 GAME SP OST(下载、中日双语歌词)...
记得苍月的结局音乐和内容一样很棒. 大师就给大家送上遥かに仰ぎ.丽しの GAME SP OST 本期策划:大师♂罗莊 翻译:天界白魔导 为什么网上已经有翻译,大师还要组织翻译歌词呢呢? 同学,这个翻译 ...
- 『遥かに仰ぎ、丽しの』游戏初回版特典原声集 GAME SP OST(下载、中日双语歌词)
记得苍月的结局音乐和内容一样很棒. 大师就给大家送上遥かに仰ぎ.丽しの GAME SP OST 本期策划:大师♂罗莊 翻译:天界白魔导 为什么网上已经有翻译,大师还要组织翻译歌词呢呢? 同学,这个翻译 ...
- 【TCAX模板】罪恶王冠 Guilty Crown OP2
最近复习了一下TCAX的用法,用夏天前辈分享的代码([附加效果] ext_fluf002)改了下配合彗星体中日匹配做了罪恶王冠OP2的特效,太久没人做动画这块的科幻风歌词特效了...(:з」∠) 另外 ...
- 例 9.14 声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。
C++程序设计(第三版) 谭浩强 例9.14 个人设计 例 9.14 声明一个类模板,利用它分别实现两个整数.浮点数和字符的比较,求出大数和小数. 代码块: 在类模板内部定义成员函数 #include ...
- 单一窗口关区备案_【干货】上海国际贸易单一窗口货物申报对接版(信天翁)“两段准入” 操作手册...
上海国际贸易单一窗口货物申报对接版 (信天翁)"两段准入" 操作手册 什么是"两段准入"? 2019年10月16日,海关总署发布<关于分段实施准入监管 加 ...
- 《Python Cookbook(第3版)中文版》——1.9 在两个字典中寻找相同点
本节书摘来自异步社区<Python Cookbook(第3版)中文版>一书中的第1章,第1.9节,作者[美]David Beazley , Brian K.Jones,陈舸 译,更多章节内 ...
- 非类型模板参数(参考《C++ Templates 英文版第二版》)
非类型模板参数(参考<C++ Templates 英文版第二版>) Chapter 3 3.1 非类型类模板参数 与前几章的简单例子不同,你也可以通过std::array实例化一个固定大小 ...
- Minecraft教育版——两个村庄的故事
主题概览: 几个世纪以来,村民和灾厄村民们都在同一片土地上生活,但彼此之间很少有往来. 而现在,您可以借助代码的力量,将两个村庄团结在一起.用户将体验到对友邻的同 理心与同情心,了解协作与包容的概念, ...
最新文章
- loadrunner 如何做关联
- 拉普拉斯平滑处理 Laplace Smoothing
- 拼图游戏 复制粘贴一个叫lemene的人的,这个人是c++博客的用户,我不是,怕以后找不到这篇文章,所以复制粘贴了。文中最后给出了原文链接连接...
- 浙大计算机知识基础,计算机基础知识题浙大远程
- 电脑安全注意事项_别墅装修设计注意事项 别墅装修的陷阱有哪些
- ubuntu下修改键位
- SpringBoot + Shiro 缓存记住密码
- Java IO之File
- Android定义的路径全局变量
- php 覆盖静态方法吗,覆盖PHP中的静态方法
- 手机上好用的java编译器_手机上好用的java编译器
- 呼叫中心系统功能其优势
- 【electron】window.require is not a function
- dubbo线程池exhausted
- Unity-Timeline制作动画(快来制作属于你的动画吧)
- 蓝牙耳机厂家畅谈ANC主动降噪耳机将引领蓝牙耳机市场趋势
- 基于matlab的齿轮,基于matlab的故障齿轮分析.doc
- 半年卖20亿,妙可蓝多是怎么将“奶酪”了吃进嘴里?
- ArcGIS 10 Desktop完全破解方法
- 【Linux初阶】操作系统概念与定位 | 操作系统管理硬件方法、系统调用和库函数概念
热门文章
- python开发前端后端区别_前端开发与后端开发有什么区别?
- [Java练习]求一个数的阶乘,并在此基础上求自然对数e的值
- 3.农夫、狐狸、鸡、小米问题
- 新项目开局怎么做,老PM常用的2个抓手
- Python itertools 模块中的 product 函数
- NTree N叉树金字塔结构遍历以提取下线(2)
- 定义一个二维数组,写函数来实现对该二维数组求最大值。(要求,用行指针为函数形参)
- 算法面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
- [布什告别演讲].Presidential.Farewell.Speech.George.W.Bush.
- org.eclipse.ui.part.FileEditorInput cannot be cast to com.genuitec.eclipse.code.ui.welcome.editors.C