基本的なオーディオ
タンクは、ロボットの周りを移動しています。ゲーム上の任意の場所をクリックして撃つことができます。
サウンドソースとリスナー
このチュートリアルでは、シーンにロボットを置き、その周りにタンクを回転させています。タンクのエンジンから再生される音は、ロボットの耳に相対した形で再生されます。ロボットの周囲でタンクが移動すると、音が左右や前後に移動して再生されます。
PlayCanvasの基本的なオーディオシステムは二つのコンポーネントタイプを中心に構成されています。
Sound コンポーネントはWave, MP3 または Ogg Vorbisファイルのようなオーディオアセットを再生します。Soundコンポーネントはシーン内のスピーカーのようなものです。複数のSoundコンポーネントを使用して、各自で複数の音を再生させることができます。
各Soundコンポーネントは、複数のスロットで構成されています。各スロットには名前があり、再生する特定のサウンドを定義します。Soundコンポーネントに複数のスロットを設定してそれぞれを互いに独立して再生させることができます。
AudioListener コンポーネントはSoundがどのように聞こえるかを定めます。AudioListenerコンポーネントはシーン内のマイクのようなものです。一度にアクティブにできるAudioListenerは一つのみです。
シーンの設定
エディタでこのチュートリアルの階層をご覧ください。シーンのメインのエンティティは次の通りです:
Playbot
ロボットです。AudioListenerコンポーネントを有するので、すべての音がロボットの位置に関連して聞こえます。
Rotator
タンクを回転させるために使用するエンティティ。一定の速度でY軸周りにエンティティを回転させるスクリプトを有するスクリプトコンポーネント。
タンク
タンクです。Rotatorエンティティ子なので、一緒に回転します。2つのスロットを持つSoundのコンポーネントがあります。
「エンジン」スロットは、ループされたタンクのエンジン音を再生しています。シーンがロードされてすぐに再生するようAuto Playに設定されています。
もう一つのスロットは「シュート」スロットです。戦車の砲塔を発射させるためにキャンバスをクリックするたびにそのスロットがスクリプトによって再生されます。Overlapチェックボックスはtrueなので、複数回発射することができます。つまり、毎回単一の音を使用するのではく、毎回新しい音を作成します。
タンクにはスクリプトコンポーネントがあり、砲塔を発射させたり、発射音及びシンプルなアプリケーションやパーティクルシステムなどを処理します。
サウンドソースの作成
Soundソースを作成するにはソースを追加したいエンティティを選択して、EntityメニューからNew Componentを選択します。コンポーネントリストからsoundを選び、Addボタンを押します。
AttributeEditorでSoundプロパティが表示されるようになります。
タンクエンティティのSoundコンポーネントです。こちらはプロパティに関する情報です:
位置上
これがチェックされている場合、3D空間内で現在のAudioListener(ロボット)の位置を基準に再生されることを意味します。オフになっている場合、音は両方のスピーカーから2Dで再生されます。
アセット
各スロットには、異なるスロットから異なるオーディオアセットを再生することができるアセットピッカーがあります。オーディオアセットのアップロード方法の詳細については、アセットのインポートを参照してください。
アセットをアップロードしたら、Asset Pickerを使用してスロットに対するソースのオーディオアセットを選択してください。
オートプレイ
シーンが読み込まれ次第スロットを再生させるには、trueにします。それ以外の場合はfalseに設定し、スクリプトを使用してスロットを再生します。
オーバーラップ
これがオフになっている場合、スクリプトで再生するたびにスロットは最初からサウンドを再生します。BGMや繰り返す必要のないサウンドを再生している場合などは、このチェックボックスをオフにします。
音がリプレイされるたびに停止することなく、繰り返し再生したい場合は、これをtrueに設定してください。このチュートリアルでは射撃音は重なるように設定されています。
ループ
デフォルトで、オーディオサンプルは一度再生され、その後停止されます。継続的にサウンドをループしたい場合は(例えば、BGMのために)、Loopボックスにチェックを入れてください。この例ではエンジンの音はループされていますが、発射音はループされていません。
リスナーの作成
AudioListenerを作成するには、リスナーを代表するエンティティを選択します。多くの場合、これはプレイヤーの頭の位置となる、ゲーム内のカメラになります。今回のケースでは、AudioListenerはロボットに取り付けられています。