Xact 与 AudioContent

Posted

技术标签:

【中文标题】Xact 与 AudioContent【英文标题】:Xact vs AudioContent 【发布时间】:2010-09-24 22:50:50 【问题描述】:

我正在使用 XNA 开发一个需要音效和音乐的游戏。我试图弄清楚如何实现声音引擎。 Microsoft 提供了使用内容管道加载和播放音频的能力。然而,我也看到人们使用 Xact 来做同样的事情。我的问题是,有什么区别?制作声音引擎的更好方法是什么?

【问题讨论】:

这真的取决于你正在构建什么。您并没有真正(或至少不应该)构建“声音引擎”,因为这就是 XACT 和 Content Pipeline 的音频内容。就我个人而言,我建议使用更简单的 Content Pipeline,如果以后发现需要它,请切换到 XACT。 我在一个小组中,我的职责是引擎编程。我只是在编写一个包装类,这样我就可以 A)提供易用性和 B)有能力拥有多个声音引擎。我只是想知道利弊,并弄清楚 MS 是否打算让我使用内容管道,或者是否一切都可以在 Xact 中完成。 【参考方案1】:

Xact 功能丰富但使用复杂。它最初是播放声音的唯一方法,但人们想要更简单的东西,所以微软添加了内容管道方法。

如果需要,请使用内容管道:

播放声音(2d 或 3d) 不必投入大量时间 学习音频框架

如果需要,请使用 Xact:

声音的类别 相互依存控制,如 静音游戏声音,但不静音菜单声音 对声音的实时高级控制 音高,音量。对于像这样的事情 炮塔旋转,汽车 加速等。 拥有多种 像七一样的单一音效 不同的疼痛声音并有 Xact 选择玩哪一个。 有一个声音播放略 不同的音高、音量、过滤器或 3d 每次播放时平移。这是 非常适合子弹和 诸如此类的重复的事情。那里 没有什么说假电脑 模拟像重复的声音 没有差异。 允许游戏设计师或声音 设计师完全控制编辑和 无需触摸即可更改声音 代码。 拥有健全的银行(收藏 声音),您可以加载或卸载为 一个组,可以使用不同的 压缩设置,可以在 内存或流媒体。 混合音量、音高和优先级 编辑器中的声音。 对声音应用过滤。 控制声音是否 循环与否。 使用 DSP 效果器

我最喜欢 Xact 的一项功能是在编辑器中编辑和预览声音功能。例如,炮塔过热声音上的音量衰减。使用 XACT,您可以与声音设计师坐下来,即使他不是技术人员,也可以编辑控制曲线,直到他对声音感到满意为止。一旦你设置了它,以后改变它真的很容易。在此示例图像中,炮塔过热。在过热循环结束时,嘶嘶的蒸汽噪音音量会降低,但因为它是一条曲线,所以我可以很好地控制声音的淡出方式。我也将它与光束武器一起使用,在弹药耗尽时根据曲线降低频率。

【讨论】:

以上是关于Xact 与 AudioContent的主要内容,如果未能解决你的问题,请参考以下文章

设置 xact_abort 并尝试一起捕捉

XACT_ABORT 不回滚 SQL Server 2012 上的事务

XNA,Monogame;有没有XACT的替代品?

当另一个声音使用 XNA/XACT 结束时,如何立即播放一个声音?

sql set xact_abort on 用例

SQL SET XACT_ABORT各种用法及显示结果