AkAcousticTexture
Wwise Acoustic Texture を表す Unreal オブジェクト。Wwise Picker から イベント(Event)のドラッグ&ドロップ の「ドラッグ&ドロップ」またはUnreal Content Browser 内での右クリックによって作成可能。一旦作成すれば、 AkSurfaceReflectorSetComponent のポリゴンや、 AkSpotReflector などに適用できます。
AkGeometry Surface Properties Mapでは、 Integration設定 で、AkAcousticTexturesをUnreal Physical Materialsに関連付けることができます。
AkSpotReflector
Spot Reflectorアクターを使うと、3Dワールドに無指向性ポイントリフレクタを配置することができます。スポットリフレクタは、遠方の山など半径が大きく遠くにあるオブジェクトに配置すると、意義があります。
Spot reflectorは、 AkComponent からくるサウンドで、Enable Spot Reflectorsが有効になっているもので、同じエリア内に配置されたものであれば、全て反射します。AkComponent は、それが室外にあり、同じくspot reflectorも室外にある場合に、spot reflectorに対して送信されます。 AkComponent が室内にある場合は、同じ室内にあるspot reflectorに対してのみ送信されます。部屋を作成する際に、ボリュームに AkRoomComponent を添付して作成することができます。
BeginPlayで、Spatial Audio APIから、 AK::SpatialAudio::AddImageSource()
をコールします。
- プロパティ:
-
Aux Bus: アーリーリフレクションDSP用の
AkReflect
プラグインがある、 AkAuxBus 。このauxバスはgame-defined auxiliary sendsを可能にするべきで、Listener Relative Routingを有効に、3D Spatializationを None に設定します。
-
Acoustic Texture: このイメージソースによって反射するサウンドに対してフィルターとして使う、 AkAcousticTexture 。
-
Distance Scaling Factor: イメージソースの距離に基づくスケーリング。この数値でリスナーに関する
sourcePosition
ベクトルをスケーリングすることになり、それによって距離をスケーリングしてオリエンテーションを維持します。
-
Level: ゲーム側がコントロールする、このソースのリニア的なレベル。
AkSurfaceReflectorSetComponent
このコンポーネントは AkGeometryComponent に相当しますが、 AVolumeアクターに添付する必要があります。BeginPlayで、ボリュームの全ての有効ポリゴンが、SpatialAudioエンジンに送られます。
- プロパティ
-
Enable Surface Reflector Set: このコンポーネントを有効・無効にします。
-
Acoustic Surfaces: 各ポリゴンに関連する AkAcousticTexture を定義するアレイ。アレイ内のインデックスは、親ボリュームが選択された時にGame Viewportに表示されます。ポリゴンにテキスチャをアサインすると、ポリゴンはこのテキスチャのEdit Colorの色になり、Game ViewportにあるポリゴンにAcoustic Texture名が表示されます。Acoustic TextureをNoneに設定すると、完全反射の表面となり、それ以外のテキスチャフィルターは適用されません。各ポリゴンを、そのEnable Surfaceチェックボックスで有効・無効にできます。
-
Acoustic Surface Properties
-
Enable Diffraction: このジオメトリにおいて、Geometric Diffractionを有効・無効にします。
-
Enable Diffraction on Boundary Edges: このジオメトリにおいて、バウンダリーエッジのGeometric Diffractionを有効・無効にします。バウンダリーエッジとは、1つの三角だけに接続するエッジです。ジオメトリの具体的な形によって、バウンダリエッジを使う方が効率的かどうかが決まり、全体的には、処理しなければならない回折エッジの総数を削減したほうが良いです。
-
Associated Room: (必須でない)このSurface Reflector Setを、1つのRoomに関連付けます。あるSurface Reflector Setを、特定のRoomに関連付けることで、そのジオメトリを見ることができる場所、つまりそれをアクセスできる範囲を、制限できます。この設定をNoneのままにしておけば、範囲はグローバル(全体)となります。もし、ジオメトリがそのRoomの中に完全に収まっている(つまりポータル経由でなければ、ほかのRoomからは見えない)状態で、かつ、このRoomが、ほかのどのRoomともジオメトリを共有していなければ、このジオメトリを、Roomに関連付けることを推奨します。そうすることで、反射や回折の計算で実行されるレイキャスティングのサーチ範囲が減らせます。なお、あるRoomに1つ以上のジオメトリセットを関連付けると、このRoomから、範囲がグローバルであるほかのジオメトリをアクセスできなくなるので、注意してください。
AkRoomComponent
このコンポーネントは、どのボリュームにも追加でき、Spatial Audio Roomを作成できます。Roomの目的は、2つあります:
- 方向性のあるリバーブを可能にする。ゲームオブジェクトに適用する室内の全てのAuxiliaryバスは、ボリュームのフロントベクトルに対して向けられます。
-
AkAcousticPortal と合わせて使うと、ウェットシグナルが、部屋の中から、ポータルを経由して別の部屋にルーティングされることが可能です。
どちらの場合も、使用するAuxiliaryバスのポジショニングは Listener Relative Routing を有効にし、3D Spatializationを指定し、Attenuationをアサインしておきます。
- プロパティ
-
Enable Room: このコンポーネントを有効・無効にします
-
Priority: 部屋が適用される順位。部屋が重複する場合は、最も高いプライオリティのものが選択されます。同じプライオリティ設定を持つ部屋が重複している場合は、どの部屋が選択されるかは予想不可能になります。
-
Wall Occlusion: Wwise Spatial Audioで音の伝播を経由したリスナーへのオーディオパスが見つからない場合に、室内のエミッターにWwiseオクルージョン値を設定するために使います。壁を貫通して伝わる音エネルギーに関連する値なので、厚みとしてとらえることのできる値です。有効範囲は0.0f-1.0f で、Wwiseプロジェクトで定義したオクルージョンカーブにマッピングされます。
-
Room Tone
-
Ak Audio Event: Roomゲームオブジェクトにポストするイベント。
-
Aux Send: Roomにポストされるサウンドの、Sendレベル。有効範囲: (0.f-1.f). 値を0にすると、Aux sendが無効になります。
-
Auto Post: Roomにポストされたオーディオイベントを、BeginPlayで自動的にポストします。
AkSpatialAudioVolume
分かりやすいように、AkSpatialAudioボリュームが1つ、インテグレーションに含まれます。内容は、単純なボリュームに AkSurfaceReflectorSetComponent 、AkRoomComponent 、Ak Late Reverb Component が添付されたものです。
AkAcousticPortal
Unreal Engine 4で使うPortal。AkRoomComponent を添付したボリュームの中にあるサウンドが、AkRoomComponent を添付した他のボリュームにリークすることを可能にします。Portalと重複するようなボリュームは、初期化の時点で検知されます。パンニングサウンドも3Dスペーシャリゼーションサウンドも、ポータル経由でルーティングできます。
- プロパティ
-
Initial state: このポータルを初期化するときに、開いている(有効)とするのか、閉まっている(無効)とするのかの設定。
-
Obstruction Refresh Interval: オブストラクションのチェック(リスナーとポータル開口部の間の、直接のラインオブサイト)の間隔を設定します。0に設定すると、オブストラクションのチェックが無効になります。完全なSpatial Audioディフラクションを利用したい場合は、これを無効にすることを推奨します。
-
Obstruction Collision Channel: オブストラクションのレイキャスト(ポータルとリスナーの間)の衝突(コリジョン)を、希望するジオメトリに従い作成するための、オブジェクトのコリジョンチャンネル。
AkGeometryComponent
このコンポーネントは AkSurfaceReflectorSetComponent に相当しますが、ブラシの代わりに、StaticMeshComponentに追加する必要があります。AkGeometryComponentが、このメッシュをSpatial Audio Geometryに変換します。スタティックメッシュ自体と、シンプルコリジョンメッシュが、これで変換できる2つのメッシュです。なお、シンプルコリジョンの場合は、SphereとCapsuleのプリミティブの近似値でバウンディングボックスのメッシュになります。
ゲームをデバグするときに、Spatial audioジオメトリをWwise AuthoringのGame Object 3D Viewerで見ることができます。AkGeometryComponentを使うと、より複雑な形を送ることができます。このため、Game Object 3D Viewerにジオメトリが表示されないことがあります。ゲームから送られてくる追加データに対応できるように、 初期化設定 でMonitor Queue Pool Sizeを適切な大きさに設定してください。
どちらのメッシュタイプでも、メッシュのPhysical Materialから、Acoustic Textureやオクルージョン値を推測します。Physical MaterialsをAkAcousticTexturesやオクルージョン値に関連付けるには、 Integration設定 のAkGeometry Surface Properties Mapを使います。
- スタティックメッシュの場合、サーフェスプロパティは、このスタティックメッシュで使われる各Materialの、Physical Materialから推測します。
- メッシュにシンプルコリジョンを選択すると、サーフェスプロパティを、Simple Collision Physical Materialから推測します。
なお、Unrealでは、Physical Materialを選択しない(Noneのままにする)と、代わりにDefaultPhysicalMaterialが使われるので注意してください。Physical Materialをアサインしていないメッシュのために、DefaultPhysicalMaterialにAkAcousticTextureを関連付けます。
- プロパティ
- Geometry
-
Mesh Type: ジオメトリをスタティックメッシュから変換するのか、シンプルコリジョンメッシュから変換するのか。
-
LOD: Mesh Type リストで Static Mesh を選択した場合は、このパラメータで、スペーシャルオーディオのジオメトリに使うlevel of detail (LOD) を選択することができます。
-
Welding Threshold: Mesh Type リストで Static Mesh を選択した場合は、このパラメータで、ウェルドする2つの頂点の間のローカルの距離を、単位Unrealユニットで選択できます。このスレッショルドよりも接近している2つの頂点は、同じ1つの頂点として扱われ、同じポジションがアサインされます。スレッショルド値を大きくすると、三角と三角の間のギャップの数が減るのでメッシュがより連続したものとなり、音が漏れにくくなると同時に、重要でない小さな三角形が排除できます。また、スレッショルド値を大きくすると、Spatial Audioのエッジを探すアルゴリズムの助けにもなり、有効なディフラクションのエッジを見つけやすくなります。
-
Acoustic Texture Override: ここでAcoustic Textureを入力すると、メッシュのPhysical materialがオーバーライドされます。 Mesh Type でスタティックメッシュを選択した場合は、各MaterialのAcoustic textureを、個別にオーバーライドすることが可能です。
- Diffraction
-
Enable Diffraction: AkSurfaceReflectorSetComponentと同様に、この設定で、このジオメトリのGeometric diffractionを有効・無効にできます。
-
Enable Diffraction on Boundary Edges: AkSurfaceReflectorSetComponentと同様に、この設定で、このジオメトリのバウンダリーエッジのGeometric diffractionを有効・無効にします。
- Optimization
-
Associated Room: (必須でない) このジオメトリを、Roomと関連付けます。特定のRoomにジオメトリを関連付けると、このジオメトリを見たりアクセスしたりできる範囲が制限されます。この設定をNoneのままにしておけば、範囲はグローバル(全体)となります。もし、ジオメトリがそのRoomの中に完全に収まっている(つまりポータル経由でなければ、ほかのRoomからは見えない)状態で、かつ、このRoomが、ほかのどのRoomともジオメトリを共有していなければ、このジオメトリを、Roomに関連付けることを推奨します。そうすることで、反射や回折の計算で実行されるレイキャスティングのサーチ範囲が減らせます。なお、あるRoomに1つ以上のジオメトリセットを関連付けると、このRoomから、範囲がグローバルであるほかのジオメトリをアクセスできなくなるので、注意してください。