- 积分
- 1651
- 阅读权限
- 50
- 主题
- 19
- 帖子
- 83
- 注册时间
- 16-10-12
- 在线时间
- 3282 小时
- UID
- 2480
- 精华
- 5
营长
- 大洋
- 49483
- 阅读权限
- 50
|
本帖最后由 i6henl 于 22-1-17 21:40 编辑
五、特效图片序列插入ass
* 这一步的ass代码来自chrislong大佬的帖子:《讲解如何将图片序列插入到字幕当中实现高级字幕特效》
* 建议使用32位版Aegisub
* 因为AE导出图片序列的命名方式不利于插入图片ass这个模板使用,因此,借助Total Commander批量修改,操作如下:
复制图片目录,地址栏单击后粘贴并回车,全选然后Ctrl+M进入批量改名界面,设置如图2,点击“开始”,完成批量改名。
接下来,用Aegisub打开chrislong大佬提供的ass代码模板,修改其中几个参数,完成后菜单栏“自动化”--“...应用卡拉OK模板”* 此模板稍微修改了一下注释,参数部分去掉了fad命令,因为不适用已经做好效果的序列图片
1. 第4行tf数值是特效图片总数,ef数值需要在第17行确认了特效起始和结束时间并应用了卡拉OK模板后,观察最后一条刚好是图片目录最后一张图片,总之,新生成的图片插入代码,从第一张到最后一张,要刚刚好,不能多也不能少,少了多了就需要回到应用模板之前,调整ef数值
2. 第5行为图片所在目录路径
3. 第6行根据需要修改序号
4. 第17行为单个特效的起始时间
* 首先是建议专门留一条代码ass作为模板
* 建议每一个特效,另存保留两条:1条是设置参数应用后确认无误的单纯17行代码ass;第2条是新生成的图片代码,这条是要使用easyavs2bdnxml跑xml+png的。这样是为了方便万一要修改特效,不至于再次去确认各个参数,因为只要时长一样,AE里怎么修改效果,导出的图片总数不会变。我是这样保存:
* 上面这个建议是我在踩了一个大坑之后得到的教训,这里着重说一下,避免同学们踩坑:刚开始,我在AE里做特效的时候,做一条导出一条的图片,然后ass模板设置参数,生成插入代码后直接就删除参数部分的17行,然后用easyavs2bdnxml跑xml+png,导入到大金,看是否能正常导入以避免超流,没问题就复制ass代码插入到主字幕。重复以上,当把43条特效字幕都全部插入主字幕并使用easyavs2bdnxml跑xml+png的时候,傻逼了,很短的时间就跑完,一看目录,才162张图,只出来了两个特效,而且还不完整!!!这过程居然还没报错。好吧,接下来,多次测试,就一个结论,没办法整体跑出xml+png,原因不明!!!这下做不下去了,直接躺平......
一个多月以后,突然有个想法,单独把每一条特效的ass跑出xml+png之后,手动复制xml代码加入到主字幕的xml,各特效的图片也分别复制到主字幕图片目录,刚开始,用了两三个特效验证可行性,有效!!!不过,苦逼的现实摆在眼前:我并没有单独为每一条特效字幕另存ass。MD,好吧,又把之前全部合并的ass拆分特效ass 43份。
在easyavs2bdnxml跑出43份xml+png以后,往主字幕复制图片的时候,特么,又踩坑了,一个低级错误:部分特效是和部分主字幕时间轴重合的,各自单独跑xml+png,会有同名图片和xml出现。所以,解决办法就是:从主字幕里,剪切重复时间轴里的字幕到对应特效的ass里。
综上所述,所有字幕ass的处理分为三个部分:
1. 主字幕(不包含和特效时间轴重合的部分)
2. 特效字幕+时间轴重合的对白主字幕
3. 其余纯特效(每条特效两个ass,一个参数,一个单纯的图片插入)
以上苦逼的经历就是为何我上一个建议每一个特效都要在模板的基础上,另存单独的两条,就是为了方便踩坑的时候能便捷的修改!!!
踩坑经历结束后,所有xml+png处理好,导入大金无误,总算有点儿成就感了!!!但是纯手工处理43条特效字幕,咸鱼直呼:就特么离谱......
如果说为了完美特效,AE里制作并导出图片序列,接着单独处理每条特效的ass这个是可以接受的话(至少不管是多少ass,easyavs2bdnxml是可以批量转xml+png的,而且就算是单独使用Aegisub制作特效的话,这类似的步骤还是必须要经历的,比如确定时间轴,特效制作的各种命令),那后面数量巨大的xml+png要合并到主字幕里去,是不是望而生畏?!
不用怕!!!咸鱼又躺平快一年后的21年5月份,整理硬盘,回想之前纯手工复制合并xml和图片的苦逼经历,折腾出一个批处理:运行即合并所有特效的xml到主字幕,并复制所有特效图片到主字幕目录。- @echo off
- ::复制TX目录下所有子目录的png图片到主字幕目录00001
- for /r TX\ %%a in (*.png) do (
- copy "%%a" 00001\
- )
- ::筛选主字幕xml。easyavs2bdnxml转xml+png时勾选了首帧黑屏,这行代码位于倒数第二行;以及末尾行</BDN>
- ::参数v:选中除了末尾两行的其它所有内容生成M1.xml
- findstr /v "</Graphic></Event></Events> </BDN>" 00001\00001.xml >> M1.xml
- ::复制TX目录下所有子目录的xml到临时文件夹然后合并为一个
- md temp
- for /r TX\ %%a in (*.xml) do (
- copy "%%a" temp\
- )
- copy temp\*.xml temp1.xml
- rd /s /q temp
- ::筛选上一步合并的xml内容,最后生成TX.xml
- findstr "Forced= Width= </Event>" temp1.xml >> temp2.xml
- findstr /v "</Graphic></Event></Events>" temp2.xml >> TX.xml
- del temp1.xml temp2.xml
- ::筛选主字幕xml末尾两行为M2.xml
- findstr ">0.png </BDN>" 00001\00001.xml >> M2.xml
- ::删除原主字幕xml
- del 00001\00001.xml
- ::按顺序重新生成含特效代码的主字幕xml
- findstr "." M1.xml >> 00001\00001.xml
- findstr "." TX.xml >> 00001\00001.xml
- findstr "." M2.xml >> 00001\00001.xml
- ::下面这行根据自己喜好决定了,去掉行首的注释符号::就会删除M1、M2、TX三个xml,建议保留
- ::del *.xml
复制代码 * 批处理使用时,根据需要修改一下4/8/21/23/25/26/27行的路径以及主字幕文件名即可
* 新建文本,复制以上代码,保存后修改后缀名为bat
* 我的使用环境,00001是主字幕目录;TX目录下是43个特效字幕子目录:
至此,大金导入无误,这特效字幕就算大功告成!!!
附录:片头特效转xml+png不完全,手动修复方法
估算了一下,一句两句说不完,转下一帖吧,下一贴除了附录就是特效展示和简要说明了,一起还有相关下载
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
评分
-
查看全部评分
|