几乎每款游戏都离不开声音!我们通常将音频片段分为三类:
- 音乐
- 声音特效
- 演讲
Fungus 使用这里介绍的技术,提供了将所有 3 种音频片段包含在游戏内的直接方法。
免费音频来源
在将音频剪辑添加到游戏之前,您需要获取一些音频剪辑。以下是一些音频剪辑来源,供您在学习 Fungus 中的音频时使用,以防您手头没有音频剪辑。
以下是一些提供精美游戏音乐和音效的在线好地方。有些地方可免费用于任何用途(包括商业用途),有些地方仅供个人使用。一如既往,在将媒体资产用于任何商业产品之前,请检查其许可证...
- SoundBible.com上有很多创意共享和免版税声音
- Answers.unity3d
和StackOverflow.com上人们回答问题的大量音频源列表
- PixelProspector.com上免费和付费音乐来源的混合
您将在 Fungus Examples 文件夹中找到一系列音频剪辑:
向项目中添加音频
一旦您的计算机上有了一些音频剪辑,您就需要将它们导入到您的 Unity 项目中。
方法 1(菜单)
Assets | Import New Asset...
您可以通过选择菜单:并导航到并选择每个剪辑,一次执行一个剪辑。方法 2(拖放)
或者,您可以将文件或整个文件夹拖到 Unity 项目窗口中,Unity 将复制并导入所拖动的文件:
处理音频
在 Fungus 游戏中,有 3 种主要方式来处理音频。这些是 Audio 命令、Say 命令和包含 Unity Audio Source 组件的游戏对象。下面将讨论这三种方式:
真菌音频命令
可以添加到块中的音频命令范围如下:
您还可以声明一个包含语音画外音的音频剪辑,以对应使用Say命令显示的文本:
![真菌音频命令2] [真菌音频命令2]: ./playing_audio/003_fungus_audio_commands/2_say_voiceover_clip.png "真菌音频命令"
播放音乐命令
音乐声音片段会循环播放,因此播放结束后会重新启动。通常,块中的第一个命令是播放音乐命令。按如下方式将音乐添加到块中:
- (如果您还没有这样做:创建一个新场景,向场景中添加一个真菌流程图,然后选择流程图中的块)。
- 通过单击检查器中的添加命令(加号“+”按钮),然后选择菜单:
Audio | Play Music
,向当前块添加播放音乐命令。
- 确保在检查器顶部选择了播放音乐命令(绿色突出显示),然后将所需的音乐剪辑文件拖到检查器下半部分的“音乐剪辑”属性中:
- 根据需要更改音量(默认值为 1,值介于 0.0 和 1.0 之间,代表音量百分比从 0% - 100%)。
- 播放您的场景 - 音乐片段应该播放,并不断循环。
注意:如果您希望从已知时间点(而不是从头开始)播放音乐片段,请在播放音乐命令的检查器属性“时间”中输入所需的时间点。
播放声音命令
Fungus 播放声音命令将播放一次指定的音频片段。选择流程图块后,单击检查器中的添加命令按钮并选择菜单:
Audio | Play Sound
。拖入音效(我们选择了 Hunter 示例中的 BearRoad 声音):播放场景,您应该听到一次音效。
注意。Fungus 的默认设置是开始播放音效,在播放期间,块中的下一个命令将开始执行。但是,如果您选中“等待完成”复选框,则 Fungus 将等到音效播放完毕后,再继续执行块中的下一个命令:
设置音量命令
正在播放的音乐的默认音量为 1(100%)。但是,我们可以使用“设置音频音量”命令轻松更改此设置。请执行以下操作:
- (如果您还没有这样做:创建一个新场景,向场景中添加一个真菌流程图,然后选择流程图中的块)。
- 将此块重命名为“播放音乐”。
- 在当前块中添加播放音乐命令,然后将所需的音乐剪辑文件拖到检查器下半部分的“音乐剪辑”属性中:
- 如果您现在播放该场景,音乐将以最大音量播放(1 = 100%)。
- 现在在流程图窗口中创建第二个块,名为“quieter”。
- 向这个新的块添加设置音频音量命令。
- 在设置音频音量命令的属性中将音量设置为 0.25 (25%)。
- 选择“播放音乐”块,然后单击检查器中的加号添加命令按钮,然后选择菜单:来添加菜单命令
Narrative | Menu
。
- 将文本属性设置为“使更安静”,并将目标块设置为阻止“更安静”:
- 在流程图窗口中,您现在应该看到一个绿色箭头,显示“播放音乐”块中的命令将控制权传递给“更安静”块:
- 当你运行场景时,音乐将开始以最大音量播放,然后当你单击“使更安静”按钮时,控制权将传递给“更安静”块,在执行“设置音频音量命令”并将其设置为 25%(0.25)后,你会听到音乐变得更安静:
3 个 Unity 音频概念
Unity 有 3 种不同类型的音频“对象”,在 Fungus(或任何其他)Unity 项目中使用音频时值得了解这些对象:
- 音频片段
- 音频监听器
- 音频源
Unity音频剪辑
Unity 使用术语“音频剪辑”来指代存储在项目文件夹中的物理声音文件(.mp3、.wav、.ogg 等)。在 Fungus Block 中创建播放音乐和播放声音命令时,您可以将这些音频剪辑文件拖放到 Inspector 窗口中的“音乐剪辑”和“声音剪辑”属性中。
Unity Audio“听众”
基本上,如果您想要播放声音,场景中的一个游戏对象内必须有一个音频侦听器组件。场景的主摄像头默认有一个音频侦听器组件,因此在大多数情况下,您只需将其保留,并可以放心,您有一个音频侦听器。
如果场景中的任何游戏对象都没有音频监听器,那么游戏用户就听不到任何音频,无论播放多少音乐和声音片段。
有时,您可能会将包含另一个音频侦听器组件的游戏对象添加到场景中。在这种情况下,Unity 将显示一条警告消息,指出场景中存在多个音频侦听器。如果您看到这样的消息,那么最好通过禁用除一个音频侦听器之外的所有音频侦听器来解决此问题...
如果您正在开发 3D 游戏,并且/或者希望为用户呈现复杂的立体声体验,那么您可能需要了解 3D 音频。在这样的游戏中,包含音频侦听器的游戏对象的 3D“位置”变得很重要 - 但如果您刚刚开始使用 Fungus 中的音频,请不要担心这一点。对于 3D 效果,音频侦听器就像一个“电子耳朵”,因此它的位置决定了播放声音的音量(与“耳朵”的距离)和左右立体声平衡(哪一侧的音频对“耳朵”来说)等。
Unity音频源
在 Unity 中,我们希望播放的音频剪辑(音乐/声音)文件与场景中的音频侦听器之间的链接是游戏对象的 Unity 音频源组件。但是,在大多数情况下,如果需要,Fungus 会创建其中一个,所以我们不必担心它们!
但是,为了对游戏中的音乐、声音和语音进行复杂的控制,可以使用 Fungus 对 Unity Audio Sources 进行详细控制。它是一个 Audio Source 组件,用于控制音频片段的播放方式、播放时间和播放的哪一部分(以及是否应该循环播放),以及是否正在播放或暂停,以及何时恢复播放,应该从暂停的地方继续播放还是重新开始。正在播放的片段的音量也可以通过 Audio Source 的属性进行控制。
请在Unity 手册音频页面了解有关 Unity 中音频的更多信息。
控制音频命令
Fungus 音频命令涵盖所有常见的音乐和音效操作,对于专业音频工作,您可能需要访问 Unity 音频的原始(和复杂)功能。Fungus 命令“控制音频”允许 Fungus Blocks 直接与当前场景中任何游戏对象中的 Unity 音频源组件进行通信,因此您的音频团队成员可以使用 Unity 工具包执行他们需要执行的操作,而您仍然可以控制这些复杂游戏对象中的音频的播放/循环/音量等。
控制音频命令提供了五种可以传达给 Unity 音频源组件的操作:
我们将通过一个简单的 Unity 游戏对象来了解这一点,该游戏对象使用三个“控制音频”真菌命令播放两次熊的声音,第一次以最大音量播放,然后降低音量再播放第二次。请执行以下操作:
- (设置)如果您还没有这样做:创建一个新场景,向场景中添加一个真菌流程图,然后选择流程图中的块。
- 将此块重命名为“控制音频”。
- 在层次结构窗口中创建一个新的空游戏对象,选择菜单
Create | Create Empty
::
- 将这个新的空游戏对象重命名为“游戏对象 - 熊声”(或任何在您的项目中有意义的声音名称)。
- 在项目窗口中找到所需的音频剪辑文件,然后(选择“GameObject - 熊声”)将对音频剪辑的引用从项目窗口拖到检查器中:
- 现在应该在 Inspector 中将 Audio Source 组件添加到“GameObject - bear sound”。取消选中 Inspector 中的 Play On Awake 属性(以便在场景开始时立即停止播放此声音 -我们
希望控制此 Audio Source 对象...):
- 选择流程图块后,单击检查器中的添加命令按钮并选择菜单:
Audio | Control Audio
...
将“游戏对象 - 熊声”游戏对象从层次结构拖到检查器中的音频源属性中,然后选择等待直到完成复选框(这样 Fungus 将等待声音播放完毕后再继续):
- 请注意,控制音频命令的默认控制操作是“播放一次” - 我们将保持此属性不变,因为我们希望游戏对象内的熊声音播放一次。
- 如果你现在运行这个场景,你会听到熊的声音以最大音量播放一次。
- 由于我们需要的所有三个控制音频命令都使用指向“GameObject - bear sound”的链接,最快的工作流程是复制
每个命令,然后只更改我们需要的位。因此,通过单击“复制命令”按钮复制控制音频命令:
- 在新复制的命令中,将命令操作更改为更改音量,然后选择音量 0.25(25%):
- 再次复制第一个控制音频命令(播放声音)。将此新命令拖到命令序列的最后。
- 现在,当您播放场景时,首先,游戏对象“游戏对象 - 熊声”的音频源组件中链接的熊声应该以最大音量播放,然后(将音量降低到 25% 后)它应该以大大降低的音量播放第二次。
音频标签
由于对话作者通常知道他们希望将哪些音效或音乐与角色的话语关联起来,因此 Fungus 允许将与音频相关的“标签”嵌入 Say Commands 的文本中。有四个与音频相关的标签:
使用这样的标签使得在层次结构窗口中仔细命名游戏对象变得非常重要。要了解如何控制游戏对象中的声音,请执行以下操作:
- (设置)如果您还没有这样做:创建一个新场景,向场景中添加一个真菌流程图,然后选择流程图中的块。
- 将此块重命名为“说音频标签”。
- 在层次结构窗口中创建一个新的空游戏对象,选择菜单
Create | Create Empty
::
- 将这个新的空游戏对象重命名为“audioBearRoar”,或任何在您的项目中有意义的声音名称,但避免在此游戏对象的名称中使用空格。
- 在项目窗口中找到所需的音频剪辑文件,然后(选择“audioBearRoar”)将对音频剪辑的引用从项目窗口拖到检查器中。
- 取消选中音频源组件的检查器中的“唤醒时播放”属性(以便在场景开始时立即停止播放此声音 -我们
希望控制此音频源对象...):
- 选择流程图块后,单击检查器中的添加命令按钮并选择菜单:
Narrative | Say
。为此 Say 命令的故事文本属性输入以下内容“... 然后熊大声咆哮 {audio=audioBearRoar}”:
- 运行你的场景 - 文本显示后将播放熊的声音: