【问题标题】:Making a video games music get faster使视频游戏音乐变得更快
【发布时间】:2016-08-16 06:36:44
【问题描述】:

随着屏幕上的动作增加,一些视频游戏音乐似乎播放得更快。

他们是如何实现这种效果的,他们是否有相同的循环但只是加快了速度,他们是否将循环分成不同的部分并将它们更紧密地播放在一起?

我想我的封闭类比是“大白鲨”电影主题曲,它变得更快。

我正在寻找对此的任何意见,我不知道正确的措辞是什么。

【问题讨论】:

    标签: c# unity3d game-engine


    【解决方案1】:

    最简单的方法是增加音高。在 Unity 中,这可以通过修改 AudioSource.pitch 轻松完成。当它增加时,声音会更快,当减少时,声音会变慢,听起来像马里奥在水下。

    假设您使用Time.timeScale 降低游戏速度或使其运行得更快,则使用下面的代码 sn-p 声音也会变慢或播放得更快:

    AudioSource movingAudio;
    movingAudio.pitch = Time.timeScale;
    

    这种方法的缺点是pitch 会改变,tempo 也会改变。您将需要构建一个插件,以便在不增加速度和音高的情况下使声音播放得更快。实时重新采样音频剪辑是实际的解决方案,但这是一个复杂的话题。如果您决定制作插件,OnAudioFilterRead 用于执行此类操作。

    【讨论】:

    • 这并不完全正确 - 这会同时增加音高和速度(只需增加采样率即可达到此效果 - 音高是声音的频率,更高的音高 = 更高的音符)。有些游戏有非常复杂的音频系统,如果他们想在不影响音高的情况下提高音频速度,可能会实时重新采样。如果您不担心音高增加,那么这就是要走的路(可能是 Unity 中唯一支持的方式?)
    • 您可以拥有多个音频源以适应不同的游戏节奏,这取决于游戏状态,但您需要管理一个音频源如何连接到另一个音频源。
    • @Charleh 这取决于他在做什么。如果 OP 正在制作piano,那么他真的需要用 C++ 制作一些插件。 Unity 没有内置的方法来执行此操作。您必须制作一个插件并进行一些 CPU 密集型处理。如果您不关心音高的增加,那么只需更改 pitch 就可以了。
    • @ManoDestra 这是一个聪明的方法。只是玩家可能会知道音频何时切换,这会很烦人......
    • 不是真的,如果你淡入另一个。音乐的设计需要以迎合这种连续效果的方式进行。例如,玩一些像寓言这样的专业游戏,你就会明白我的意思。它也可以由业余开发者完成,但需要相当多的声音设计和耐心才能实现。不过我同意,这是一个简单的解决方案,如果他们能忍受投球效果,它就可以很好地满足要求:)
    猜你喜欢
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多