Babylonjs-playing-sounds-and-music
BabylonJS-サウンドと音楽の再生
音と音楽がなければ、ゲームは不完全です。 BabylonJSサウンドエンジンには、ゲームにサウンドエフェクトを追加するのに役立つAPIが付属しています。 ゲームで戦闘が発生した場合、銃声を発する必要があります。これは、babylonjsサウンドエンジンを使用してここでも達成できます。 ゲームのキーボード/マウスコントロールの効果に基づいてサウンド効果を取得できます。 サウンドエンジンは、アンビエントサウンド、特殊サウンド、指向性サウンドを提供します。 エンジンは.mp3および.wavサウンド形式をサポートしています。
構文
パラメーター
サウンドエンジンに関連する次のパラメータを考慮してください-
- 名前-サウンドの名前。
- URL -再生されるサウンドのURL。
- シーン-サウンドを再生するシーン。
- Callbackfunction -サウンドを再生する準備ができたときに呼び出されるコールバック関数。現在、nullです。 いくつかの例を見て、その使用方法を学びます。
- * Jsonオブジェクト*-このオブジェクトには、実行する必要があるものの基本的な詳細があります。
- sound.autoplay -これにより、ファイルがダウンロードされるとサウンドが自動的に再生されます。
- loop:true -これは、サウンドがループで連続して再生されることを意味します。
プロジェクトディレクトリにサウンドフォルダーを作成し、サンプルオーディオファイルをダウンロードして出力をテストします。
すでに作成したシーンにサウンドを追加しましょう。
Demo
出力
上記のコード行は、次の出力を生成します-
例えば、
Demo
コールバックでは、setTimeoutを使用します。 つまり、特定の時間後にのみサウンドを再生する必要があります。 5sをタイマーとして追加したため、ファイルScooby.wavがダウンロードされて5sが完了すると、サウンドが再生されます。
キーボードのクリックとキーで音を鳴らす
シーンの任意の場所をクリックすると、爆発的な効果音が聞こえます。矢印キー(左、右、上または下)を押すと、爆発的な効果音が再生されます。
クリックのために、イベントを onmousedown にウィンドウにアタッチし、キーのために、keydownイベントを使用します。 キーコードに基づいて、サウンドが再生されます。
Demo
出力
上記のコード行は、次の出力を生成します-
最初に出会ったjsonオブジェクトのサウンドの音量を制御できます。
例えば、
サウンドファイルがいつ終了したかを知るために、次のように使用できるイベントがあります-
SetVolumeプロパティは、コンストラクター以外にサウンドを制御する場合にも使用できます。
例えば、
シーンで複数のサウンドを再生している場合、作成されたすべてのサウンドにグローバルサウンドを設定できます。
例えば、
空間3Dサウンドの作成
サウンドを空間サウンド(空間サウンドに似たサウンド)に変換する場合は、サウンドコンストラクターにオプションを追加する必要があります。
例えば、
以下は、空間音のさまざまなオプションです-
- DistanceModel -デフォルトでは「線形」方程式を使用しています。 他のオプションは「逆」または「指数」です。
- MaxDistance -100に設定されています。 これは、リスナーがサウンドから100ユニット以上離れると、ボリュームが0になることを意味します。 もう音が聞こえない
- PanningModel -「HRTF」に設定されます。 仕様は、それが人間の被験者から測定されたインパルス応答との畳み込みを使用した高品質の空間化アルゴリズムであると述べています。 ステレオ出力を指します。
- MaxDistance -distanceModelが線形の場合にのみ使用されます。逆関数または指数関数では使用されません。
空間音を使ったデモ
メッシュへのサウンドの付加
BABYLON.Soundを使用して、メッシュにサウンドを添付できます。 メッシュが動いている場合、音はそれに沿って動きます。 * AttachtoMesh(mesh)*は使用する方法です。
Demo
出力
上記のコード行は、次の出力を生成します-