2012-02-04 82 views
2

我正在尋找關於如何在我的遊戲中滾動一對D6骰子隨機播放音頻的建議。我希望每一個骰子聽起來都不一樣,但合理合理。我不想製作一堆預先錄製的骰子,我想要更多的變體。請注意,我不需要將音頻與動畫同步(我使用的動畫非常簡單和抽象)。滾動骰子的程序音頻

我的假設是,我需要一個基本的音頻片段來處理單個模具擊中一個表面的聲音。 (對於生成這些內容有什麼建議?或者最好是捕捉它們?)然後,我需要一些方法來改變和組合這些基本聲音的變體,以創建獨特的滾動聲音....或者我太無知,無法理解這將是複雜的,我應該嘗試一種不同的方法?

我正在開發用於Android的Java,但如何合理組合或程序化地生成任何語言的音頻教程或說明將不勝感激。我不需要實時支持,因爲我認爲我可以提前生成下一個卷的音頻並緩存它,直到骰子實際滾動。

回答

0

我的解決方案是使用免費錄音軟件來捕捉一次滾動的聲音。正確的軟件將能夠將這些文件分成包含每個打擊樂和剩餘音頻的小樣本。只有幾個記錄的擲骰子會給你幾十個「命中」樣本。然後,使用Java,加載對每個樣本的引用,並設計算法,以適當的時間修改以半隨機序列播放它們。然後,在播放之前,您不需要將音頻混合到單個流中即可進行多種多樣的操作。

+1

這是預先錄製的聲音和完整的程序聲音之間的很好的中途。事實上,我所錄製的模具包中有很多明顯不同的「點擊」,所以這應該是相對直接的實施(一旦標記和分割音頻的乏味工作完成)。 – 2012-05-04 04:01:12

0

您可以從綜合工具包(STK)中查找"Shaker" class的程序代碼。 STK是一個C++庫,但實際創建音頻樣本的過程並不難完成。默認情況下有很多類型的振動器。我希望你可以參與參數化並根據需要進行修改。

+0

這很棒。它看起來像是一個非常有用的庫,可用於離線生成聲音,並且可能可以在線工作(儘管這可能會有更多工作)。這不是我在搜索時遇到的事情,非常方便。 – 2012-05-04 03:58:25

2

骰子可以產生兩種類型的聲音 - 一種是當擊中環境時;一次擊中其他骰子。讀一個骰子碰撞聲音的攝譜儀可以給你泛音的比例。它很容易在像Pure Data這樣的軟件中進行原型設計。這個想法是,通過稍微改變基頻,你應該有一個更程序性的碰撞聲音。您可以使用隨機數來做變化並預測碰撞。它可能不是完美的聲音,但它可能是一個開始。

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