2012-02-04 10 views
2

私のゲームでD6サイコロを回してオーディオを無作為化する方法を提案しています。私はサイコロの各ロールが違うと思うが、合理的にもっともらしい。そして、私はあらかじめ記録されたダイスロールをたくさん作って欲しくない、私はより多くのバリエーションを望んでいる。アニメーションとオーディオを同期させる必要はありません(私が使用しているアニメーションは非常に単純で抽象的です)。ローリングダイス用手続き型オーディオ

私の前提は、表面に一度打撃を与える単一のダイの音のために、いくつかの基本的なオーディオスニペットが必要であるということです。 (それらを生成するための提案はありますか?それとも、それをキャプチャするのが最善でしょうか?)そして、私はユニークなロールサウンドを作り出すために、その基本的なサウンドのバリエーションを変更して組み合わせる必要があります。複雑で、私は別のアプローチを試みるべきですか?

私はAndroid用Javaで開発していますが、言語を合理的に組み合わせたり手順的に生成する方法のチュートリアルや説明は高く評価されます。私はリアルタイムのサポートは必要ありません。私は次のロールのオーディオをあらかじめ生成し、サイコロが実際に巻き込まれるまでキャッシュしておくことができます。

答えて

0

私の解決策は、フリーレコーディングソフトウェアを使用して、一度に1つのダイの音をキャプチャすることです。適切なソフトウェアは、これらのファイルを、それぞれの打撃ヒットと残響音を含む小さなサンプルに切り詰めることができます。ちょうど少数の記録されたダイスロールはあなたに数十の "ヒット"のサンプルを与えるでしょう。

次に、Javaを使用して、各サンプルへの参照をロードし、適切なタイミング修正を加えたセミランダムシーケンスでそれらを再生するアルゴリズムを設計します。次に、再生する前にオーディオを単一のストリームにミックスする必要なく、さまざまなバリエーションがすぐに得られます。

+1

これは、あらかじめ録音されたサウンドと完全な手続き的なサウンドの中間にあります。実際には、私が記録したダイスロールには、はっきりとはっきりとした "ヒット"がありますので、実装するのは比較的単純です(一度タグ付けしてオーディオを分割するという面倒な作業が完了したら)。 –

0

"Shaker" classの手順コードは、合成ツールキット(STK)から参照できます。 STKはC++ライブラリですが、実際にオーディオサンプルを作成する手順は難しくありません。デフォルトで提供される多くの種類のシェイカーがあります。私は、あなたが望むなら、あなたがパラメータ化で突っ込んで修正を加えることができると期待しています。

+0

これは優れています。これは、私が使用できるサウンドをオフラインで生成するための非常に便利なライブラリのように見えますが、おそらくオンラインで作業することもできます(これはもう少し作業が必要です)。これは私が探していたものではないので、持っているととても便利です。 –

2

ダイスは2種類の音を生成する可能性があります。 1つは他のダイスに当たっています。ダイスの衝突音のスペクトログラフを読み取ると、倍音の割合が得られます。 Pure Dataのようなソフトウェアでこれを簡単に試作することができます。基本周波数をわずかに変化させることによって、より手続き的な衝突音が得られるはずです。バリエーションを行い、衝突を予測するためにおそらく乱数を使用することができます。おそらく完璧なサウンドではないかもしれませんが、スタートになるかもしれません。

これはおそらく非常に曖昧ですが、私はそれがまだ助けてくれることを願っています。

関連する問題