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

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

常用自定义函数AutoTags及其变种的介绍 [复制链接]

Rank: 4

楼主
发表于 2017-8-13 19:47:57 |显示全部楼层
這寫成python的oo 或許比較容易看得清楚他在做啥
其中下面的代碼中
line_dur對應到aegisub的line.duration
  1. import math

  2. class autotag:
  3.         def __init__(self, intervalo1=0, intervalo2=0, dato1="",
  4.                                 dato2="", pause=0, delay=0, line_dur=0):
  5.                
  6.                 self.intervalo1 = intervalo1
  7.                 self.intervalo2 = intervalo2
  8.                 self.dato1 = dato1
  9.                 self.dato2 = dato2
  10.                 self.pause = pause
  11.                 self.delay = delay
  12.                
  13.                 self.resultado = ""
  14.                 self.suerte = ""
  15.                 self.contador = 0
  16.                 self.line_dur = line_dur
  17.        
  18.         def autotags(self):
  19.                 count = math.ceil(self.line_dur / self.intervalo1)
  20.                
  21.                 for i in range(count):
  22.                         if i % 2 == 0:
  23.                                 self.suerte = self.dato1
  24.                         else:
  25.                                 self.suerte = self.dato2
  26.                        
  27.                         self.resultado += "\\t({0}, {1}, {2})".format(i*self.intervalo1, (i+1)*self.intervalo1, self.suerte)
  28.                
  29.                 return self.resultado
  30.        
  31.         def autotags1(self):
  32.                 count = math.ceil(self.line_dur / (self.intervalo1+self.pause))
  33.                
  34.                 for i in range(count):
  35.                         if i % 2 == 0:
  36.                                 self.suerte = self.dato1
  37.                         else:
  38.                                 self.suerte = self.dato2
  39.                        
  40.                         self.resultado += "\\t({0}, {1}, {2})".format(i*(self.intervalo1+self.pause), (i+1)*self.intervalo1+i*self.pause, self.suerte)
  41.                
  42.                 return self.resultado
  43.        
  44.         def autotags2(self):
  45.                 count = math.ceil(self.line_dur / self.intervalo1)
  46.                
  47.                 for i in range(count):
  48.                         if i % 2 == 0:
  49.                                 self.suerte = self.dato1
  50.                         else:
  51.                                 self.suerte = self.dato2
  52.                        
  53.                         self.resultado += "\\t({0}, {1}, {2})".format(i*self.intervalo1+self.delay, (i+1)*self.intervalo1+self.delay, self.suerte)
  54.                
  55.                 return self.resultado
  56.        
  57.         def autotags3(self):
  58.                 count = 2 * math.ceil(self.line_dur / (self.intervalo1 + self.intervalo2))
  59.                 d = math.ceil((self.intervalo2 - self.intervalo1) / count)
  60.                 t = [0]
  61.                
  62.                 for i in range(count):
  63.                        
  64.                         t.append(t[i] + self.intervalo1 + i * d)
  65.                        
  66.                         if i % 2 == 0:
  67.                                 self.suerte = self.dato1
  68.                         else:
  69.                                 self.suerte = self.dato2
  70.                        
  71.                         self.resultado += "\\t({0}, {1}, {2})".format(t[i], t[i+1], self.suerte)
  72.                
  73.                 return self.resultado
复制代码
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-5-5 14:32

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH