Unityインテグレーションでは、AkEnvironmentやAkEnvironmentPortalコンポーネントをゲームオブジェクトに適用できます。次にこれらのコンポーネントをWwise Effectを持つAuxiliary Busと関連付けて、サウンドの環境エフェクトをシミュレートできます。ここでは、これらのコンポーネントを使用してリバーブエフェクトをシミュレートする方法について説明します。同じ原理をほかのタイプのエフェクトにも適用できます。
| TIP: Spatial Audioを使用してするリバーブを実装するという方法もあります。詳細は次のトピックを参照。
|
このトピックの例は Wwiseデモシーン に記載されており、Audiokinetic Launcherを使用してダウンロードできます(Unityを参照)。
前提条件
環境コンポーネントや環境ポータルコンポーネントを追加する前に、次の前提条件を確認してください。
- Unityシーンに環境コンポーネントや環境ポータルコンポーネントを追加する前に、Wwise AuthoringでAuxiliary Busを作成してエフェクトを適用し、SoundBankを生成する必要があります。バスに関する詳細は、Master-Mixer Hierarchyのバスの使い方およびオブジェクトにエフェクトShareSetを適用するには:を参照してください。
- AkEnvironmentコンポーネントがエミッタゲームオブジェクトを検出して、その信号が対応するAuxiliary Busに送信されるように、サウンドをポストするAkEnvironmentとアクタの両方(つまりAkGameObjおよびAkEventコンポーネントを持つアクタ)にコライダを含める必要があります。
- リバーブエフェクトの場合、どのようなリバーブプラグインでもバスに適用できます。
AkEnvironmentコンポーネントを追加する
AkEnvironmentコンポーネントは単純な環境ゾーンを表します。AkEnvironmentコンポーネントは、あらゆる種類のコライダーに添付できます。
AkEnvironmentコンポーネントをシーンに追加する方法は3通りあります。 Wwise Picker またはAdd Componentメニューから追加するか、C::スクリプトを使用します。
Wwise PickerからAkEnvironmentコンポーネントを追加するには、次の手順を実行します。
- 目的のリバーブエフェクトを持つAuxiliary BusをWwise Pickerで見つけます。
- Unityでシーン内のオブジェクトを選択します。Inspectorにオブジェクトプロパティが表示されます。
AUXバスをWwise PickerからInspectorまでドラッグします。
AUXバスの名前が付けられたAkEnvironmentコンポーネントがオブジェクトに追加されます。
Add ComponentメニューからAkEnvironmentコンポーネントを追加するには、次の手順を実行します。
- シーン内のオブジェクトを選択します。Inspectorにオブジェクトプロパティが表示されます。
- Inspectorの下部でAdd Component > Wwise > AkEnvironmentの順にクリックします。AkEnvironmentコンポーネントがオブジェクトに追加されます。
- 別のAuxiliary Busを選択するには、NameをクリックしてAuxiliary Busウィンドウを開きます。次にバスを選択してOKをクリックするか、該当するバスをダブルクリックします。あるいは、Auxiliary BusをWwise Pickerから現在のAuxiliary Bus名までドラックします。
C::スクリプトを使用してAkEnvironmentコンポーネントを追加するには、次を実行します。
AkSoundEngine.SetGameObjectAuxSendValues()
を必要に応じてコールします。
AkEnvironmentコンポーネントのプロパティ
1つのシーンまたは1つのAkGameObjで同時にアクティブにできるAkEnvironmentコンポーネントの数は最大4つです。
AkEnvironmentコンポーネントには次のプロパティがあり、Inspectorから設定できます。
- Priority: その環境のプライオリティを定義する。最も小さい数字(0)のプライオリティが最も高くなります。
ゲームオブジェクトが5つ以上の環境の中にある場合は、最もプライオリティの高い4つの環境のみがアクティブになります( DefaultフラグやExclude Othersフラグが設定されていなければ)。
- Default:デフォルト環境は、そのゲームオブジェクトを含む環境がほかにない場合に限りアクティブになります。
ゲームオブジェクトが2つ以上のデフォルト環境の中にある場合は、最もプライオリティの高い1つの環境のみがアクティブになります。
- Exclude Others:このフラグの立っている環境は、他の環境に重複されることはありません。
ゲームオブジェクトがExclude Othersフラグの立っている環境の中にある場合は、他の環境はすべて棄却されます。
ゲームオブジェクトがExclude Othersフラグの立っている2つ以上の環境の中にある場合は、最もプライオリティの高い1つの環境のみがアクティブになります。
- Name:関連付けられているAuxiliary Busの名前。
AkEnvironmentPortalコンポーネントを追加する
ポータルを使用して2つの環境のエフェクトを統合できます。両者の環境が貢献するレベルは、ゲームオブジェクトからそれぞれの環境への距離に応じます。 例えばゲームオブジェクトが2つの部屋の間に立っている場合や、2つの環境をつなぐトンネル内にいる時などに便利です。
プロジェクトに環境ポータルを追加するには、次の手順を実行します。
- UnityメニューバーでGameObject > Wwise > Environment Portalの順にクリックします。環境ポータルオブジェクトがプロジェクト階層に追加されます。
AkEnvironmentPortalコンポーネントのプロパティ
2つの環境の間に環境ポータルを設定して、ゲームオブジェクトがそのポータルの中にある間は両者のエフェクトを統合することができます。ポータルは両者の環境と交差する必要があります。それぞれの環境が貢献するレベルは、ゲームオブジェクトから環境への距離に応じます。ゲームオブジェクトが1つの環境に近ければ近いほど、その環境の最終的なエフェクトに対する影響が強くなります。
AkEnvironmentPortalコンポーネントには次のプロパティがあり、Inspectorから設定できます。
- Environment #1:ポータルは、そのポータルに交差するすべての環境を自動的に検知します。ポータルの負の側に位置する環境(つまり選択された軸と反対方向にある環境)がドロップダウンメニューに表示されます。
- Environment #2:ポータルの正の側に位置する環境(つまり選択された軸と同一方向にある環境)がドロップダウンメニューに表示されます。
- Axis:環境ごとの貢献レベルを決定するための軸。例えばZ軸を選択すると、X軸方向の移動は環境の貢献レベルを左右しません。Z軸方向の移動のみが貢献レベルを左右します。
| 注記: Axisは、オブジェクトスペース内にあります。このため、ポータルを回転させると、軸も回転します。 |
環境や環境ポータルを利用する
環境や環境ポータルを利用するには、環境を意識できる AkGameObj コンポーネントを有するゲームオブジェクトが必要です。 AkEnvironmentPortalオブジェクトは、重なっているAkEnvironmentオブジェクトを自動的に検知します。重複する環境はポータルのInspectorにある2つの選択リストに表示されます。
ポータルに重複する環境が多すぎる場合は、ポータルで統合する環境を選択できます。1つのゲームオブジェクトで同時にアクティブにできるAkEnvironmentの数は最大4つです。環境ポータルの場合、その4つのAkEnvironmentは以下のように選択されます。
- ポータルに接続されている環境で最もプライオリティの高いものが順に4つまで、またはそれ以上にポータルに接続されている環境がなくなるまで、選択されます。
- 接続されている環境が4つ未満の場合、次の基準に従ってシーン内で接続されていない環境の中から選択されます。
- 最もプライオリティの高い環境が順に4つまで選択されます(DefaultフラグやExclude Othersフラグが設定されていなければ)。
- Default環境は、他の環境が一切選択されていない場合に限り、選択されます。
- ゲームオブジェクトがExclude Othersフラグの立っている環境の中にある場合はその環境が選択されて、他の環境はすべて棄却されます。
- 参照
-