作者:cloud
怎么为自己开发的游戏制作音效(来源知乎)
经历过几个游戏的音效制作过程,下面是一些经验谈,
音效要达到何种效果取决于2个方面:需求和资源(包括预算和制作能力)。
如果需求简单,要求不高,没有预算,只是自娱自乐,自己去网上或游戏扒就OK
如果对自己的产品有要求,有预算,但团队没有音效制作的经验和能力,建议外包,省钱省时间,缺点是沟通成本高,需要磨合;
如果对自己的产品有要求,有预算,有一定的音效制作能力或兴趣,想自己尝试解决音效问题,可以继续向下看(需要积累,最可控)
先交待一下整个流程,大概分为5个步骤,分别是1-需求,2-动画与场景准备,3-素材收集,4-音效编辑,5-输出
1-需求
这个环节基本是个填表的过程,考虑到项目的整体过程,所以在需求阶段,需要为后续工作做一些统筹和规范。
可以设计一个叫音效需求模版。xlsx的文件,表格的字段如下:
注意字段前面的1,2,3,4,5还有颜色,和整个流程的序号和颜色保持一致,当我们进行到不同的阶段,会不断完善这个表格,最终完成的时候,这个表格会包含整个音效产生过程的相关文件的路径信息,方便你进行管理。
音效需求表字段
1-音效名称
1-音效用途与使用场景
1-效果描述
1-独立播放或循环
2-对应动画文件路径
2-时长
3-素材目录
4-编辑源文件路径
4-开发用文件名
4-高品质文件名与路径
5-使用输出文件名与路径
需要明确⼀一点,开始写需求的时候,只填写“1-”对应的字段即可;另外,别指望⼀一下就能百分百 ⽆无误的把所有需求罗列列出来,以尽可能详细的罗列列出所有需要添加⾳音效的地⽅方,后续增删改即 可。
1-需求部分完成后,我们就得到了了⼀一个填写了了1⼩小半的excel表格,对项⽬目需要制作⾳音频的数量量,规 模有了了初步的概念。
2-动画与场景准备
这个过程,需要整理理出需要配⾳音效的视频。 好的⾳音效需要和动作过程同步,在⾳音效编辑的时候,例例如Audition,你可以把视频⽂文件拖拽到1个 ⾳音轨上(⼀一个多轨只能有⼀一个视频),这样可以精确的进⾏行行声画同步操作。
可以在⼀一个视频,录制多个不不同的过程。
在这个过程准备中,可以把需求表格“2-”的部分填写完成,包括视频的路路径和⽂文件名,需要制作 的⾳音效的⼤大致⻓长度。
视频置⼊入后,可以给需要配⾳音的地⽅方添加标记并命名(快捷键是 m),这样你就不不⽤用每次都来回 滚动视频找⾳音频起点了了。
这个过程要提醒你,要开始着⼿手管理理好⾳音频⼯工程的⽂文件⽬目录,在⾳音频项⽬目下⾯面,建⽴立⼀一个视频⽬目 录,对视频⽂文件进⾏行行集中管理理,记得在表格⾥里里填写对应⾳音效的视频⽂文件的路路径和⽂文件名。顺⼿手做 的事情,在项⽬目真的开始进⼊入编辑环节的时候,会提⾼高很多效率。
3-素材收集素材收集是个相对关键的环节,也是需要创造和想像⼒力力的环节。如果需要规避版权问题,可以直 接去卖⾳音效素材的⽹网站搜索,这样效率相对⾼高些,不不过好的素材⼤大多都在国外……
素材收集的⾸首要原则就是:素材品质⼀一定要⾼高,尽可能的⾼高!很多扒来的素材,通常都经过严重 的压缩,糟糕的素材会导致你编辑的时候困难重重(很难获得完美效果)。这个过程好像找图⽚片 素材的时候,尽量量避免那些⼩小尺⼨寸的jpg或gif(压糊了了或⾊色彩损失巨⼤大),去找那些⼤大尺⼨寸的PSD、TIFF、AI这样的源⽂文件⼀一样。
在线搜索素材
下⾯面举个通过⽹网站寻找素材的栗栗⼦子,我常⽤用的audiojungle
audiojungle.net/categor…在这⾥里里找⾳音效,考验你英⽂文关键字的把握能⼒力力,多尝试吧,⽐比如搜索magic flash,如果英⽂文不不 佳,果断⽤用各种翻译软件帮你找关键字。 寻找合适的⾳音效,本身就是⼀一个探索和尝试的过程,需要⼤大量量的时间~~~
出来数百个,挨个听下去吧,如果遇到感觉靠谱的,可以先别急着购买(这个过程你还不不能确定 是否最终要⽤用),可以先下载预览版本:
点击后可以获得⼀一个preview.mp3的预览版⽂文件,不不过这个素材通常会有⼀一个⼈人声的⽔水印。把这个mp3修改⽂文件名(按⾃自⼰己的习惯取吧),放⼊入素材⽬目录下(否则后⾯面所有下载的预览⽂文件都是这 个名),记得把这个素材的链接先记录到表格“3-素材⽬目录”⾥里里,相信我,当你真的需要这个⾳音效 的正式版的时候,如果没有链接,会哭的。
通常,⼀一个⾳音效,通常会找出多个素材作为备选。 另外,别期望⼀一下就找到完全合适的,你可能需要多个⾳音效进⾏行行组合编辑,才能达到满意的效果。
我通常会把这个素材在Audition做⼀一下去⼈人声⽔水印,去⽔水印会进⼀一步损失⾳音频质量量,但可以在⾳音效 的初期编辑的时候,帮你决定这个素材是否合适(动作节奏,效果等)。
如果最终决定要⽤用这个素材,可以在右侧购买。付款后,你可以获得下载⾼高质量量版本素材压缩包 的链接,并且还可以选择下载授权⽂文件。
下⾯面是⼀一个⾳音效素材的示例例⽂文件截图:
压缩包展开后,通常会有⼀一个wav⽂文件和MP3⽂文件(不不同制作者提交的⽂文件内容可能会有所不不 同,有些⾳音效可能包括多个不不同的⾳音效⽂文件,会分别在包⾥里里提供)。这个138K的wav就是可以⽤用 来进⾏行行最终编辑的⽂文件。
⾳音效素材库
有很多⾳音效素材库,按题材分类,通常都是数G规模的容量量,⾥里里⾯面会提供⾼高品质的wav格式的素 材,⼿手头有个100G+的⾼高品质⾳音效库后,就可以⽐比较蛋定的⾯面对各种题材的需求了了。 素材库⾥里里找到合适的,记得复制到⾃自⼰己⼯工程的素材⽬目录下,不不要把原⽂文件拖⾛走喽。
创作或录制
对⾳音效的终极追求,就是⾃自⼰己创作或录制了了,这⾥里里本⼈人⾮非专业⼈人⼠士,所以不不在多说了了,⾳音效创作 的⼯工具很多,每个宿主软件都博⼤大精深,有兴趣的⾃自⼰己去找把,要录⾳音的话,⽔水也相当深……
如果有需要找外包录制⼈人声,记得要求对⽅方提供⽆无混响的单声道⼲干声录⾳音⽂文件,这样你在后期编 辑的时候,有⾜足够的调整空间。
这个环节结束后,你的表格应该填了了⼀一⼤大半,然后⼯工程⽬目录下,塞满了了各种素材⽂文件,料料备⻬齐 了了,可以开始炒菜了了。
4-⾳音效编辑这个环节是整个流程的核⼼心,本身就是⼀一个创作过程,对于剪辑型的⾳音效编辑,Audition这样的软 件就可以了了,最好在配合Waves插件,基本上就可以应付绝⼤大多数需求了了。 但如果要创作⾳音效,最好再精修⼀一⻔门⾳音频宿主软件,如Logic 、Cubase、FL Studio等。 ⾄至于Audition和Waves的⽤用法就不不在这⾥里里介绍了了,⼤大把教程。 ⼯工作过程基本就是结合视频,把找来的⾳音频素材拖到不不同⾳音轨上,裁剪,调整⻓长度,加混响,压 缩,调整EQ……直到合成的⾳音效和画⾯面完美配合,最终输出⾼高质量量的wav⽂文件。
编辑过程中要时刻注意合成⾳音效的电平指标,别爆了了,也别太⼩小,最好项⽬目初期,就定下⼀一个合 适电平标准,确保输出的⾳音效(具体多少,可以⾃自⼰己尝试),统⼀一在设定的电平阀值内,否则最 终⼏几⼗十个⾳音效输出的时候,电平不不⻬齐,声⾳音强弱不不⼀一,再来调⼀一遍很痛苦的。 如下图,是Audition的编辑环境,可以在电平处开启静态峰值,这样可以帮你查看电平最⾼高的点。
编辑好的⾳音效,输出⾼高品质的wav作为原始⽂文件,记得这个⽂文件要按照⼯工程规范的⽂文件名命名(如何命名,可以和开发⼈人员把规范确定)!这样你最后输出压缩⾳音频⽂文件的时候,可以批量量进 ⾏行行,直接批量量导出开发要的的mp3,ogg等格式⽂文件,甚⾄至在对包进⾏行行减肥的时候,批量量进⾏行行调 整。
最后记得填表!
4-编辑源⽂文件路路径4-开发⽤用⽂文件名4-⾼高品质⽂文件名与路路径
现在,你⼿手头有了了⼀一堆⾼高品质的成品wav了了。
5-输出
这步的终极⽬目标,就是要导出给开发使⽤用的最终⾳音效⽂文件。 在Audition的“/编辑/批处理理”下,可以把所有⾳音频⼀一股脑丢进去,⾄至于输出是mp3还是ogg还是其 他,和开发商量量吧,输出的品质视包的⼤大⼩小要求,这是⼀一个品质和⼤大⼩小的平衡问题,每个项⽬目有 ⾃自⼰己的平衡点,需要⾃自⼰己把握。
压得太狠会让⽂文件⼤大幅降低,但声⾳音的损失会很⼤大。压得⼿手软点,⽂文件会变得⽐比较⼤大,⾃自⼰己去 听,去试吧。
祝愿⼤大家都能作出⾃自⼰己满意的⾳音效。
Unity Shader入门精要
前言
第2章 渲染流水线
图2.1 真实生活中的流水线
图2.2 渲染流水线中的三个概念阶段
图2.3 渲染所需的数据(两张纹理以及3个网格)从硬盘最终加载到显存中。在渲染时,GPU可以快速访问这些数据
图2.4 在同一状态下渲染三个网格。由于没有更改渲染状态,因此三个网格的外观看起来像是同一种材质的物体。
图2.5 CPU通过调用Draw Call来告诉GPU开始进行一个渲染过程。一个Draw Call会指向本次调用需要渲染的图元列表
图2.6 GPU的渲染流水线实现。颜色表示了不同阶段的可配置性或可编程性:绿色表示该流水线阶段是完全可编程控制的,黄色表示该流水线阶段可以配置但不是可编程的,蓝色表示该流水线阶段是由GPU固定实现的,开发者没有任何控制权。实线表示该shader必须由开发者编程实现,虚线表示该Shader是可选的
图2.7 GPU在每个输入的网格顶点上都会调用顶点着色器。顶点着色器必须进行顶点的坐标变换,需要时还可以计算和输出顶点的颜色。例如,我们可能需要进行逐顶点的光照
图2.8 顶点着色器会将模型顶点的位置变换到齐次裁剪坐标空间下,进行输出后再由硬件做透视除法得到NDC下的坐标
图2.9 只有在单位立方体的图元才需要被继续处理。因此,完全在单位立方体外部的图元(红色三角形)被舍弃,完全在单位立方体内部的图元(绿色三角形)将被保留。和单位立方体相交的图元(黄色三角形)会被裁剪,新的顶点会被生成,原来在外部的顶点会被舍弃
图2.10 屏幕映射将x、y坐标从(-1, 1)范围转换到屏幕坐标系中
图2.11 OpenGL和DirectX的屏幕坐标系差异。对于一张512*512大小的图像,在OpenGL中其(0, 0)点在左下角,而在DirectX中其(0, 0)点在左上角
图2.12 三角形遍历的过程。根据几何阶段输出的顶点信息,最终得到该三角网格覆盖的像素位置。对应像素会生成一个片元,而片元中的状态是对三个顶点的信息进行插值得到的。例如,对图2.12中三个顶点的深度进行插值得到其重心位置对应的片元的深度值为-10.0
图2.13 根据上一步插值后的片元信息,片元着色器计算该片元的输出颜色
图2.14 逐片元操作阶段所做的操作。只有通过了所有的测试后,新生成的片元才能和颜色缓冲区中已经存在的像素颜色进行混合,最后再写入颜色缓冲区中
图2.15 模板测试和深度测试的简化流程图。
图2.16 混合操作的简化流程图
图2.17 图示场景中包含了两个对象:球和长方体,绘制顺序是先绘制球(在屏幕上显示为圆),再绘制长方体(在屏幕上显示为长方形)。如果深度测试在片元着色器之后执行,那么在渲染长方体时,虽然它的大部分区域都被遮挡在球的后面,即它所覆盖的绝大部分片元根本无法通过深度测试,但是我们仍然需要对这些片元执行片元着色器,造成了很大的性能浪费
图2.18 CPU、OpenGL/DirectX、显卡驱动和GPU之间的关系
图2.19 命令缓冲区。CPU通过图像编程接口向命令缓冲区中添加命令,而GPU从中读取命令并执行。黄色方框内的命令就是Draw Call,而红色方框内的命令用于改变渲染状态。我们使用红色方框来表示改变渲染状态的命令,
是因为这些命令往往更加耗时
图2.20 命令缓冲区中的虚线方框表示GPU已经完成的命令。此时,命令缓冲区中没有可以执行的命令了,GPU处于空闲状态,而CPU还没有准备好下一个渲染命令。
图2.21 利用批处理,CPU在RAM把多个网格合并成一个更大的网格,再发送给GPU,然后在一个Draw Call中渲染它们。但要注意的是,使用批处理合并的网格将会使用同一种渲染状态。也就是说,如果网格之间需要使用不同的渲染状态,那么就无法使用批处理技术