音乐与音效

音效对于创建令人置信的、具有身如其境代入感的场景是非常重要的。从场景中的环境音效、到载具或武器的交互式音效、 再到游戏中角色间对话,游戏中的音频都决定着用户体验。将游戏中的音效制作得和真实效果一样听上去 可能是个非常难以完成的任务。但引擎 的音频系统提供了制作游戏中音效的工具及功能,使得音效能呈现出想要的感觉。这是很重要的, 因为它意味着只要在外部应用程序中制作一个干净的音效版本后,就可以导入到引擎中进行制作,创作出相应的效果。

0.1. 音频文件

引擎当前支持导入未压缩的小端字节16位wav, ogg文件(支持各种采样率,推荐采样率为44100 Hz或22050Hz)。

规格 PCM、ADPCM、DVI ADPCM
格式 .WAV、.ogg
比特率 16

0.2. 音频系统概述

利用引擎音频系统的工具和功能可以对游戏音效进行调整,使其拥有理想听感。一切都从音频源文件开始,使作品更加生动。以下是音频内容的基本要求和快速导入指南。

  1. 在Windows文件浏览器窗口中选择音效文件。 alt
  2. 点击并将其拖入编辑器中的 内容浏览器(Content Browser)。
    alt

0.3. 环境音Actor用户指南

您可以在 Content Browser(内容浏览器) 中 左击 并拖拽 音频文件到您的场景中。
alt
在世界中鼠标单击拾取环境音Actor,然后在属性栏中就会显示出环境音Actor可设置的属性。环境音作为Actor,除了基本的Actor属性(变换、Actor常规设置)外,还可在属性面板中设置Sound属性。

alt

0.4. 蒙太奇声音通知

动画通知 (简称 通知(Notifies))可以将事件设置为在动画中的特定点发生。 例如,在上图中,我们将通知设置为每次播放装弹动画时,在装弹蒙太奇中播放拿起弹夹的声音。

右键轨道添加通知,下拉选择Sound菜单,点击在当前轨道当前时刻添加声音通知,如下图所示: alt

鼠标点击选择声音通知结点,属性栏显示声音属性,具体如下图所示:
alt

0.5. 在代码中设置音效和音乐

---播放背景音乐 参数: 1. 音乐路径, 2. 是否循环
audio.AudioEngine:getInstance():playBackgroundMusic(szMusicPath, bLoop)
---停止播放背景音乐 参数: 1. 是否释放资源
audio.AudioEngine:getInstance():stopBackgroundMusic(bReleaseData)
---暂停播放背景音乐 
audio.AudioEngine:getInstance():pauseBackgroundMusic()
---恢复播放背景音乐
audio.AudioEngine:getInstance():resumeBackgroundMusic()
---判断背景音乐是否播放
audio.AudioEngine:getInstance():isBackgroundMusicPlaying()
---获取背景音乐音量
audio.AudioEngine:getInstance():getBackgroundMusicVolume()
---设置背景音乐音量 参数: 1. 音量大小 (0 - 1之间)
audio.AudioEngine:getInstance():setBackgroundMusicVolume(fVolume)
---播放音效 参数: 1. 音效路径, 2. 是否循环 返回音效Id
local nEffectId = audio.AudioEngine:getInstance():playEffect(szEffectPath, bLoop, pitch, pan, gain)
---暂停音效 参数: 1. 音效Id
audio.AudioEngine:getInstance():pauseEffect(nEffectId)
---暂停全部音效 
audio.AudioEngine:getInstance():pauseAllEffects()
---恢复音效 参数: 1. 音效Id
audio.AudioEngine:getInstance():resumeEffect(nEffectId)
---恢复全部音效
audio.AudioEngine:getInstance():resumeAllEffects()
---停止播放音效
audio.AudioEngine:getInstance():stopEffect(nEffectId)
---停止播放全部音效
audio.AudioEngine:getInstance():stopAllEffect()

为了防止卡顿提供了背景音乐和音效预加载的功能

---预加载背景音乐
audio.AudioEngine:getInstance():preloadBackgroundMusic(szMusicPath)
---预加载音效
audio.AudioEngine:getInstance():preloadEffect(szEffectPath)
---卸载音效
audio.AudioEngine:unloadEffect(szEffectPath)
@Copyright © cosmos 2019 all right reserved,powered by Gitbook修订时间: 2021-04-12 18:28:15

results matching ""

    No results matching ""