このチュートリアルでは、UnityでReflectプラグインとSpatial Audioを使う方法を、手順を追いながら説明します。SoundBankを生成するのにReflectプラグインのライセンスが必要ですが、Wwise Authoringに接続した状態で試すことはできます。
A. Wwiseプロジェクト
Wwiseプロジェクトを更新して、Reflectプラグインとアコースティックテキスチャが入ったAuxバスを入れる必要があります。
- ファクトリアセットをインポートして、Auxiliary Busプリセットや、ファクトリAcoustic Textureにアクセスできるようにします。
- Project > Import Factory Assets... に移動します。
- Reflect と、 Acoustic Textures を選択し、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 とします。
- Transmission Loss Values アレイで、各サブメッシュの面の透過損失値を設定できます。これは、メッシュを通るサウンドに適用するフィルタに使います。詳細は D. Transmission(透過) セクションを参照してください。
- Diffraction(回折)を有効にするには、 Enable Diffraction チェックボックスを使います。詳細は E. ルームをSurface Reflectorと関連付ける(非推奨) を参照してください。
- 最後に、Associated RoomはNoneのままにしてください。詳細は E. ルームを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を見ると、サーフェスリフレクタや、再生中のエミッターからスペーシャルオーディオのリスナーへのリフレクションパスが、表示されるはずです。
Game Object 3D Viewer
| 注記: 立方体のサーフェスリフレクタが建物を覆っているので、エミッターを再生中でも、リスナーが屋外にいれば建物の中のエミッターから出るリフレクションパスを取得できず、その逆でも同じです。これは、建物の開口部も、反射面の一部となっているからです。これを直すには、ビルのメッシュだけをサーフェスリフレクタとして利用するか、開口部にポータルを配置します。Portalの詳細については、 ルームやポータルに関するチュートリアル を参照してください。 |
- 参照
-