このチュートリアルでは、ReflectプラグインをSpatial Audioで使う方法を、手順を追いながら説明します。サウンドバンクを生成するにはReflectプラグインのライセンスが必要ですが、Wwise Authoringに接続中に試してみることもできます。
A. Wwiseプロジェクト
Wwiseプロジェクトを更新して、Reflectプラグインとアコースティックテキスチャが入ったAuxバスを入れる必要があります。
- Reflectのファクトリアセットをインポートし、Auxiliary Busのプリセットと、Acoustic Texturesを、アクセスできるようにします。
- Project > Import Factory Assets... に移動します。
- Reflectを選択してOKを押します。
- Acoustic Texturesは、 Project Explorer ビューのShareSets タブにある、 Virtual Acoustics フォルダの中にあります。

Project ExplorerのShareSetsタブにある、Factory Reflect Acoustic Textures
- (オプション)カスタム設定のアコースティックテキスチャは、Default Work UnitのVirtual Acousticsフォルダに追加できます。
- アーリーリフレクション用にAuxiliary Busを追加します。
-
Master Audio Bus を右クリックし、 New Child > Presets へ移動し、Early Reflection Auxiliary Busを選択します。
-
Spatial Audioチュートリアルの事前準備 に追加したSoundを編集します
- General Settingsタブで、新しく作成したReflect付きのAuxiliary Busを、 Early Reflections ボックスに追加します。

Reflect Auxiliary Busを、Sound Property EditorのGeneral Settingsタブで指定
- プロジェクトを保存する。
B. Unity Project
AkSurfaceReflector コンポーネントを使い、面(サーフェス)のアーリーリフレクションをシミュレーションできます。サーフェスリフレクタコンポーネントを、ゲームの既存メッシュに追加するのが、1つの方法です。形状が複雑すぎると、Spatial Audio APIに大量の三角形を送り込むことになり、ゲームが遅くなってしまう可能性もあります。その場合 AkSurfaceReflector コンポーネント自体に、コリジョンメッシュなど、別のメッシュを追加することができます。反射面を追加するには、新GameObjectを作成するという方法もあります。Wwise Unity Demo Sceneの中のシーンでは、新しいオブジェクトをサーフェスリフレクタに設定しています。ルームは立方体(キューブ)なので、キューブを使い、メッシュレンダラは使用していません。
- キューブを作成します: GameObject > 3D Object > Cube
-
Mesh Rendererコンポーネントを除きます
-
Box Colliderコンポーネントの、Is Triggerにチェックを入れます
-
AkSurfaceReflector コンポーネントを追加します。
- MeshFilterコンポーネントのメッシュを使う予定であれば、meshパラメータをNoneのままにすることもできます。そうでなければ、希望するメッシュをここで追加できます。
-
Acoustic Textures アレイで、各サブメッシュのアコースティックテキスチャを選択するか(キューブにはサブメッシュが1つしかありません)、フィルタなしのリフレクションにするために None とします。
-
Occlusion Values アレイで、各サブメッシュのサーフェスのオクルージョン値を設定できます。これは、メッシュを通るサウンドに適用するフィルタに使います。詳細は D. Transmission(透過) のセクションを参照してください。
- Diffraction(回折)を有効にするには、 Enable Diffraction チェックボックスを使います。詳細は C. 回折(Diffraction) のセクションを参照してください。
- 最後に、関連するルームを設定し、今はNoneにしておきます。詳細は E. Roomを認識できるSurface Reflector(最適化) のセクションを参照してください。

AkSurfaceReflectorコンポーネント
- リフレクションの次数は、Spatial Audio Settingsの下の AkWwiseInitializationSettings で設定します。
- デフォルトのリフレクションOrderは、1です。最大4まで設定できます。

Spatial Audioの初期設定
- リフレクションパスをシーン内で描写させたい場合は、エミッタに AkSpatialAudioDebugDraw コンポーネントを追加します。
- 描写したいリフレクション次数に、チェックを入れます。

AkSpatialAudioDebugDraw コンポーネント
C. 設定の検証
- Wwise Pickerで、 Windows > Wwise Picker と進みます
- サウンドバンクを生成します

Wwise Picker
- ゲームをスタートし、エミッターの1つを再生します。
- Wwiseでゲームに接続して、Profilerレイアウトを開きます。下図と似たグラフが、表示されるはずです:

ReflectエフェクトのあるVoice Graph
- グラフでAuxiliary Busノードの下にある、ハイライト表示されたWwise Reflectをダブルクリックし、リフレクトのEffect Editorを開きます。音が再生されると、進行中のリフレクションが、グラフとリストで確認できるはずです。Texture(s)列の下にテキスチャが2つ表示されている場合は、セカンドオーダーのリフレクションです。
- この画面で、リフレクションの減衰カーブを調整できます。
- リフレクションが全く表示されない場合は、エミッターとリスナーの間のリフレクションの距離に対し、Max Distanceが低すぎないかを確認してください。

ReflectのEffect Editorビュー
- Game Object Profilerレイアウトに移動します(ショートカットはF12)
- すでに設定されていなければ、Game Object 3D Viewer Settingsで、Reflection Pathsと、Reflection Image Sourcesを、有効にします。

Game Object 3D Viewer Settingsにある、リフレクションの設定
- Game Object 3D Viewerを見ると、サーフェスリフレクタや、再生中のエミッターからスペーシャルオーディオのリスナーへのリフレクションパスが、表示されるはずです。下図で、サーフェスリフレクタは、不透明のティールブルー色で表されています(これはAcoustic Textureの色と同じ)。リフレクションパスや、イメージソースの色は、黄色がファーストオーダーリフレクションで、オレンジ色がセカンドオーダーリフレクションを表します。下図の場合、Button Large Roomが、この時点で再生中のソースなので、Button Large Roomのリフレクションパスやイメージソースだけが表示されています。

Game Object 3D Viewer
 |
注記: 立方体のサーフェスリフレクタが建物を覆っているので、エミッターを再生中でも、リスナーが屋外にいれば建物の中のエミッターから出るリフレクションパスを取得できず、その逆でも同じです。これは、建物の開口部も、反射面の一部となっているからです。これを直すには、ビルのメッシュだけをサーフェスリフレクタとして利用するか、開口部にポータルを配置します。Portalの詳細については、 ルームやポータルに関するチュートリアル を参照してください。 |