为了让 DLC 中的声音结构符合要求,您必须了解在已有结构基础上进行更改和添加将产生哪些影响。有一些常见情况需要特别注意,下面将详细介绍。
对于一些特定对象,在 DLC 中为其添加子项时,必须重新打包现有的 SoundBank 并包含在 DLC 中;但对一些其它对象,则可以通过新增 SoundBank 在 DLC 中为其添加子项。下表列出了需要重新打包 SoundBank 来添加子项的对象,以及可以在 DLC 中新增 SoundBank 来添加子项的对象。
需重新打包 SoundBank 才能将子项添加到 DLC 的对象 |
可使用新增 SoundBank 将子项添加到 DLC 的对象 |
---|---|
|
|
例如,假设有以下层级结构:
WorkUnit
ActorMixer
ContainerA
Sound1
Sound2
如果您将 ContainerA 放在主版本的 SoundBank1 中,那么对于 DLC,可以顺利地在 Actor-Mixer Hierarchy 内添加新容器。
WorkUnit
ActorMixer
ContainerA
Sound1
Sound2
ContainerB
Sound1
Sound2
随后您可以创建一个新的 SoundBank2 并添加 ContainerB ,加载 SoundBank1 和 SoundBank2 时,其中的结构将自动合并。但 DLC 中,不能在 ContainerA 下添加声音,并将其加入新的 SoundBank 中进行打包。如果必须添加,则必须重新生成 SoundBank1 并包含在 DLC 中,它将替换主发布版本中的 SoundBank。
备注 | |
---|---|
将 Event 和 Structure 与 Media 文件分离,这对计划发布 DLC 的游戏来说是一个很好的策略,因为重新打包 SoundBank 时,不会导致 DLC 容量剧增。 |
在同时或依次发布多个 DLC 时需特别小心,持续更新内容时,必须基于之前的 DLC 工程来构建新的 DLC 版本。
例如,假设您发布了主版本(包括 Init.bnk + RTM.bnk)、DLC-A(包括 Init.bnk + DLC-A-specific.bnk)和 DLC-B(包括 Init.bnk + DLC-B-specific.bnk)。如果 RTM、DLC-A 和 DLC-B 中总线结构不同,则 DLC-A 中的新增总线也必须位于 DLC-B 内。
3 个版本都需要包括含有总线的 Init.bnk 文件,因为用户可能:
没有 DLC
仅有 DLC-A
仅有 DLC-B
有 DLC-A 和 DLC-B
当存在 DLC-A 和 DLC-B 时,将加载 DLC-B 中的 Init.bnk。由于 DLC-B 中的 Init.bnk 是基于 DLC-A 构建的,因此 DLC-A 所需的总线也将可用。