【问题标题】:Procedural audio for rolling dice掷骰子的程序音频
【发布时间】:2012-02-04 22:23:59
【问题描述】:

我正在寻找有关如何在我的游戏中围绕掷一对 D6 骰子随机化音频的建议。我希望每掷骰子听起来不同,但合理合理。而且我不想做一堆预先录制的骰子,我想要更多的变化。请注意,我不需要将音频与动画同步(我使用的动画非常简单和抽象)。

我的假设是,我需要几个基本的音频 sn-ps 来播放单个芯片撞击表面一次的声音。 (对生成这些有什么建议吗?或者最好是捕捉它们?)然后我需要一些方法来改变和组合基本声音的变化来创造独特的滚动声音......或者我只是太无知而无法理解如何那会很复杂,我应该尝试不同的方法吗?

我正在使用 Java for Android 进行开发,但如果能提供有关如何合理组合或按程序生成任何语言的音频的教程或说明,我将不胜感激。我不需要实时支持,因为我认为我可以提前生成下一个掷骰子的音频并将其缓存,直到实际掷出骰子为止。

【问题讨论】:

    标签: java android audio procedural-music


    【解决方案1】:

    骰子可以产生两种声音 - 一种是撞击环境时;一个同时击中另一个骰子。阅读骰子碰撞声音的光谱仪可以为您提供泛音的比率。在像 Pure Data 这样的软件中很容易对此进行原型设计。这个想法是,通过稍微改变基频,你应该有一个更程序化的碰撞声音。您可能可以使用随机数来进行变化并预测碰撞。它可能不是完美的声音,但它可能是一个开始。

    这可能很模糊,但我希望它仍然有帮助:D。

    【讨论】:

      【解决方案2】:

      我的解决方案是使用免费的录音软件一次捕捉一个骰子滚动的声音。正确的软件将能够将这些文件切割成包含每个打击乐和残留音频的小样本。只需几次录制的掷骰子,您就会获得数十个“命中”样本。

      然后,使用 Java 加载对每个样本的引用,并设计一种算法,通过适当的时间修改以半随机序列播放它们。这样您就可以在播放过程中获得大量变化,而无需在播放前将音频混合到单个流中。

      【讨论】:

      • 这是预先录制的声音和完全程序化的声音之间的完美结合。事实上,我录制的掷骰子确实有很多明显不同的“命中”,所以这应该是相对简单的实现(一旦完成了标记和分割音频的繁琐工作)。
      【解决方案3】:

      您可以从综合工具包 (STK) 查看 "Shaker" class 的程序代码。 STK 是一个 C++ 库,但实际创建音频样本的过程并不难提取。默认情况下提供了许多类型的振动器。我希望您可以根据需要进行参数化并进行修改。

      【讨论】:

      • 这太棒了。它看起来是一个非常有用的库,可用于离线生成我可以使用的声音,并且它可能可以在线工作(尽管这会做更多的工作)。这不是我在搜索中遇到的东西,所以非常方便。
      猜你喜欢
      • 2014-04-21
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 2012-09-16
      • 2018-09-08
      • 2019-03-04
      相关资源
      最近更新 更多