我正在寻找最现实的方式来播放滚动球的声音。目前我使用的是一个Wav示例,只要球在移动,我就会一遍又一遍地玩--这感觉就是不对劲。
我一直在考虑完全合成声音,我对此知之甚少(几乎一无所知),如果有任何关于由特定材料制成的球在另一种材料表面上滚动的声音合成的教程/研究资料/样本,我将不胜感激。另外,如果这个想法是完全错误的,请提出另一种方法。
谢谢!
发布于 2009-08-24 23:29:38
我猜你会通过对声音进行动态频率调整,使回放频率与球的速度成正比,从而获得最大的回报。我不知道你使用的是什么类型的音频库,但大多数都会支持它的一些变体。
例如,在FMOD中,您可以使用Channel::setFrequency方法。理想情况下,您可以根据WAV的原始采样频率(Fo)、球的当前速度(Vc)和球的“理想”速度(默认WAV听起来正确的速度(Vi) )来计算所需的播放频率。通常是这样的:
F= Fo *( Vc / Vi )
当球离“理想”速度越来越远时,这将倾向于分解。您可能希望有几个不同的WAV,这些WAV适用于您在某些阈值速度下切换到的不同速度范围。在每个WAV的支架中,您将进行相同类型的频率调整。
另请注意:这可能不是值得每一帧都做的事情。我猜每秒这样做超过20次将是浪费时间。
附录:像这样的回放频率缩放也可以用来模拟多普勒效应。一旦你有了调整后的播放频率,你就可以根据球相对于“收听者”(摄像机)的速度执行另一种频率缩放。
发布于 2009-08-24 23:02:35
你有没有试过向前播放声音,然后向后播放,然后循环播放?我使用这个技巧来创建重复的模式。我对声音了解不多,但它可能行得通?
发布于 2009-08-24 23:03:33
一种方法可能是分析滚动球的声音,并将其分解为其分量波形。然后你就可以用合成的waves生成自己的wav文件了。
您应该能够使用FFT对声音样本执行此操作。
一个缺点是声音很可能是合成的-你必须添加噪声等使其听起来更逼真。让它听起来足够真实可能是最困难的部分。
https://stackoverflow.com/questions/1325229
复制相似问题