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

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

Yutils 简单测试 [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2014-8-2 20:18:28 |只看该作者 |倒序浏览
本帖最后由 几年 于 2014-8-2 20:19 编辑

今天人比较多,搞基好时机,发个帖玩玩。

aegisub-3.2.0升级了LuaJIT,这算比较大的升级了。

Youka写了个Yutils,环境需要LuaJIT,所以要测试的请更新aegisub-3.2.0.

稍微说下一些NfyFX或者Aegisub以前没有的东西。


1)引入了matrix,可对矢量做一些shift,scale,rotation,skew,filp等等操作。

2)文字转矢量,矢量转像素(这下Aegisub能玩粒子了)

3)位图转矢量图,这下批量转换不是问题了。。具体转换效果应该没AI等软件好。
(具体我没测试)


以下是我简单的测试,只参照Youka给的例子搞了一下,github还有Youka做的测试,有兴趣下来玩。

压缩包里都是YouKa截的,我只是稍微测试了一下。


将压缩包里的Yutils.lua与utils-auto4.lua 放入aegisub主文件夹下的automation\include\
提示覆盖点确定。


链接:http://pan.baidu.com/s/1qWufObM 密码:b5a6
2

查看全部评分

Rank: 4

沙发
发表于 2014-8-20 23:08:29 |只看该作者
内容好东西

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

板凳
发表于 2014-8-23 00:35:39 |只看该作者
Youka也算是个特效元老了. 活跃了这么长时间

Rank: 4

地板
发表于 2014-12-14 20:11:07 |只看该作者
果断赞赞赞!!!!

Rank: 4

5#
发表于 2014-12-14 20:41:17 |只看该作者
本帖最后由 几年 于 2014-12-14 20:50 编辑
  1. Comment: 0,0:00:00.00,0:00:00.00,Default,,0,0,0,template line notext,{\p1}!_G.decode.create_font(line.styleref.fontname, line.styleref.bold, line.styleref.italic, line.styleref.underline, line.styleref.strikeout, line.styleref.fontsize).text_to_shape(line.text_stripped)!
复制代码
用这行可以直接处理文字转矢量,不过点都是有小数点,可以自己配合shape.filter 与 math.round处理。
粗体,斜体与下划线,删除线都支持。

Rank: 4

6#
发表于 2014-12-16 20:14:29 |只看该作者
大机的时候试试

Rank: 4

7#
发表于 2015-9-2 15:55:59 |只看该作者
发现一个问题不知如何解决,也没找到规律。
使用5楼代码生成的矢量绘图文字与原文字位置存在偏差,且字号越大偏差越大,不知何解。


另:
在Yutil.lua将FP_PRECISION值改为1即可不带小数点,默认值100是两位小数

Rank: 4

8#
发表于 2015-9-2 16:35:22 |只看该作者
qwe7989199 发表于 2015-9-2 15:55
发现一个问题不知如何解决,也没找到规律。
使用5楼代码生成的矢量绘图文字与原文字位置存在偏差,且字号越 ...

好久没看这个,要不你先下个新版的测试下看看?

Rank: 4

9#
发表于 2015-9-2 20:59:14 |只看该作者
几年 发表于 2015-9-2 16:35
好久没看这个,要不你先下个新版的测试下看看?

去git上找了最新的(项目代码删除之前)
https://github.com/Youka/Yutils/ ... a721/src/Yutils.lua
这代码直接多了1000多行。
文字位置偏差问题得到部分解决(和Yutil版本无关),由于是绘图代码,样式管理器中设置为7对齐时文字位置偏差问题会消失,其它对齐方式要算pos解决。
不过新版本将FP_PRECISION直接定义为小数点位数,测试发现同样是整数(0位小数)情况下,新版本字形失真较为严重。
还有个缺陷,就是\N \h这种非override特效标签直接会被识别成文本,技术不到家不知道如何解决

Rank: 4

10#
发表于 2015-9-3 00:16:56 |只看该作者
qwe7989199 发表于 2015-9-2 20:59
去git上找了最新的(项目代码删除之前)
https://github.com/Youka/Yutils/blob/370bee406a55966e3e4426a0f ...

不想用an7的话你可以用shape.bounding 和 shape.move 处理一下,你画个长方形玩一下就知道怎么移了。
改一下里面的FONT_PRECISION试试,一般的做法都是放大了64倍以后做运算,然后再缩小64倍来保证精度的。
浮点的运算的过程可能会导致失真吧,改一下看看,改大改小都可能,尽量是2的n次方
或者你直接用那最新新的版本看看

标签我感觉没啥办法,拆两行吧

Rank: 4

11#
发表于 2015-9-3 14:28:21 |只看该作者
本帖最后由 qwe7989199 于 2015-9-3 14:30 编辑
几年 发表于 2015-9-3 00:16
不想用an7的话你可以用shape.bounding 和 shape.move 处理一下,你画个长方形玩一下就知道怎么移了。
改 ...
  1. Comment: 0,0:00:00.00,0:00:00.00,1,Get Resolution,0,0,0,code once,xres, yres = _G.aegisub.video_size()
  2. Comment: 0,0:00:00.00,0:00:00.00,1,cal pos based on an7,0,0,0,code line all,an = line.styleref.align                   if an == 1 or an == 2 or an ==3 then                    y = yres-line.styleref.margin_v-line.height                   elseif an == 4 or an == 5 or an == 6 then            y =math.round(yres/2-line.height/2)         else           y = line.styleref.margin_v         end         if an == 1 or an == 4 or an == 7 then          x= line.styleref.margin_l         elseif an == 2 or an == 5 or an == 8 then          x=math.round(xres/2-line.width/2)        else           x=math.round(xres-line.styleref.margin_r-line.width)         end
  3. Comment: 0,0:03:15.08,0:03:17.08,1,Get Drawing,0,0,0,code line all,text=_G.decode.create_font(line.styleref.fontname, line.styleref.bold, line.styleref.italic, line.styleref.underline, line.styleref.strikeout, line.styleref.fontsize).text_to_shape(line.text_stripped) text=string.gsub(text,"c","")
  4. Comment: 0,0:00:00.00,0:00:00.00,1,,0,0,0,template line,{\p1\an7\pos(!x!,!y!)}!text!
复制代码
写了个an7为基准的各个对齐方式pos转化,样式管理器里对齐方式边距都可以随便调整了,fsp暂时无解.......
试验了下FONT_PRECISION是upscale倍率,默认情况是64倍放大然后再*downscale缩小为1/64,单独动这个参数在40字号以下都不理想(曲线凹凸有时候相反的,直线还好)
索性去掉了text to shape 部分的downscale,直接在绘图代码那用\p7来缩小,效果拔群,就是体积比原来大了点。
感觉这个lua还有很多能挖的功能。。。不过一个矢量化就困扰两天了orz
shape下面一堆还没怎么研究
顺便多了round取整简直好评

Rank: 4

12#
发表于 2015-9-4 01:35:59 |只看该作者
qwe7989199 发表于 2015-9-3 14:28
写了个an7为基准的各个对齐方式pos转化,样式管理器里对齐方式边距都可以随便调整了,fsp暂时无解.......
...

后面有参数可以调spacing
  1. {\p1\an7\pos($lleft,$ltop)}!_G.decode.create_font(line.styleref.fontname, line.styleref.bold, line.styleref.italic, line.styleref.underline, line.styleref.strikeout, line.styleref.fontsize,line.styleref.scale_x/100,line.styleref.scale_y/100,line.styleref.spacing).text_to_shape(line.text_stripped)!
复制代码
做外挂的,文件太大的话不太好

shape里特别点就是那个glue(两个矢量之间做投影)和那个matrix,其它的很多工具都有

Rank: 4

13#
发表于 2015-9-4 07:35:41 |只看该作者
几年 发表于 2015-9-4 01:35
后面有参数可以调spacing做外挂的,文件太大的话不太好

shape里特别点就是那个glue(两个矢量之间做投影) ...

才发现有带spacing参数的部分
问题基本解决

Rank: 4

14#
发表于 2015-9-4 09:46:54 |只看该作者
音频相关函数好像可玩性很高,能读取wav采样信息,问题是不了解FFT一类的东西,不知道frequency_analyzer之类函数具体是用来干什么的,理论上是不是和http://www.tcax.org/forum.php?mo ... &extra=page%3D1里面的算法差不多或者有交集?
想移植一个到Aeg的自动化里,这东西有可能么,或者难度高么,现在还不知道如何下手

Rank: 4

15#
发表于 2015-9-20 11:48:34 |只看该作者
qwe7989199 发表于 2015-9-4 09:46
音频相关函数好像可玩性很高,能读取wav采样信息,问题是不了解FFT一类的东西,不知道frequency_analyzer之 ...

这个我没看过,最近在忙论文,所以没时间研究,这里的话fft是时域到频率域的转化,图像处理里fft经常使用的,还有信号处理里,有时间的话你可以看看,fft挺有用的一个东西。
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-11-22 07:05

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH