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

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

[特效算法] [内置特效EXT]旋转的发散光线test [复制链接]

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2011-9-1 17:33:45 |只看该作者 |倒序浏览
说明

感谢X大提供源代码(C#)

此效果出处:
http://u.115.com/file/aq2ofr04#
[X]027_Darker_Than_Black_-Ryuusei_no_Gemini-_OP.mkv

附件为预览及脚本下载

移植过来的py脚本, (TCAX内置特效兼容)
  1. ################################################################################
  2. ### description:
  3. ### circliar shining


  4. from tcaxPy import *


  5. def tcaxPy_Init():
  6.     global _FD                         # frame duration, in millisecond
  7.     global _Fs
  8.     global Font
  9.     _FD = 1000 / GetVal(val_FXFPS)
  10.     _Fs = GetVal(val_FontSize)
  11.     Font = InitFont(GetVal(val_FontFileName), GetVal(val_FaceID), _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 0, 0)


  12. def tcaxPy_Fin():
  13.     FinFont(Font)


  14. def DrawLight(r):
  15.     s = '{\\p4}'
  16.     r *= 8
  17.     ag = -0.15
  18.     while (ag <= 0.15):
  19.         l = (pow(abs(ag) / 0.15, 0.3) + 0.5) * r
  20.         s += 'm 0 0 l {0} {1} 0 1 c '.format(int(l * cos(ag)), int(l * sin(ag)))
  21.         ag += 0.01
  22.     s += '{\\p0}'
  23.     return s

  24. def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
  25.     ASS_BUF  = []        # used for saving ASS FX lines
  26.     TCAS_BUF = []        # used for saving TCAS FX raw data

  27.     ts = _start + _elapk
  28.     #te = _start + _elapk + _k
  29.     count = _k + 10
  30.     for i in range(0, count, 2):
  31.         startag = randint(0, 359)
  32.         endag = startag + RandSign() * randint(50, 100)
  33.         EFT = pos(_x, _y) + fad(300, 300) + alpha1(0) + be(1) + color1('147EF3') + frz(startag) + t(frz(endag))
  34.         ass_main(ASS_BUF, SubL(ts + i, ts + i + 100, 4, Pix_Style), EFT, DrawLight(120))
  35.         EFT = pos(_x, _y) + fad(300, 300) + alpha1(20) + be(1) + color1('FFFFFF') + frz(startag) + t(frz(endag))
  36.         ass_main(ASS_BUF, SubL(ts + i, ts + i + 100, 5, Pix_Style), EFT, DrawLight(60))

  37.     return (ASS_BUF, TCAS_BUF)
复制代码

preview.mp4

588.72 KB, 下载次数: 3819

预览

ext_light.py

1.61 KB, 下载次数: 3244

脚本

1

查看全部评分

Rank: 5Rank: 5

沙发
发表于 2011-9-3 10:42:50 |只看该作者
Milk大辛苦了
话说,这个光晕范围是不是太大了点。。。

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

板凳
发表于 2011-9-3 14:46:26 |只看该作者
我们的夏天 发表于 2011-9-3 10:42
Milk大辛苦了
话说,这个光晕范围是不是太大了点。。。

可以直接修改 DrawLight(120), 与 DrawLight(60), 来改变大小.

我直接保留了X大使用过的参数. 如果本脚本以后作为正式内置特效的话, 颜色及直径会弄成可配置参数的.

Rank: 4

地板
发表于 2013-5-13 14:19:49 |只看该作者
  1.     while (ag <= 0.15):
  2.         l = (pow(abs(ag) / 0.15, 0.3) + 0.5) * r
  3.         s += 'm 0 0 l {0} {1} 0 1 c '.format(int(l * cos(ag)), int(l * sin(ag)))
  4.         ag += 0.01
复制代码
这个循环里面, r为100的时候,l 的值为几十到一百多,l*sin(ag) 很小,零点几,int(l*sin(ag))一直是0,
于是
  1. 'm 0 0 l {0} {1} 0 1 c '
复制代码
就变成'm 0 0 l {0} 0 0 1 c ' 了。。。

为什么要对此循环30次
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-11-27 12:14

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH