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

 找回密码
 新人加入
查看: 3563|回复: 3
打印 上一主题 下一主题

[完整特效] [SAI]026_no6ED [复制链接]

Administrator

Shanzhai Pro.

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2011-8-27 22:12:59 |只看该作者 |倒序浏览
預覽:http://pan.baidu.com/s/1hqqY9CC#dir/path=%2FSaiyakuFX_Preview

算是mask 和bezier 简单的范例吧
  1. from tcaxPy import *

  2. def pbri(n = 4):   
  3.     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'
  4.     PBRI = '{\\p'+str(n)+'}'+BRI
  5.     return PBRI

  6. def exint(x):
  7.     if x >= 0 :
  8.         x = int(x)
  9.     else:
  10.         x = 0
  11.     return x

  12. def tcaxPy_Init():
  13.     global _FontFileName
  14.     global _FaceID
  15.     global _Fs
  16.     global _Height
  17.     global Font
  18.     _FontFileName = GetVal(val_FontFileName)
  19.     _FaceID       = GetVal(val_FaceID)
  20.     _Fs           = GetVal(val_FontSize)
  21.     _Height       = GetVal(val_TextHeight)
  22.     Font = InitFont(_FontFileName, _FaceID, _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 0, 0)

  23. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):

  24.     ASS_BUF = []
  25.     TCS_BUF = []

  26.     dx = _X - int(_A / 2 + 0.5)   
  27.     dy = _Y - int(_Fs / 2 + 0.5)  
  28.     mask = TextOutlineDraw(Font, _TXT, dx, dy)
  29.     if _i<7:
  30.         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), "●")
  31.         for i in range(_BT+_SK-20,_BT+_SK+_KT,30):
  32.             for k in range(3):
  33.                 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)), "●")

  34.     else:
  35.         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), "●")
  36.         
  37.         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)

  38.         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)

  39.         POS = Bezier2(150, _X +500, _Y +randint(0,50), _X, _Y,_X+randint(250,350), _Y+randint(-50,-20))

  40.         for i in range(150):

  41.             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), "●")     
  42.             for j in range(2):
  43.                 if randint(0,4) == 0:
  44.                     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())

  45.     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)
  46.     return (ASS_BUF, TCS_BUF)

  47. def tcaxPy_Fin():
  48.     FinFont(Font)
复制代码
1

查看全部评分

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

沙发
发表于 2011-8-27 22:24:52 |只看该作者
预览补上: http://www.tcax.org/forum.php?mod=viewthread&tid=44

文件名为: [SAI]_026no6ED.mp4

Rank: 5Rank: 5

板凳
发表于 2012-2-19 01:45:21 |只看该作者
本帖最后由 six 于 2012-2-19 02:33 编辑

请问:
      clip2(7, mask)是为什么啊, py文件里说clip2(Scale, Draw)
      换成其他的数字就看不到文字了,这里必须是7吧?是只在MASK时这样,还是第一个参数必须是7?

      另外,自创字体的后三个参数改动后会有实质效果么?尤其那两个数字、

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

地板
发表于 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, 没有影响, 对像素字特效等才有影响. 你去看下那个像素字特效教程就清楚了.

您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-4-20 11:45

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH