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