Quake4声音部分

原文地址 https://www.iddevnet.com/quake4/Sounds

声音着色器创建

Quake3中使用的“通道”的概念完全消失了。没有更多的SND_IDLE,SND_ACTION等,这些已被声音着色器所取代。声音着色器定义波形文件及其播放方式。这两个.wav文件和.ogg文件可以与新的Quake4引擎一起使用。

声音着色器就像素材着色器。它们位于base \ sound目录中,扩展名为.sndshd,您可以创建任意数量的声音着色器文件,它们都在运行时收集并加载在一起。

声音着色器是新Quake4引擎音频的根源。创建一个新的声音后,始终是一个好主意,然后立即创建着色器。这样,事情保持组织,你知道哪些声音可以在游戏中使用,哪些不是。定期浏览过去的着色器并清理未使用或无效的声音也是一个好主意,这样可以消除错误信息,只会保持更严格的船只。

以下是着色器的几个示例:

ambient_machinery11 
{
        minDistance 40
        maxDistance 600
        卷0

        循环
        
        声音/周围环境/工业/ machinery11.wav
}

这个特定的着色器是环境声音,它被创建为一个连续的循环。它以全音量开始,最小距离为“40”,并在“600”单位之间淡入淡出。音量设置为默认设置“0”,因此它将以您设计声音的任何音量播放。音量以dB为单位...所以如果你有一个高度压缩的声音,在许多情况下,可能不是一个超过“0”的好主意,因为你会得到剪辑/失真。已经输入了“循环”条目,从而使声音循环到完成播放周期的开始。

以下是其他一些例子:

gladiator_breathe 
{
        描述“角斗士huffin和海雀”
                
        minDistance 400
        maxDistance 1200
        卷0

        声音/ Strogg /斗士/ breath01.wav
        声音/ Strogg /斗士/ breath02.wav
        声音/ Strogg /斗士/ breath03.wav
        声音/ Strogg /斗士/ breath04.wav
}

sound player_steps_solid_metal 
{
        描述“玩家在步行固体金属材料时的脚步声”

        minDistance 400
        maxDistance 1200
        volumeDb 0
        经常使用
        no_dups

        声音/海洋/播放/措施/ concrete_01
        声音/海洋/播放/措施/ concrete_02
}

请注意,这些选项有不同的声音,着色器系统会在每次启动时从该列表中提取随机声音。您还将注意到,这些特定声音的最小和最大距离稍大一点,这使得播放器能够从远离声音的起点更清晰地听到声音。

以下是所有选项:

description [string] - 一个字符串,用于判断声音的使用和/或使用方式。对于对话,通常是讲话的短语。它纯粹用于发展目的,并不是声音引擎所要求的。

minDistance [float] - 设置与世界单位发出声音的最小距离。在世界物体或生物上使用时,将其设置为约40 - 120是个好主意。

maxDistance [float] - 设置声音发出的最大距离。超越这个距离,声音不能被听到。

volumeDb [float] - 以分贝设置世界声音的音量。0是默认音量,-60是完全静音。

leadinVolume [float] - 音量在0(静音)到1(满量程)音阶的音量。

未锁定 - 默认情况下,每个通道的音量在所有衰减计算后被钳位为1.0。设置此标志表示不应用此夹具。通过将cvar s_clipVolumes设置为0,可以将所有通道应用于未锁定。

循环 - 将着色器设置为循环。

playOnce - 如果已经在此频道上播放,则不要重新启动声音。

全局 - 这将强制声音忽略最小/最大距离设置并在全球播放。主要用于音乐和多人公告。

私人 - 只听播放声音的播放器上的声音。

antiPrivate - 播放此声音的播放器无法听到。

no_occlusion - 将着色器设置为不封闭,这意味着您将通过墙壁等来听到它们。对于令人毛骨悚然的东西,音乐床和门打开和关闭非常有用。

全方位 - 默认情况下,声音导航通过门户树,以找出与听众的距离。声音与这个标志做一个简单的距离检查和播放在相同的音量在所有的扬声器。

no_dups - 这是一个不允许着色器系统重复两次随机声音的设置。它创造了更多的一个现实的声音体验。脚步声是使用这个的一个很好的例子。

no_flicker - 这允许光线播放不影响其强度的声音。

经常使用 - 这是强制声音总是被解压缩的性能设置。它使用更多的内存,但显着提高性能。谨慎使用,只能用于真正“经常使用”的声音。一个例子就是玩家的枪声或脚步声。短暂的东西。

noRandomStart - 这是循环的声音。默认情况下,游戏将以循环播放的方式选择随机点。这个着色器parm强制声音从声音的开始播放。这对于顺序声音(加速,移动,减速,停止声音 - 如电梯)或音乐很有用。

voForPlayer - 这个声音是指向播放器的对话框,所以使人为地变得更大声,一切都更安静。

中心 - 通过偏向中央扬声器人为地增强了这种声音的音量。

causeRumble - 这个标志的声音引起强力反馈设备的隆隆声。

soundClass [int 0 to 4] - 这将某些声音组合在一起用于数量目的。例如,所有的音乐文件都在“soundClass 3”上,所以如果有人需要在脚本中全局改变音乐音乐的音量,那么它们只会在“soundClass 3”上淡入淡出。没有别的会改变。

频移[float] [float] - 允许声音的频率衰减。正常范围为0.75至1.25。

摇动[浮动] - 这定义了可以听到这个声音时屏幕抖动的程度。

no_shakes - 用于抑制抖动数据生成的工具的标志。一般来说,这是为了音乐。

shakeData [int] [string] - 以ascii形式的声音强度。z是大声的,一个是完全的沉默。每个字母代表1/30秒。

altSound [声音] - 这是一个光线的“破碎”声音。如果有声音的灯坏了,它会停止原声,如果存在,就播放这个声音。

minSamples [int] - 这覆盖了s_maxSoundsPerShader cvar。例如,对于低内存机器,限制被设置为1,但仍然需要具有多于一个脚步声。

Quake4声音放置

环境声音:

当您放置环境声音并在Quake 4中编辑混响数据时,在游戏实际运行时全部完成。以下screeshot是您将其放置在游戏环境中时所有的音频工具的外观。

  1. 这是音频编辑器。这是您编辑游戏中大部分扬声器数据的地方。
  2. 这是以窗口模式运行的实际游戏
  3. 这是OpenAL使用的混响编辑器。

准备好了吗 好!开始游戏并运行在窗口模式(r_fullscreen 0,然后vidrestart),加载你想开始放置环境声音的地图。你可能想要杀死所有的水平的怪物,让控制台下来,输入“killmonsters”和通过键入“神”无敌。这样你就可以通过这个层次而不用烦恼了。您可能还需要将密钥绑定到“noclip”,以便轻松访问空间。

现在放下控制台并输入“editsounds”。这将打开声音编辑器,使您可以在整个级别预览和放置环境声音。它将分析着色器文件的所有声音的属性(意思是音量和半径设置),但您可以对您在世界上放置的每个扬声器进行更改。

你可以看到,这个工具本身的大部分是不言自明的。如果您想在播放时选择特定的扬声器,只需点击扬声器,就像在游戏环境中进行拍摄。您还可以从下拉菜单中选择某些扬声器。您可能希望确保您处于“noclip”模式。如果你选择天空中的扬声器,那么玩家将会死亡。

完成放置环境声音后,始终是一个很好的主意,在正常水平下立即播放。这样可以确保您的环境声音不会太强大。

编辑混响:

如果您在OpenAL中运行游戏,那么您可以通过在控制台上键入“editreverb”来编辑地图中的混响设置。混响数据来自您的地图中的门户数据,因此如果更新门户数据,则必须更新混响信息。一般来说,混响通知应该是你在打电话给“最后”之前做的最后一件事。

世界对象和动画:

这是一个可以得到很多参与的过程,所以准备自己!执行此操作的方法是启动游戏,将控制台放下,并启动Modview。这将打开我们的内部模型/动画查看器工具。加载要附加声音的模型和/或动画,请注意您希望发生声音效果的帧号,然后打开相应的.def文件(在本例中为gladiator.def文件),该文件为home到你想编辑的动画。添加任何声音着色器到模型定义如下:

“snd_sight”“gladiator_alert”
“snd_stomp”“gladiator_footsteps_run”
“snd_punch”“gladiator_punch”
“snd_swing”“gladiator_swing”

接下来,在.def文件中找到特定的动画,然后使用这样的动画进行编辑:

anim range_attack1型号/怪物/角斗士/ gla_blaster_strafe.md5anim 
{frame 6,21 sound snd_stomp
       框架1,25声音snd_breathe
       帧4,25声音snd_servo       
}

这表明,对于角斗士的range_attack1的动画,脚趾声将发生在第6帧和第21帧,他的呼吸落在帧1和25上,而他的伺服声音在第4帧和第25帧发射。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章