
原文地址 https://www.iddevnet.com/quake4/Sounds声音着色器创建Quake3中使用的“通道”的概念完全消失了。没有更多的SND_IDLESND_ACTION等这些已被 声音着色器 所取代。声音着色器定义波形文件及其播放方式。这两个.wav文件和.ogg文件可以与新的QuakeIV引擎一起使用。声音着色器 就像 素材着色器。.它们 位于 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- 这允许光线播放不影响其强度的声音。经常使用- 这是强制声音总是被解压缩的性能设置。它使用更多的内存但显着提高性能。谨慎使用只能用于真正“经常使用”的声音。一个例子就是玩家的weapon声或脚步声。短暂的东西。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是您将其放置在游戏环境中时所有的音频工具的外观。这是音频编辑器。这是您编辑游戏中大部分扬声器数据的地方。这是以窗口模式运行的实际游戏这是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帧发射。