字幕组吧 关注:19,215贴子:168,467

(教程)高级字幕制作与特效

取消只看楼主收藏回复

(本文为转载)原作者Shiner
其中部分特效代码使用漫游的《魔法使的注意事项》SSA文件中的特效,引用部分均声明来源,并未作任何修改,其代码创作权归漫游。其他未声明的代码由Shiner创作,解释权归Shiner所有。


1楼2012-08-07 16:34回复

    目录
    前言
    第一章 字幕制作简介
    第一节 常见字幕格式
    第二节 常用软件
    第三节 简单的字幕制作
    第二章 SSA格式基础
    第一节 几个概念
    第二节 格式
    第三节 事件
    第三章 SSA格式高级篇
    第一节 变换滤镜
    第二节 跨格式标记
    第三节 函数


    2楼2012-08-07 16:39
    收起回复

      前言
      平时很爱看电影和动画。接触动画多了,发现动画的OP和ED部分特效十分华丽,遂对此兴趣倍增。但翻遍网络,大多文章介绍时间轴字幕的制作,对于特效的介绍少之又少。几经波折,终于初窥字幕特效制作之门径,突然萌生想法,何不自己动手写一篇这方面的文章呢。于是本文诞生了!
      俗话有云:“说起来容易,做起来难。”的确,在写作本文的过程中遇到不少的问题,甚至曾经要放弃这个想法。拖拖拉拉许多天,总算是完成了。由于本人也是新手,所以不免有疏漏错误,望达人们在耻笑之余给予批评指正,同时希望对新学者有所帮助。
      本文面对的是有一定的字幕制作基础的读者,如果还不清楚字幕制作最基本的时间轴制作,那么请先学习有关字幕时间轴制作的相关文档。
      文中有些约定,必须先向各位介绍,否则对内容会产生误解。
      文中参数都是用一对尖括号括起来。 < >
      可选参数使用一对方括号括起来。 [ ]
      多个选择其中之一用斜杠隔开。 /
      示例代码都被框住显示。


      3楼2012-08-07 16:40
      回复

        第一章 字幕制作简介
        随着网络的普及,电影和动画也借助网络快速的发展着。的确,其速度之快令人瞠目结舌,今天首映的大片,明天就可以在某个网站搜到;晚上刚刚播出的动画,几个小时以后就会出现在某知名BT站点。在我们惊讶其出片速度之快的同时,难道就没有想过更深入的了解一下字幕制作的内幕么?
        字幕制作其实一点也不神秘,可分为片源提供、文稿翻译、时间轴、特效、校对、内嵌、压制几个步骤。而我们将要重点讨论的就是特效部分,其他方面已经有不少相关的文章介绍,在这里就不一一赘述了。
        第一节 常见字幕格式
        字幕文件有很多种,DVD使用的是图形化的字幕,由引导文件引导,相比这是一种低级的字幕形式,但是毕竟是外挂字幕的里程碑。如图:

        图1.1 DVD字幕
        


        4楼2012-08-07 16:44
        回复

          SRT和SSA字幕是更高级的字幕形式,这种字幕是文本文件,体积小巧,便于传输,修改方便。SRT只是带有显示时间和字幕文本的外挂字幕,而SSA除了上述SRT的特点外,最重要的是带有格式化文本的功能,这也是制作特效的基础。下图是外挂SSA字幕的动画:
          


          5楼2012-08-07 16:45
          回复

            第二节 常用软件
            工预善其事,必先利其器。制作字幕就要准备好相应的软件。SubCreator和SubStationAlpha是两款常用的字幕制作编辑软件。有很多文章介绍SubCreator的使用方法,这里就不详细说明了,但是我们会在后续的学习中使用到。而SubStationAlpha的使用又涉及到许多关于SSA字幕格式的知识,所以我们会慢慢的介绍这款软件。下图是SubStationAlpha的界面:

            


            6楼2012-08-07 16:47
            回复

              第三节 简单的字幕制作
              学习制作特效字幕之前,简单回顾一下一般字幕的制作方法。首先需要准备好一些东西:片源,翻译稿,SubCreator软件。我以漫游制作的《魔法使的注意事项》第一话为例,简单叙述一下:
              首先启动SubCreator,调入魔法使第一话的片源AVI文件和翻译文本,如图:
              


              7楼2012-08-07 16:49
              回复

                然后创建时间轴,校对保存成SSA文件格式。如图:


                8楼2012-08-07 16:50
                回复

                  保存SSA文件的时候按照如下设置,字体选择黑体,字号15,四个颜色分别选择&Hffffff、&Hfcc4a5、&H000008和&H000008。这些颜色的表示使用的是十六进制表示法,格式是&H加上十六进制颜色值,颜色值共6位,以BBGGRR的顺序排列,即头两位表示蓝色色阶,中间表示绿色色阶,最后两位表示红色色阶。当然,也可以将十六进制颜色值转化为十进制值直接写入,不用加前面的&H。就SubCreator来说,通过颜色选择而自动生成的代码使用的是十进制的数值,但是为了方便将来手动编写代码,我建议使用十六进制表示法。十六进制表示颜色值的好处在于可以清晰的看出组成颜色所使用的三元色(光学三元色,即红色、绿色、蓝色)之间的比例关系,甚至熟悉颜色编码的可以直接看出是什么颜色。
                  


                  9楼2012-08-07 16:51
                  回复

                    其他的设置如图:



                    10楼2012-08-07 16:52
                    回复

                      用记事本之类的文本编辑器打开刚刚生成的SSA字幕文件,会出现下面一些内容:



                      11楼2012-08-07 16:53
                      回复

                        第二章 SSA格式基础
                        在全面学习SSA代码编写特效之前,先介绍几个概念。SSA文件的结构正是由这些概念所组成的,在以后的SSA代码学习过程中,你会发现这些概念紧紧伴随你左右。本章简单的介绍了SSA文件的几个重要部分,对其中的信息部分和事件部分又做了进一步的讨论。结束本章的学习后,你将惊喜的发现,SSA文档已经去掉了神秘感,展现在你眼前的再也不是不知所云的天书了,并且你可以尝试着在上一章例子的基础上做一些改动,使得你的字幕看起来更加可爱。
                        第一节 几个概念
                        SSA文档结构性很强,从上面的例子中可以看到,第一行有[Script Info]这样的文字。还有下面有[V4
                        Styles]和[Events]两行,凡是这种行开头用一对中括号括起来的文字都标识着SSA文档的一个部分。第一个概念,部分。SSA文档可以分成若干的部分,但是主要的部分只有两个。下面一一介绍。
                        [Script Info] 信息部分。这部分保存关于SSA代码脚本总信息。必须要放在SSA文档的首位。也是必不可少的一个部分。
                        [V4 Style] 格式部分。这部分定义制作字幕中所用到的格式类型。
                        [Events] 事件部分。这部分保存具体的字幕显示方式。
                        [Fonts] 字体部分。对于内嵌字体信息的定义。
                        [Graphics] 图像部分。对于内嵌图像信息的定义。
                        其中[Fonts]部分和[Graphics]部分一般不用,所以我就不费笔墨做过多的介绍,以后用到会做介绍的。一般的SSA文件由前三个部分所组成,尤其是格式定义和事件部分的完美结合,体现了SSA外挂字幕的格式自定义的特点。这样,又引申出另一个概念,格式。

                        这段代码取自上一章我们使用SubCreator生成的SSA字幕文件,其中第三行由Style字样开始的就是定义格式,在同一个字幕文件中可以定义很多种类不同的格式,用于显示不同用途的字幕,比如可以定义专门显示字幕的主风格,然后再定义一个用来显示歌词文本的字幕格式,定义用来显示制作成员列表的字幕格式,定义用来显示免责声明的文本格式。但是无论怎样发挥你的聪明才智去定义五花八门的字幕格式,Default格式是必不可少的。在Style定义的格式中,规定了将来在事件部分中使用此格式的字体名称,字号等等各种各样的属性,Style定义字体的具体介绍会在第二节讲解。


                        13楼2012-08-07 16:57
                        回复
                          定义了各种格式之后,就要实际应用到字幕显示中,这在事件部分[Events]中实现。好,介绍第三个概念,也是最重要的概念,事件。

                          我截取了上一章生成的SSA文件一小部分事件代码。从[Events]标注开始的都是事件部分。发生在同一时间或者时间段内,具有相同或者极其相近属性的事情,称为事件。SSA规定了对话(Dialogue)事件、注释(Comment)事件、图片(Picture)事件、声音(Sound)事件、影片(Movie)事件和命令(Command)事件这样几类。这里我们只是使用了对话事件。从第三行开始,每一行的起始都是Dialogue标记,这就是对话事件。切记,每一个事件占用一行的文本,所以不能把同一个事件分成多行书写。在一般的字幕制作中,显示在一个画面的字幕正好对应一个对话事件,所以如果同时显示两行字幕的话,虽然想要使用双行显示,但是由于这两行文本是同时出现在同一个画面里面(即上面所提到的发生在同一个时间段内),而且都是主字幕(即具有相同的属性),应该属于同一个事件,而同一事件不能写成两行,所以输入的字幕文本不能加入回车换行。解决这类问题要用到跨格式标记(Style Override),后面会有大篇幅详细介绍。
                          


                          14楼2012-08-07 16:58
                          回复

                            注释事件就是一个以分号为行首的文本,例如,我们在上面的例子中在默认的Default格式定义的下面加上一个说明其功能的注释:

                            其中第三行行首的分号表示本行后面的内容都是注释,注释在脚本执行的时候自动忽略。对于有编程经验的人来说,理解什么是注释并不困难。我们只不过是把C++语言中的符号“//”变成分号而已,不过不要忘记这一点。其他类型的事件在今后用到的时候再提起。
                            刚才我们讨论对话(Dialogue)事件的时候提到了跨格式标记(Style Override),先看下面的代码:

                            


                            15楼2012-08-07 17:00
                            回复
                              我们刚刚介绍了事件(Events)的概念,这三行代码正好就是对话(Dialogue)事件。可以看出来这里的对话事件和前面的有所不同,注意每行最后一个逗号后面的文本:
                              


                              16楼2012-08-07 17:01
                              回复