个人工具

Blender2.5x-2.6完全教程 1.5.5

来自Ubuntu中文

Yq-ysy讨论 | 贡献2012年10月27日 (六) 22:54的版本 (3)字幕动画效果——

跳转至: 导航, 搜索

第 1.5.5 节 中文字幕制作方法 (subtitles)

  越来越多的人开始使用Blender的Video Sequence Editor视频序列编辑器(简称VSE)来进行影片的剪辑工作,但截止至目前的Blender 2.64版,还没有专门的字幕编辑器,因此在Subtitles字幕的制作上遇到了难题。如果使用其它字幕软件的生成的字幕TGA序列图片,这不利于字幕的校对和修改,如果想修改其中几个字,或者多加一两行,又得使用其它的字幕软件来生成TGA图片然后再导入Blender……这实在是太麻烦。

  因此,在Blender开发出字幕编辑器之前,就需要找到一种解决方案。下面介绍的Blender字幕制作方法,是直接使用Text文字物体设定字幕的动画场景,然后叠加到VSE视频序列编辑器中。因为从Blender 2.64 Linux版开始支持中文汉字的直接输入,所以这就实现了字幕制作的实时输入、编辑和修改,在同一软件上的一条龙流水线作业,不再需要使用其它字幕软件导入导出了。(其它尚未支持中文汉字直接输入的旧版本Blender,可以使用“粘贴UTF-8文本文件”的方法实现中文汉字的输入,具体的详细使用方法请参考第 1.5.2 节)。本例的字幕方法主要分四步进行,主要内容如下:

  • (1)布置摄像机和灯光——把摄像机设置为正交类型,把灯光设置为太阳光。
  • (2)中文汉字的设定——字体设定,添加黑边,电视台对字幕的一般要求。
  • (3)字幕动画效果——移动第二行替换第一行,生成后续相同动作关键帧。
  • (4)在视频序列中叠加字幕——字幕叠加到视频上,裁剪字幕只显示一行,一边预览视频一边输入、校对、修改字幕,根据视频中的对白调整每一句字幕的显示时间。

  这个方法也许并不是最简单的字幕制作方法,只希望能为大家提供一种解决问题的思路。如果哪位朋友有其它更好的字幕制作方法,也欢迎添加到本教程中,大家相互分享使用经验。

(1)布置摄像机和灯光——

  首先要注意,使用Blender剪辑一部影片时,最好让剪辑用的Video Sequence Editor视频序列编辑器和编辑字幕用的3D View视图编辑器使用的都是同一个Scene场景,这样就能实现在同一个窗口Layout布局中,一边在Video Sequence Editor视频序列编辑器中播放正在剪辑中的视频,另一边可以同时在3D View视图编辑器中输入或校对修改字幕。如果字幕和视频序列编辑器使用的是分别不同的2个场景,那么每次修改都需要在3D View视图编辑器和VSE编辑器之前频繁切换,操作起来就比较麻烦。

  • 现在新建一个空场景 ⇒ 点击最上方Info信息编辑器中的Choose Screen Layout选择屏幕布局菜单按钮 ⇒ 在弹出的菜单中选择Default默认的3D View视图(也可以按几下快捷键Ctrl →切换屏幕布局,请参考第 1.2.4 节) ⇒ 继续点击最上方Info信息编辑器中Scene场景旁的“+”号按钮 ⇒ 在弹出的New Scene新建场景菜单中,选择New新建(请参考第 2.2.5 节) ⇒ 新建的场景被自动命名为Scene.001,您也可以将它重命名,这个场景将专门用于影片的剪辑和编辑字幕。
  • 继续上例,现在设置灯光 ⇒ 现在3D Cursor游标处在场景的Origin原点(0,0,0)中央,如果不在中央 ⇒ Shift S 吸附捕捉 ⇒ 在弹出的Snap吸附捕捉菜单里,选择Cursor to Center游标移动到场景中心原点(请参考第 2.2.2 节) ⇒ Shift A 添加 ⇒ 在弹出的菜单中选择Text文本 ⇒ 可以看到,有Text字样出现在场景中央 ⇒ Shift A 添加 ⇒ 在弹出的菜单中选择Lamp灯光 ⇒ 在子菜单中选择Sun太阳(这一步很重要!之所以选择日光,是因为其光线平行均匀,照在文字上不会出现近明远暗的渐变现像) ⇒ G Z 3 把太阳向上移动3个单位。
  • 继续上例,现在设置摄像机 ⇒ Shift A 添加 ⇒ 在弹出的菜单中选择Camera摄像机 ⇒ 现在这个摄像机被添加在了场景原点的中央,但镜头的方向没有对准Text文字 ⇒ Alt R 物体旋转清零(请参考第 2.1.7 节),现在摄像机的镜头是朝下的了 ⇒ G Z 1 把摄像机向上移动1个单位,现在摄像机对准文字了 ⇒ 数字键盘 0 切换到摄像机视图,可以看到摄像机的取景框内只拍到了Text文字一小部分 ⇒ 右边Properties特性编辑器 ⇒ 摄像机图标Object Data物体数据标签页 ⇒ Lens镜头栏目下,默认已选中的是左边的Perspective透视型摄像机,现在改为选中中间的Orthographic正交型摄像机。(这一步很重要!这样最终得到的字幕才是平面的2D字幕,不会出现3D文字的厚度,较长的字幕也不会出现透视现像的变形。) ⇒ 现在在摄像机视图中可以看到,Text文字都出现在了摄像机的取景框内(这时,如果再沿着Z轴移动Camera摄像机,不论是靠近或远离Text文字,摄像机视图中的Text文字都不会发生近大远小的变化,这是因为在正交类型摄像机下,物体的大小都始终保持不变。)

(2)中文汉字的设定——

  • 继续上例,在进行中文汉字的设定之前,首先要做的,是设置好需要的画面 ⇒ 右边Properties特性编辑器 ⇒ 照相机图标Render渲染标签页 ⇒ Dimensions尺寸栏目下,点击Render Presets渲染器预设菜单按钮 ⇒ 在弹出的菜单中选择与您正在剪辑的影片一样的视频制式和尺寸比例(本教程以国内的普通电视制式TV PAL 4:3为例) ⇒ 右边Properties特性编辑器 ⇒ 摄像机图标Object Data物体数据标签页 ⇒ Display显示栏目下,勾选Title Safe字幕安全框 ⇒ 可以在View视图中看到,摄像机的取景框内,多了一圈带圆角的矩形虚线,屏幕上出现的所有字幕都应该处在这个Title Safe字幕安全框内,才能在所有的电视机上正确显示出来。

  我们在旧式的显像管电视机上实际看到的画面,会比电视机接收到的视频信号画面要小一些。也就是说,会有一小部分画面超出电视机的屏幕之外,我们看不到。不同型号的电视机,被超出看不到的画面部分大小也不尽相同。因此,Title Safe字幕安全框的作用,就是确保在Title Safe字幕安全框的视频图像部分是所有电视机都可以看到的。这块区域约占屏幕80%左右,要防止视频中的文字被电视机边缘遮盖,就应该将所有字幕或文字限制在字幕安全区域内。注意:不同的视频编辑软件,字幕安全框的大小和位置会有所不同。有的视频软件是使用两重安全线(字幕安全线和动作安全线),有的视频软件还可以自已手动调节字幕安全框的大小。因此,视频软件中字幕安全线仅仅是一个帮助字幕定位用的标识,是否符合当地电视台播出的标准,还需要参照各地电视台的实际技术要求。

  • 继续上例,现在设定字体、字号大小和字幕的位置 ⇒ 现在仍是在Object物体模式下,鼠标右键点击选中Text文字 ⇒ 右边Properties特性编辑器 ⇒ F图标Object Data物体数据标签页 ⇒ Font字体栏目下 ⇒ 点击Regular规则项目旁的“打开文件夹”按钮 ⇒ 在弹出的File Browser文件浏览器中,选择您需要的字体(通常用于影片对白字幕的字体是黑体字) ⇒ 好了,现在可以按下Tab键,切换到Edit编辑模式下,先随意输入四行汉字作为样板,然后再接着调整字体的大小和位置(请参考第 1.5.2 节) ⇒ 调节Font字体栏目下方的Size字体尺寸数值项目,可以调节为0.22 ⇒ 再下方的Paragraph段落栏目 ⇒ Aligin对齐项目中,把默认的Left向左对齐改选为Center居中对齐 ⇒ 下方Spacing间距栏目下默认为1.0的Line行距,调节为1.1(这样能减少以后字幕动画的误差) ⇒ 把鼠标放回View视图 ⇒ G Y 用鼠标沿Y轴上下移动Text文字,让文字处在字幕安全框内,且文字的最下端刚好压着字幕安全框的下沿边线,点击鼠标左键确定。注意:移动文字时参考“文字的最下端”,应选择有笔画“一竖到底”的汉字(例如“十”字),不要选择那些没有任何笔画处在最下端的汉字(例如“二、三”)。(建议滚动鼠标中键放大视图显示,然后再精细移动Text文字,以确保准确定位。)
  • 继续上例,现在设置背景 ⇒ 仍是在Scene.001场景的3D View视图中,到目前为止没有对Text文字做任何的颜色设置,也没有赋予Text文字任何的Material材质和Texture纹理 ⇒ 把鼠标放回3D View视图中 ⇒ F12 静态渲染当前帧 ⇒ 可以看到,Text文字已经是白色,由于我们在这个新建的Scene.001场景中也没有创建新的World世界或Ambient Effects环境影响,所以背景就是黑色(Blender刚启动时默认的Scene场景中有一个默认的World世界背景是灰色,因此,如果是在默认的Scene场景中添加的Text文字,则需要把World世界的默认背景删除掉)。
通常国内电视台对字幕的要求如下(不同省市地区的电视台要求也许会有所不同)
文字字体   用于对白的字幕一般要求用黑体字。(因为黑体字的每一个笔划都是粗细均匀的,所以观众最容易看清;而笔划“横细竖粗”的宋体字体、以及笔划“两端粗大、中间较细”的楷体和隶书,观众就不容易看清。)
文字颜色   白色。如果是处在画面中的字幕,则应加上黑边。(否则遇到画面中出现白色衣服、白色墙壁时,白色的字幕就看不见了)。如果制作的是“伪16:9”画面的字幕,由于字幕是可以放在画面外的黑色背景中,所以白色的字幕可以不用加上黑边。(黑边的粗细不可过粗或过细,黑边不应加在“外边框”造成字与字之间太拥挤,也不应加在“内边框”造成字体白色部分太少,而应加在“中间”。)
文字大小   以国内的普通电视制式TV PAL 4:3为例,横向27个字,纵向20个字,即27x20个字可填满整个画面。字幕安全框内横向约22字,纵向约16字。动作安全框内横向约25字,纵向约18字。(不能以办公软件或文字处理软件的“字号”来确定大小,因为同一字号的不同字体大小不同,即使是同一字号的同一字体在不同软件上显示的大小也不同。所以,最保险的方法,是把当地电视台播出的带字幕的电视剧或栏目剧的截图,放在View视图的背景图片中,参照着调节文字的大小。Backgtound背景图片的详细使用方法请参考第 4.1.2 节))
文字位置   用于对白的字幕,水平方向居中显示,垂直方向理论上是需要让文字处在字幕安全框内,且最下端刚好贴着字幕安全框的下沿。但现在大多数电视台是规定让文字处在动作安全框内,且最下端刚好贴着动作安全框的下沿,原因主要有二个,一是这样能尽量避免字幕太过靠近中央遮挡画面,二是这个位置刚好处在16:9宽屏电视剧画面下方的黑色背景处。(国内的普通电视制式TV PAL 4:3的画面高度为20行汉字,倒数第三行汉字即可处在字幕安全框内,倒数第二行汉字即处在动作安全框内。)
文字数量   用于对白的字幕只允许有一行,且每一行不超过13~15个字。(如果字数太多太长,观众眼球的移动范围过大,会使人感觉“找不着北,看得太累”。)
标点符号   用于对白的字幕不使用标号,需要断行的地方,用空格。(有三个标点符号是可以例外使用的:一是外国人名的间隔号·;二是书名号《》;三是表示引用或反语的双引号“”。)用于新闻或广告的水平滚动字幕则不受限制,可以有标点符号。
断行分行   同一个人这一句话如果字数少,可以用空格断行,在同一行显示。(例如在简单的称呼之后马上说的较短对话,带空格总共不超过13个字。)同一个人说的这一句话如果太长,超出13个字需要分行时,应尽量避免把意思连贯的词组分割开来。(可以选择在说话者停顿时、换气时、转换镜头时、或者在适宜的词语后面分行,总之要注意字幕的换行与影片节奏搭配恰当,不要因为字幕破坏了影片气氛。)用于对白的同一行字幕里,只能是同一个角色说的话。另一个人说话的内容应该分在下一行字幕显示。(即使是激烈的、快速的“吵架”,也不应该把不同角色的对话字幕放在同一行,否则容易使观众感觉混乱,不知道哪句话是谁说的。)
停留时间   如果该行字幕后面没有紧接着的对白声音,则7个字及以内较短的字幕应在对白说完后停留1秒,8个字及以上较长的字幕可以停留至2秒。(要留给观众足够的时间阅读字幕。)长时间没有对白时,在Blender中可以输入一个空白行用于“空白字幕的显示”。(注意:有些字体在换行后的那一空行的高度,也许会与该字体的高度不一致。所以为保险起见,可以在这一空行中输入一个全角空格符“ ”,这样就能确保这一空行与其它字幕行高度一致,避免在后面字幕移动换行移动时发生高度误差,并且这个空格在屏幕上也看不出来。)

  如果制作的是“伪16:9”画面的字幕,由于字幕是可以放在画面外的黑色背景中,所以白色的字幕可以不用加上黑边。但如果字幕是处在画面中,则应加上黑边。为Text文字添加黑边有多种方法,例如:纹理贴图法、节点特效法、双重叠加法等等,这些方法操作起来步骤多,比较麻烦,一大段中文汉字特多时,计算量很大,加大了系统的负荷,处理起来会显得很慢,渲染起来也花时间。因此,需要找一种简单的方法。以下方法是利用Blender自带有的Cartoon outline卡通轮廓渲染功能,实现为Text文字添加黑边。这虽然不是一个能让字幕“最清晰最完美地显示”的解决方案,如果您制作的是大屏幕的高清影片,则这种字幕加黑边的效果有可能会不太令您满意。但对于普通电视播出的电视剧以及网络短片来说,应该已经能够满足需要了,对于低配置的电脑来说,这也是系统负荷不大的比较可行的解决方案。

  • 继续上例,由于背景也是黑色的,现在我们需要在文字后添加一个平面,以方便观察字幕加黑边的效果 ⇒ 把鼠标放回3D View视图中 ⇒ F11 切换回3D View视图 ⇒ Shift A 添加 ⇒ Mesh 网格物体 ⇒ Plane 平面 ⇒ S 2 放大2倍 ⇒ G Z -1 沿Z轴向下移动1个单位,让平面处在文字的下方 ⇒ 右边Properties特性编辑器 ⇒ 原子能图标Material材质标签页 ⇒ 点击“+ New”新建按钮,新建一个材质,自动命令为Material.001 ⇒ 在下方出现的众多材质特质面板中 ⇒ 点击Diffuse漫射栏目下方的白色色块 ⇒ 在弹出的选色板中鼠标点击选取任意一种颜色(请参考第 4.1.1 节) ⇒ 把鼠标放回3D View视图中 ⇒ F12 静态渲染当前帧 ⇒ 可以看到有颜色的平面与白色的汉字,如果平面是较浅的颜色,则白色的汉字看上去就比较难以辨认。
  • 继续上例,现在给字幕加黑边 ⇒ 右边Properties特性编辑器 ⇒ 照相机图标Render渲染标签页 ⇒ 下方有个Post Processing后期处理栏目,展开这个栏目 ⇒ 勾选上Edge棱线,下方的Threshold临界值默认是10不用管它,再下方的色块默认是黑色也不用管它 ⇒ 把鼠标放回3D View视图中 ⇒ F12 静态渲染当前帧 ⇒ 可以看到文字已经被加上了黑边,但似乎有点太过头了,文字的白色部分都看不清楚了,没关系,有解决办法 ⇒ 把鼠标放回3D View视图中 ⇒ F11 切换回3D View视图 ⇒ 鼠标右键点击选中Text文字 ⇒ 右边Properties特性编辑器 ⇒ F图标Object Data物体数据标签页 ⇒ Geometry几何构造栏目下 ⇒ 把Bevel倒角项目下的Depth深度数值修改为0.006(这样做的原理是,把3D汉字的底部扩大一些,这样Post Processing后期处理勾勒出来的黑边就向外扩展一些了,顶部的白色汉字字面就能显得清晰一些了) ⇒ 把鼠标放回3D View视图中 ⇒ F12 静态渲染当前帧 ⇒ 可以看到,这回文字清晰多了。
  • 继续上例,反复细微调整 ⇒ 如果发现添加的黑边“颜色太锐利、而且似乎有锯齿状”的话,只需勾选上方的Anti-Aliasing抗锯齿栏目即可(默认已勾选),里面的默认参数不用修改 ⇒ 把鼠标放回3D View视图中 ⇒ F12 静态渲染当前帧 ⇒ 现在正在显示着渲染结果的是UV/Image Editor图像编辑器 ⇒ 鼠标点示下方的View视图菜单 ⇒ 选择Zoom 1:1缩放显示(本例是按国内普通电视机的TV PAL 4:3比例720x576大小) ⇒ 可以看到,字幕加黑边的效果还是不错的。(根据您选择的字体不同,也许需要多次调节Bevel倒角项目下的Depth深度数值,才能调节出适当的黑边宽度效果。) ⇒ 把鼠标放回3D View视图中 ⇒ F11 切换回3D View视图 ⇒ 鼠标右键点击选中Plane平面 ⇒ X 删除,回车确认。

(3)字幕动画效果——

  • 继续上例,预置字幕停留的时间和动作 ⇒ 上方的Info信息编辑器 ⇒ 点击Choose Screen lay-out选择屏幕布局设计菜单按钮 ⇒ 在弹出的菜单中选择Animation动画布局(也可以按几下快捷键 Ctrl → 切换) ⇒ 点击最上方Info信息编辑器中的Browse Scene to be linked浏览可链接的场景菜单按钮 ⇒ 在弹出的菜单中选择Scene.001 ⇒ 确认下方的Timeline时间线编辑器中,绿色的当前帧指示线处在第0帧 ⇒ 把鼠标放到3D View视图编辑器中 ⇒ 数字键盘 0 切换到摄像机视图 ⇒ 之前我们已经把第一行字幕文字的下端刚好压在字幕安全区的下沿边线上了 ⇒ I 弹出Insert Keyframe Menu插入关键帧菜单 ⇒ 选择菜单中的第一项Location位置 ⇒ 下方的Timeline时间线编辑器中 ⇒ 把绿色的当前帧指示线移动到第25帧,即1秒处。(也可在时间线编辑器下方的当前帧数字框中调节数字) ⇒ 把鼠标放到3D View视图编辑器中,不要移动任何物体 ⇒ I 在弹出的菜单中选择Location位置,再次插入一个关键帧(这2个关键帧的作用是,让第一行字幕在原地停留1秒即25帧。)
  • 继续上例,预置字幕切换的时间和动作 ⇒ 点击一下时间线编辑器下方的当前帧数字框右边的小三角箭头,让绿色的当前帧指示线向前移动1帧,即移动到第26帧 ⇒ 鼠标右键在3D View视图编辑器中选中Text文字,向上点按拖动绿色的Y轴操纵杆(请参考第 2.1.3 节),把Text文字向上沿Y轴移动,让第二行字幕文字的下端刚好压在字幕安全区的下沿边线上,点击鼠标左键确定。(移动之前,可以先滚动鼠标滚轮放大View视图显示,以确保移动的位置准确。这一步很重要!否则以后这一微小误差累积起来会让后面的字幕越来越偏上或偏下,无法把握时,宁可稍微移动偏上,因为之前调大了行距,在数行内的误差积累还不会造成错误的显示。) ⇒ I 在弹出的菜单中选择Location位置,再次插入一个关键帧(这一步很重要!这一个关键帧的作用是,让第二行字幕替换掉第一行字幕,且这个移动过程只需一帧就完成,这样观众就感觉不到“字幕向上移动”的过程,只会感觉是“字幕变换了”。)
  • 继续上例,做一些准备工作 ⇒ 插入关键帧之后,可以看到下方Timeline时间线编辑器中出现了3条黄色的竖线,表示在此帧处存在有关键帧 ⇒ 在Animation动画布局的左边,上面是DopeSheet动画概览编辑器,下面是Graph Editor曲线编辑器,把鼠标放在这两个编辑器其中一个的网格区域内,滚动鼠标滚轮可以放大显示,按着鼠标中键可以移动观察网格区域 ⇒ 可以看到,DopeSheet动画概览编辑器中显示着3列关键帧,这些关键帧所处的位置与下方的Timeline时间线编辑器中3条黄色的竖线是一一对应的 ⇒ 下面Graph Editor曲线编辑器中,隐隐约约地看到有一条暗红色的横线,和一条淡绿色的拐弯的横线。这两条线上还有几个桔黄色的小圆圈 ⇒ 鼠标点击Graph Editor曲线编辑器TextAction文字动作项目左边的小三角形,可以看到出现了一个Location位置项目 ⇒ 继续展开Location位置项目,可以看到出现了XYZ三个Location位置 ⇒ 因为我们的字幕动画只需要沿Y轴向上移动,所以不需要用到X轴和Z轴,用鼠标左键点击X Location位置和Z Location位置右边的小锁头,使锁头呈闭合状态,锁定X轴和Z轴的位移不可动 ⇒ 鼠标左键点击选中Y Location,让其名称呈白色,网格区域内的表示Y轴的淡绿色弯折横线也变成了明亮的绿色 ⇒ 鼠标点击Graph Editor曲线编辑器下方的View视图菜单 ⇒ 在菜单中取消Show Handles显示调节杆的勾选,可以看到,绿线上的桔黄色的小圆圈不见了。(因为我们的字幕动画都是在一帧之内简单的直线运动,所以不需要使用Handles调节杆,关闭其显示是为了避免误选中Handles调节杆造成误操作。)
  • 继续上例,快速生成字幕的重复动作 ⇒ 把鼠标放在Graph Editor曲线编辑器的网格区域中 ⇒ 鼠标右键点击选中绿色折线上的第二个黑色控制点,被选中的控制点呈桔黄色 ⇒ N 展开右侧Properties特性栏 ⇒ 点击展开Active Keyframe活动关键帧栏目 ⇒ 记下Key键值项目下的Value数值(例如:-1.728) ⇒ 鼠标右键点击选中绿色折线上的第三个黑色控制点,记下Key键值项目下的Value数值(例如:-1.486) ⇒ 计算这两个控制点Value数值之差(例如:1.728-1.486=0.242) ⇒ 把鼠标放在Graph Editor曲线编辑器的网格区域中 ⇒ A 全不选 ⇒ B 框选绿色折线上的第2个和第3个控制点 ⇒ Shift D X 25 复制这2个控制点,并沿X轴横向移动25帧(即1秒) ⇒ G Y 0.242 继续把这2个调节点沿Y轴向上移动0.242个单位 ⇒ B 继续框选绿色折线上的第2个至第5个一共4个控制点 ⇒ Shift D X 50 复制这2个控制点,并沿X轴横向移动25x2=50帧(即2秒) ⇒ G Y 0.484 继续把这2个调节点沿Y轴向上移动0.484个单位
  • 继续上例 ⇒ 根据您的影片需要的对白字幕行数,重复同样的方法,每次选中除第一帧外的所有控制点(每一个台阶2个控制点为一对,共N对),每次Shift D复制后,沿X轴移动(25xN)帧,沿Y轴移动(2的N次方帧) ⇒ 只需重复操作8次,即可得到256行字幕移动的动画关键帧,9次可得到512行。

(4)在视频序列中叠加字幕——

  • 继续上例 ⇒ 上方的Info信息编辑器 ⇒ 点击Choose Screen lay-out选择屏幕布局设计菜单按钮 ⇒ 在弹出的菜单中选择Video Editing视频剪辑布局(也可以按几下快捷键 Ctrl → 切换) ⇒


  注意:由于汉字的结构比较复杂,如果您的电脑配置不高,那么在输入了很长一大段汉字之后,有可能会造成系统的负荷过重、运行缓慢甚至崩溃退出。所以在编辑过程中,请注意经常及时保存。

  • View视图里默认已有并已选中Cube立方体 ⇒ T


(请参考第 2.1.3 节


— 返回目录 —