国语视界

标题: 浅谈ASS的特效代码玩法2:新手知识篇-代码中的小知识 [打印本页]

作者: 开心兔    时间: 21-4-17 22:56
标题: 浅谈ASS的特效代码玩法2:新手知识篇-代码中的小知识
本帖最后由 开心兔 于 21-5-2 23:02 编辑

前言
续前一篇《新手入门篇-培养良好的操作习惯 》后,我猜会有一些新手小伙伴按奈不住开始摩拳擦掌的想要开始书写代码,制作属于自己的华丽特效字幕了。那么在开工之前,我想还是再给新手小伙们多补充一些知识,一些通常被忽略但完全有必要了解一下的特效代码知识。

所以友情提个醒,此篇帖子内容可能更加枯燥,如果你已掌握特效代码的相关知识,请你退出,因为这篇内容对你毫无意义。

这里再次贴一下来自豆瓣网友和路雪。分享的ASS特效代码注解,初学者务必先自行了解各项代码的作用后再来学习:Aegisub的ASS代码使用指南



章节1:特效代码的指令分类介绍
ASS字幕主要是通过各项不同的代码指令将文字或图形呈现出来,任何一个文字或图形的样式均由特效代码的指令所固定,如果指令出现错误,那么特效字幕必然出现错误。

而这些操控文字或图形的指令共分为三个部分,1:样式指令,2:改变指令,3:特殊指令

样式指令:即我们给每一行字幕设定的统一且固定的样式。如下图

在样式管理器中,我们能看到所设置的每一个样式,这就是统一的样式指令,字幕行中的文字大小、字体、颜色、粗细等等,均听命于这个样式指令。当我们需要修改的时候,只能通过样式管理器进行编辑,且被编辑修改后,所有被赋予该样式指令的字幕行全部都会被改变。

这种代码,在ASS文件中,是统一的自动放置在抬头部分的[V4+ Styles]中,如下图


如果我们仅通过ASS文件进行修改的话,必然十分费劲,帖子结尾部分我会放上各个指令名称所对应的功能,新手小伙伴们可以抽时间阅读了解,此处暂不详述。

总而言之,样式指令通常我们运用在对白、歌词以及多条相同样式的字幕行中,这也是我们能快速修改对白样式的最佳方法。前一篇帖子已经进行了讲解,不明所以的小伙伴可以回头再看看。

改变指令:就是在样式指令的基础上,改变其指令方式,达到我们想要的自定义样式。(这句话可能过于专业,但我还是这样介绍了,主要是希望新手小伙伴们,能通透的了解到特效字幕中的代码关系,从而在出现错误的时候,能有思路去排查错误问题)

直白的讲,就是我们写在字幕行中,文字前头大括弧{}内的代码,就是改变指令,就是我们俗称的特效代码!

改变指令的用途,仅仅只是为了达到我们想要的样式,从而将字幕变得更贴近原画风格或是更美观好看。

这里例举一个简单的小例子,如下图


我们通过样式管理器给字幕设置了样式,包含大小、样色、边框、阴影等等。在没有额外添加改变代码的时候,该字幕行仅听命于赋予的样式指令Default。

此时我们想要将这一行中的文字变大,并且换一个字体和颜色,就需要通过改变指令来操作,如下图

在文字前头添加大括弧{},并写上字号代码\fs,参数为200像素,即\fs200;同时写上字体代码\fn,以及字体名称:方正汉真广标简体,即\fn方正汉真广标简体,同时写上颜色代码\c&H06C703&,所改变的结果如下图。


写入的这三个代码的作用就是将原来样式指令中的字体大小100改变成了200,原来的文泉驿微米黑字体变成了方正汉真广标简体,原来的白色文字变成了绿色文字,而其他样式指令不变。例如边框和阴影,依旧是10,边框颜色依旧为红色,阴影颜色依旧是黑色等等,如下图,样式管理器中的Default样式属性并没有变化,仅仅只是写入了改变指令的字幕行发生了变化。


可能有小伙伴看到这里就说了,这种都要如此详细的举例介绍吗?

那是因为曾经有位小伙伴加我QQ,咨询为什么明明没有加边框,但显示的结果却出现了边框?他的这个问题,就是现在这个例子,因为样式指令中包含了边框,但他没有写代码改变样式指令中的边框命令,所以即使在字幕行中没写边框代码,显示的文字依旧会出现边框。

对于掌握了代码的小伙伴来说,这种压根儿就不叫问题,但如果突然有一天,你发现你写入的代码开始不听使唤的时候,不妨打开样式管理器,看看是否是这种类似的问题呢?

比如,我们在使用特殊代码“█”或者“▲”等等作为背景框填充的时候,发现这个特殊代码不显示或是显示的形状诡异,那必定是你样式指令中的字体问题(因为有些字体识别不了特殊代码),此时,你只需要写一个改变字体的代码\fn宋体或\fn黑体,即可解决。

特殊指令:
即不用书写在{}内的指令代码。
比如\N:强制换行,\h强制空格等等,这里不详述,后期应用中再讲解。




章节2:特效代码的书写格式
了解了样式指令和改变指令的关系后,我们再来聊聊代码的书写格式,为了更加通俗易懂,我将直接用特效代码来代替改变指令这个名称。

1:书写特效代码,必须写在大括弧{}内,除特殊指令以外。同时,尽量避免将特效代码写成下列这个样子:
{\fn黑体}{\fs60}{\pos(960,550)}{\c&H06C703&}{\fsp5}{\frz10}.....每一个代码都用一个括弧包含起来,这是错误操作!


这样写代码也不是不行,一样有效,但当你在Aegisub中使用了快捷操作时,会自动添加相应的特效代码,而添加的代码仅会出现在第一个{}中,如果你写了多个{},可能会出现相同的指令代码,从而导致混乱而让代码产生冲突。

所以,工整的写法就只需要一个{}即可。比如:{\fn方正汉真广标简体\fs200\c&H06C703&}这是举的一个小例子

2:另外,每一个指令,必须用\开头,无\则指令无效!

3:代码按先后顺序执行命令。比如:{\fn方正汉真广标简体\c&H06C703&\fs200\t(\fs100)}这是举的一个小例子


如上图,就是这个代码按照先后顺序执行所呈现的结果。提示:先后顺序仅在\t指令中显而易见,其他代码的先后顺序毫无差别。

也就是说,我们在书写代码的时候,当需要使用\t指令时,务必按照先后执行的顺序书写代码,无\t指令时书写顺序可忽略。

4:避免出现重复代码。(非使用\t指令时)

根据代码先后顺序执行的原则,相同的重复代码仅后者有效。

比如:{\fs50\fn黑体\bord3\shad2\be2\fs70\pos(230,420)},在这段代码中的字号大小指令重复了,但只有后者\fs70有效,前面\fs50无效。

当一条字幕的代码过多时,如果出现重复代码可能不易察觉,所以我们书写时一定不要出现重复代码。


章节3:特效代码的参数书写
每一个特效代码都有一个参数,比如\fs50,即为字号的大小参数为50像素。如未设置参数,该代码指令无效。

指令参数有一个的,也有多个的,一个参数的直接写,多个参数的则需用小括号()包含,参数值之间用“,”隔开。比如:\pos(960,540),且仅为英文输入状态的标点符号,中文输入状态下的小括号与标点无效。

至于哪些是一个参数哪些是多个参数的代码请参照豆瓣网友和路雪。分享的ASS特效代码注解:Aegisub的ASS代码使用指南


一个特效指令的多个参数仅可写在一个()内,多个()时无效。


章节:4:字幕显示的上下层级
除了代码的执行有先后顺序外,字幕显示也有上下的层级之分,如下图


时间重叠情况下,字幕显示的层级根据条目顺序而定,条目顺序越大,显示越靠上,如上图中,对白条目顺序为3,则显示在最上层,歌词条目顺序最小,则显示在最下层。

当我们在制作字幕过程中,难免会遇到时间重叠的字幕,想要设置显示层级,则将需要显示在上层的,放在后面即可,字幕的条目顺序自动叠加。

除此以外,我们也可以通过编辑器上的层次编号来控制显示的上下层级关系,如下图


层次编号与条目顺序同理,数值越大越靠上,比如我们将歌词字幕层次编号改为2后,歌词字幕则显示在最上层,如下图


在设置层级显示的时候,默认为层次编号优先执行,然后才是按照条目顺序显示层级,如上图,尽管歌词字幕条目顺序最小,但层次编号优先的原则下,歌词字幕则显示在最上层,无层次编号的时候,按条目顺序显示上下层级。

小知识补充:前一篇我们提到,将注释字幕整理后放在对白字幕前方,此举也是在避免出现特效注释字幕与对白字幕时间重叠时,特效字幕不会显示在上层遮挡住了对白的文字。



关于特效代码的小知识暂且统计这么多,如有遗漏欢迎留言补充,最后贴上ASS文件样式部分[V4+ Styles]对应的代码属性定义,有兴趣的小伙伴可以看看:



作者: 用心守护    时间: 21-4-17 23:24
都是很实用的教程,而且那么详细。
作者: 蘭丶曦    时间: 21-4-17 23:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: HN200226    时间: 21-4-17 23:57
兔哥功德无量,自己牛逼不说,还得让别人牛逼

作者: Tangwenx    时间: 21-4-18 00:05
谢谢大神,回复看下代码学习
作者: 蜗牛跑车    时间: 21-4-18 00:23
看看学学,了解一下就行,哈哈
作者: ssdde    时间: 21-4-18 00:25
感谢分享,非常实用,一定要好好学习
作者: 低调做人    时间: 21-4-18 05:07
我进来是学习的
作者: xmdhsb    时间: 21-4-18 06:43
大神牛逼,进来继续学习
作者: 3201    时间: 21-4-18 07:54
温习一下,谢谢楼主分享
作者: 393754923    时间: 21-4-18 08:44
这个必须多多熟悉
作者: sjp060305    时间: 21-4-18 08:55
谢谢楼主的分享!这个绝对要顶!!!
作者: 习学爱    时间: 21-4-18 09:09
喜欢技术帖,方便大家增长知识,强烈支持分享!
作者: ggggongbing    时间: 21-4-18 11:05
非常详细的教程,辛苦了,必须支持个。
作者: gjp0975    时间: 21-4-18 11:43
第二篇技术知识点来了,噢耶。
作者: yaojingzhe    时间: 21-4-18 12:06
膜拜@开心兔 版主,ass的特效函数表里,你把最有用的几个拿出来详细教给我们,非常感谢。你教的这些,正是我想学的,受教了!!!
作者: saisai0102    时间: 21-4-18 12:22
看懂了,不知道做起来怎么样,非常感谢!
作者: aricyoung    时间: 21-4-18 21:53
学习兔大的经验,开始进步
作者: sofish2010    时间: 21-4-19 05:24
看看这第二篇教程
作者: kevenbjx    时间: 21-4-19 15:44
感谢分享,期待下期!
作者: auto68    时间: 21-4-19 19:36
学习学习再学习。
作者: zcsky123    时间: 21-4-22 19:57
我来看看学习
作者: 安安第二    时间: 21-4-23 12:44
太好了吧
作者: ynljyyzz    时间: 21-4-24 14:57
非常详细的入门教程,感谢分享。
作者: 古藤书斋    时间: 21-4-25 08:26
越看越觉得开心兔大神就是给力!
作者: shine888    时间: 21-4-25 11:42
感谢楼主!!!
作者: fengfa    时间: 21-4-26 17:26
楼主的科普文章不错,学习了
作者: wangkg    时间: 21-4-29 18:31
实用的教程
作者: 新昌大魔王    时间: 21-4-30 10:47
期待兔神的下一篇教程
作者: 花花世界    时间: 21-4-30 21:55
看懂了还需要实际操作摸索谢谢分享
作者: 含老豆    时间: 21-5-2 12:25
很实用  收藏学习  
作者: hunau316    时间: 21-5-3 13:23
感谢大佬辛勤的付出,学习了
作者: schum    时间: 21-5-3 13:30
感谢兔哥手把手教学!
作者: 倦鸟365    时间: 21-5-3 16:48
文章很好,周到细致。
作者: wusan918    时间: 21-5-4 09:10
很实用的教程,
谢谢
作者: houfeiyang    时间: 21-5-4 18:37
晚上系统学习一下,谢谢写了这么多
作者: cyh198731    时间: 21-5-4 19:49
不错感谢分享
作者: zggy007    时间: 21-5-10 01:28
感谢这么详细的教程
作者: 泽铭    时间: 21-5-10 02:35
辛苦楼主了,来学习知识
作者: feb12345    时间: 21-5-10 22:30
学习了,谢谢分享这么好的东西
作者: hong    时间: 21-5-11 18:47
这个教程通俗易懂,对新手很有帮助。
作者: zhangyun_1    时间: 21-5-12 10:43
感谢兔佬分享,辛苦了,先把这个系列收藏了
作者: a3437    时间: 21-5-16 05:26
前来学习的我
作者: 风晓淼0302    时间: 21-5-16 22:12
技术贴最难得的了,楼主真的用心了
作者: gumfifa    时间: 21-5-19 10:11
循序渐进,不错
作者: ccfys888    时间: 21-5-19 12:48
实用的教程,特别有利于初学者
作者: 吓破你的胆    时间: 21-5-20 23:48
感谢大佬分享了,点个赞!
作者: chunzhizi    时间: 21-5-24 04:34
感谢分享,学习了
作者: boboji    时间: 21-5-29 09:53
谢谢分享
作者: haier0820    时间: 21-5-31 08:03
开心兔大神,无私奉献啊!
作者: double    时间: 21-6-1 08:42
这里的内容,我只会一部分
作者: wangzhuol    时间: 21-6-3 10:49
讲解的简单明了 继续学习
作者: hhhz0011    时间: 21-6-7 14:19
感谢兔神分享,进来学习
作者: Haobin    时间: 21-6-7 14:38
慢慢学习ing
作者: xsyilang    时间: 21-6-13 14:22
感谢楼主,准备打印出来好好学习。
作者: r9瑞步    时间: 21-6-17 10:19
学习了,很有帮助
作者: 项太傅    时间: 21-6-19 17:24
向大佬学习
作者: 玩主儿    时间: 21-6-20 00:05
学习第二篇,十分感谢楼主。。
作者: jay070752011    时间: 21-6-20 15:50
前来学习~~
作者: kelinyujc    时间: 21-6-21 22:06
新手正式开始
作者: ceruleansky    时间: 21-6-24 17:21
学习一下
作者: ald    时间: 21-6-26 19:10
感谢大佬教程
作者: hyson    时间: 21-7-5 21:51
这个教程很详细
作者: jiguang    时间: 21-7-17 20:38
感谢大佬分享
作者: ilikebanana    时间: 21-7-23 21:32
非常感谢!
作者: 消逝无声    时间: 21-7-24 09:49
多谢分享,这就去试试
作者: popxhy    时间: 21-7-31 21:12
学习下隐藏部分的[V4+ Styles]对应的代码属性的定义。
作者: JRCRP    时间: 21-8-6 05:57
感谢分享。
作者: ytt2018    时间: 21-8-7 14:33
代码中的小知识
作者: 超棒的ps    时间: 21-8-8 23:13
菜鸡来学习了
作者: justay    时间: 21-8-13 16:41
谢谢大佬分享
作者: xiaorui0324    时间: 21-8-19 13:54
非常直接,一看就懂得教程
作者: nic324    时间: 21-8-20 11:04
必须顶,为大家奉献如此宝贵的资源,蜜汁,香喷喷,狂顶楼主!
作者: 千石    时间: 21-8-23 11:14
真的是很通俗易懂的教程
作者: ky100    时间: 21-8-24 15:04
感谢大佬分享~
作者: WIGYSJ    时间: 21-8-31 10:41
实用教材功德无量
作者: 惹眼的月光    时间: 21-9-5 13:41
都是很实用的教程,而且那么详细。

作者: attention710    时间: 21-9-9 15:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhengyang    时间: 21-9-9 17:29
继续来学习,感谢分享!
作者: manhua1975    时间: 21-9-10 07:34
谢谢楼主分享
作者: cyzs    时间: 21-9-12 06:16
赞赞赞,跟着学很不错
作者: zheng1975    时间: 21-9-27 15:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: space77or    时间: 21-9-27 15:49
学习学习
作者: 潇潇    时间: 21-9-30 16:48
感谢作者分享
作者: 雨墨    时间: 21-10-1 11:18
好好学习了
作者: xy745180712    时间: 21-10-2 22:58
感谢分享!!!
作者: f88u8    时间: 21-10-3 21:22
太感谢了,学习一下,谢谢
作者: jonne021    时间: 21-10-7 15:43
衷心感激大佬赐教。
作者: TSLY    时间: 21-10-19 17:20
实用的教程,而且那么详细
作者: hc1984107    时间: 21-10-24 23:56
进来学习学习。
作者: 大红红红鹰    时间: 21-10-25 11:30
再次学习。努力努力
作者: lnaec708    时间: 21-10-30 12:34
好东西,长知识了
作者: BarryA    时间: 21-11-7 22:43
前来学习特效代码
作者: cap1016    时间: 21-11-10 15:35
万分感谢楼主的无私分享
作者: 觅影君    时间: 21-11-13 07:01
感谢大神的用心讲解
作者: lpy2019    时间: 21-12-3 14:36
楼主牛皮!!!
作者: thx2010    时间: 21-12-11 12:46
感谢分享教程
作者: 言冰云    时间: 21-12-21 08:05
感谢开心兔大佬编写教程。
作者: IWUBEN    时间: 21-12-29 22:45
字幕是门技术活,好好学习
作者: syzayy    时间: 22-1-2 02:54
学习一下,信息楼主分享教程




欢迎光临 国语视界 (https://bbs.cnlang.org/) Powered by Discuz! X3.4