TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua
标题:
[SAI]026_no6ED
[打印本页]
作者:
saiyaku
时间:
2011-8-27 22:12:59
标题:
[SAI]026_no6ED
預覽:
http://pan.baidu.com/s/1hqqY9CC#dir/path=%2FSaiyakuFX_Preview
算是mask 和bezier 简单的范例吧
from tcaxPy import *
def pbri(n = 4):
BRI = 'm 0 100 l 1 1 100 0 1 -1 0 -100 -1 -1 -100 0 -1 1 c m 6 6 s 6 -6 -6 -6 -6 6 c'
PBRI = '{\\p'+str(n)+'}'+BRI
return PBRI
def exint(x):
if x >= 0 :
x = int(x)
else:
x = 0
return x
def tcaxPy_Init():
global _FontFileName
global _FaceID
global _Fs
global _Height
global Font
_FontFileName = GetVal(val_FontFileName)
_FaceID = GetVal(val_FaceID)
_Fs = GetVal(val_FontSize)
_Height = GetVal(val_TextHeight)
Font = InitFont(_FontFileName, _FaceID, _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 0, 0)
def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):
ASS_BUF = []
TCS_BUF = []
dx = _X - int(_A / 2 + 0.5)
dy = _Y - int(_Fs / 2 + 0.5)
mask = TextOutlineDraw(Font, _TXT, dx, dy)
if _i<7:
ass_main(ASS_BUF, SubL(_BT+_SK-20, _ET,10), an(5) + pos(_X+randint(-16,16), _Y+randint(-16,16))+fs(1)+blur(1)+color1("FFFFFF")+t(0,_KT*10,fs(65)+blur(8)) + clip2(7, mask), "●")
for i in range(_BT+_SK-20,_BT+_SK+_KT,30):
for k in range(3):
ass_main(ASS_BUF, SubL(i, i+150,50), fs(5)+blur(3.5)+fad(30,300)+mov(_X+randint(30,60),_Y-randint(20,50),_X-randint(30,60),_Y+randint(20,50)), "●")
else:
ass_main(ASS_BUF, SubL(_BT+_SK-5, _ET,10), an(5) + pos(_X+randint(-16,16), _Y+randint(-16,16))+color1("FFFFFF")+fs(65)+blur(8) + clip2(7, mask), "●")
ass_main(ASS_BUF, SubL(_BT+_SK-5, _ET), an(5) + pos(_X-0.5, _Y-1.5) +alpha1(100)+color1("000000")+ bord(0)+blur(2.5), _TXT)
ass_main(ASS_BUF, SubL(_BT+_SK-5, _BT+_SK+55), an(5) + pos(_X-0.5, _Y-1.5) +alpha1(255)+color3("FFFFFF")+ bord(1.5)+blur(7.5)+t(bord(0)), _TXT)
POS = Bezier2(150, _X +500, _Y +randint(0,50), _X, _Y,_X+randint(250,350), _Y+randint(-50,-20))
for i in range(150):
ass_main(ASS_BUF, SubL(_BT+_SK-155+i*1, _BT+_SK-155+(i+1)*1,50), an(5)+blur(1.5) +color1("FFFFFF")+ pos(POS[i][0], POS[i][1])+fs(8), "●")
for j in range(2):
if randint(0,4) == 0:
ass_main(ASS_BUF, SubL(_BT+_SK-155+i*1, _BT+_SK-155+(i+1)*1+30,50), an(7)+blur(0.3)+bord(0.2)+color3("FFFFFF") +color1("FFFFFF")+ mov(POS[exint(i-j*3-5)][0]+randint(-5,5), POS[exint(i-j*3-5)][1]+randint(-5,5),POS[exint(i-j*3-5)][0]+randint(-15,15), POS[exint(i-j*3-5)][1]+randint(-15,15))+fad(0,300)+fsc(60,60), pbri())
ass_main(ASS_BUF, SubL(_BT, _ET), an(5) + pos(_X-0.5, _Y-1.5) +alpha1(255)+ bord(1)+blur(2.5)+fad(50,50), _TXT)
return (ASS_BUF, TCS_BUF)
def tcaxPy_Fin():
FinFont(Font)
复制代码
作者:
milkyjing
时间:
2011-8-27 22:24:52
预览补上:
http://www.tcax.org/forum.php?mod=viewthread&tid=44
文件名为: [SAI]_026no6ED.mp4
作者:
six
时间:
2012-2-19 01:45:21
本帖最后由 six 于 2012-2-19 02:33 编辑
请问:
clip2(7, mask)是为什么啊, py文件里说clip2(Scale, Draw)
换成其他的数字就看不到文字了,这里必须是7吧?是只在MASK时这样,还是第一个参数必须是7?
另外,自创字体的后三个参数改动后会有实质效果么?尤其那两个数字、
作者:
milkyjing
时间:
2012-2-19 12:08:48
six 发表于 2012-2-19 01:45
请问:
clip2(7, mask)是为什么啊, py文件里说clip2(Scale, Draw)
换成其他的数字就看不到文字 ...
Scale的含义在于图形的缩放比例, 是2的若干次方. TextOutlineDraw()函数返回的文字图形, (坐标)比例就是普通文字的64倍, 所以Scale要填7, 使其显示为普通文字大小 (2^(7 - 1)=64). 关于clip代码的具体用法, 可以参考ASS代码说明文档...(坛子上有)
所以, 对于字体Mask, 参数通常就是7, (除非你有特殊想法), 对于一般图形作Mask, 就要看那图形的坐标比例了(在绘制的时候确定).
关于第二个问题, 记得上次也说了, 对于字体Mask, 没有影响, 对像素字特效等才有影响. 你去看下那个像素字特效教程就清楚了.
欢迎光临 TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua (http://tcax.org/)
Powered by Discuz! X2