バージョン

menu_open
Wwise SDK 2023.1.8
RoomとPortalの概要

以下は、このページの内容です:

音の伝播機能の概要

下表はSpatial Audioのルーム(Room)やポータル(Portal)の機能内容で、音響現象の種類別に、Spatial Audioでできることと、サウンドデザイナーがプロジェクトに取り入れる方法を、まとめています。

Acoustic PhenomenonSpatial AudioSound Design in Wwise
Diffraction of direct path
  • Calculates indirect sound paths that drive diffraction values
  • Modifies the game object position to simulate the perceived angle of incidence of the diffracted sound
  • Assigns diffraction values to volumes and filters via diffraction curves in the Attenuation ShareSet, project obstruction curves, or built-in RTPCs
Diffuse field (reverb)
  • Send to room's auxiliary bus
  • Constant power transitions
  • Reverb, bus volume and game-defined send offset on Actor-Mixer
Room coupling: reverb spatialization and diffraction of adjacent room's diffuse field
  • Calculates the propagation of the diffuse field through portals
  • Room object positioning and spread
  • Send to listener's room's auxiliary bus
  • Assigns diffraction values to volumes and filters via diffraction curves in the Attenuation ShareSet, project obstruction curves, or built-in RTPCs
  • Volume, filtering, or any property on Bus
  • 3D panning of busses, reverb, bus volume and game-defined send offset of Auxiliary Bus to other busses
Transmission
  • Drives transmission loss values according to the room and surfaces the sound path goes through
  • Assigns transmission loss values to volumes and filters via transmission curves in the Attenuation ShareSet, project occlusion curves, or built-in RTPCs

別のルームからの音伝播のモデル化

Spatial Audioのルームやポータルの考えでは、リスナーのいるルーム以外のルームからくる音の伝播は、ルームやポータルという抽象化で管理します。別のルームにあるエミッタは、ポータルや、それに関連する回折や、ルームの壁の透過などを通して、リスナーまで伝わります。伝搬させる音のそれぞれのEnable Diffraction and Transmissionチェックボックスを、Positioningタブで必ずチェックしてください。

Diffraction(回折)

Spatial Audioは、隣のルームの各エミッタに対して、接続するポータルの最も近いエッジ(端)のShadow Boundaryから、回折角を計算します。詳細は Diffraction(回折) を参照してください。回折角は最大180度まで広がり、0~100の係数にマッピングされてからWwiseユーザーに提供され、Wwiseユーザーは、これに対応するオーディオ変化を2つの方法のどちらかを使い実行します。It can set the diffraction value on the emitter game object or set the value of the Diffraction built-in game parameter.

The diffraction value on the emitter game object is used to drive curves in the Authoring. By default, the project obstruction curves are used. They can be authored in the Project Settings' Obstruction/Occlusion tab and will impact Volume, LPF, and HPF to emulate volume and frequency-dependent behaviors. Project obstruction curves impact all the sounds in a project, which makes them less flexible. However, custom Diffraction curves can be created in an Attenuation ShareSet applied to the sound.

Alternatively, the Diffraction built-in parameter can be used. To do so, create a game parameter and set its Bind to Built-in Parameter drop-down menu to Diffraction. このゲームパラメータにプッシュする値はゲームオブジェクトごとのスコープなので、エミッタごとに固有です。これにRTPCを適用すれば、アクターミキサーのどのプロパティでもコントロールできます。Output Bus VolumeとLPFは、基本のVolumeやLPFよりも優先され、それはルームのリバーブへのAuxセンドではなく、直接シグナルパスだけに適用するからです。

警告: Compared to curves, using a built-in parameter requires more manipulations. Built-in game parameters also only apply on a single value for all positions of a game object. When multiple values are set, the smallest is taken. Recall that multiple game object positions are used when a Room has more than one Portal, so a built-in parameter is not recommended for this scenario.

Wet Path Diffraction

A Room's diffuse energy is an essential part of the Wwise Spatial Audio sound propagation model. The reverb signal chain, or wet path, also has diffraction ("wet diffraction") applied to it. Wet diffraction models the diffuse field of a room being scattered as it propagates out of portals or around obstacles. Wet diffraction is applied on the input connection to the Room bus (that is, the auxiliary send from the emitter to the room), so that each sound uses its own individual diffraction curve. The wet diffraction value for each Room Auxilliary Send is calculated using the path between the emitter and the listener.

The wet diffraction calculation is similar to the dry diffraction calculation, but with a modified diffraction angle calculation as the path passes through the Room to which the emitter is sending. Spatial Audio assumes that the diffuse energy enters or exits a Room perpendicular to its Portals, and does not diffract inside the Room itself. Thus, when the path enters or exits the Room, it computes a diffraction angle relative to the Portal's normal vector, effectively using only half of the angle as the path bends into the Portal. All geometry inside the Room is ignored, because the Room is treated as an ideally diffuse field.

Consider the following scenario, with an emitter, listener, and a single sound propagation path. The emitter has two Room Auxilliary Sends: one to "Outside," the room the emitter is currently in, and one to "Room A," an adjacent room.

Wet diffraction is calculated separately for each of the two Room Auxilliary Sends:

  • For the Room send to "Outside":
    • There are no diffraction points (due to geometry) in the Outside Room, but if there were, they would be ignored, because the Outside is considered an ideally diffuse field.
    • The path then exits Outside from "Portal 1." Diffraction from portal 1, as the paths exits the portal, is calculated using the portal normal. This is angle C.
    • Portal 2 is not connected to Outside, so we use the standard diffraction calculation. This is angle D.
    • TOTAL Wet Diffraction: C + D
  • For the Room send to "Room A":
    • There are no diffraction points (due to geometry) in the Outside Room, but if there were, they would be accounted for using the standard diffraction calculation.
    • The path enters "Room A" through "Portal 1." Diffraction from portal 1, as the path enters the portal, is calculated using the portal normal. This is angle A.
    • The path then exits "Room A" through "Portal 2." Diffraction from portal 2, as the paths exits the portal, is calculated using the portal normal. This is angle E.
    • TOTAL Wet Diffraction: A + E

Finally, the wet diffraction value can never exceed the dry diffraction value. It is clamped if the calculation above results in a value greater than the dry diffraction value.

仮想ポジショニングと、ポータルを通した回折

Spatial Audioの初期設定 AkSpatialAudioInitSettings::bCalcEmitterVirtualPosition を設定すると、リスナーの隣のルームに位置するエミッタのポジションが、必要に応じて回折角の方から出るように、修正されます。以下の3D Game Object Profilerのスクリーンショットでは、リスナー(Listener L)がPortalの右にあり、「真の」エミッタが左下にあります(オリエンテーションベクトルのないEmitter E)。そこでSpatial Audioは、エミッタの位置を左上に変えて、ポジションがコーナーの方にあるようにしながらも、リスナーに到達するまでの距離を維持します。リスナーはPortalエッジのシャドーゾーンに約45度入ったところにあり、その結果、2本の線分の交点に表示されているとおり、回折係数が27となっています。

2つのルームが複数のポータルでつながっている場合、1つのエミッタに複数のポジション(1つのポータルにつき1つのポジション)をアサインするかもしれません。MultiPosition_MultiDirection モードを使うので、あるポータルを有効・無効にしても、ほかのポータルから聞こえるボリュームに影響しません。

Transmission(透過)

When an emitter is in a different room than the listener, and has no direct line of sight through a portal, Spatial Audio models sound transmission through walls by applying a transmission loss factor to the Game Object.

Spatial Audio models sound transmission between Rooms differently depending on whether or not geometry is available. Refer to Modeling Transmission Between Rooms with Geometry and Modeling Transmission Between Rooms without Geometry.

Regardless of how the transmission loss coefficient is derived, it is applied on the Room send connection, between the emitter and each Room, and is converted using the curves defined in the attenuation settings to map transmission loss to volume attenuation and filtering. Refer to 回折(diffraction)と透過(transmission)のために音を準備する.

By default, the project occlusion curves are used for transmission. They can be authored in the Project Settings' Obstruction/Occlusion tab and will impact Volume, LPF, and HPF to emulate volume and frequency-dependent behaviors. Project occlusion curves impact all the sounds in a project, which makes them less flexible. However, custom Transmission curves can be created in an Attenuation ShareSet applied to the sound.

It is also possible to map transmission loss to any other Wwise parameter with an RTPC bound to the Transmission Loss built-in parameter. However it is difficult to use the Transmission Loss built-in parameter effectively because the transmission path is typically one of many sound paths between and emitter and listener, and RTPCs are applied at the Game Object scope.

注釈: Using curves to simulate transmission loss is preferred over an RTPC, because it provides greater accuracy when modeling both transmission and diffraction. 理由は、RTPCをサウンドパスに個別に適用することができないので、透過損失のRTPCにマッピングしたパラメータが、エミッタから発生する、回折する可能性のあるパスにも影響してしまうからです。

Modeling Transmission Between Rooms with Geometry

When geometry is available, sound transmission is modeled using AkAcousticSurface::TransmissionLoss. Spatial Audio Geometry allows for detailed sound transmission modeling because you can, if desired, assign different transmission loss coefficients to each individual triangle. Spatial Audio also uses room geometry to compute a spread value for the transmission path. When a sound emitter is blocked by one or more geometric surfaces, then the transmission loss factor of the geometry (as defined by AkAcousticSurface::transmissionLoss) is applied. If there is more than one surface between the emitter and listener, then the maximum transmission loss factor is taken. Refer to 透過(transmission)用に、ジオメトリを設定する for more details.

注釈: For accurate room transmission, it is necessary to define a shape for the Room so that the Room has a source and an extent. The Room shape is calculated from the bounding box surrounding the geometry associated with the Room. To set up Room transmission via the API, refer to ルームのジオメトリを設定する. If you do not want to use the geometry for diffraction and reflection calculation, set the AkGeometryInstanceParams::UseForReflectionAndDiffraction to false on the Room's AkGeometryInstance.

Modeling Transmission Between Rooms without Geometry

If geometry is not available to Spatial Audio, the transmission loss value is approximated from each Room's AkRoomParams::transmissionLoss value. ルームとルームの間の透過損失は、ルームの設定の AkRoomParams::TransmissionLoss パラメータを使い、リスナーのルームとエミッタのルームの間の最大値から計算されます。A bounding box for the Room is approximated by fitting a bounding box around all Portals. This bounding box is used to calculate the spread value of the transmission path.

Transmission of Room Tones and a Room's Diffuse Field

In addition to sound transmission of individual emitters within a Room, Spatial Audio models sound transmission of the Room itself and this includes the contribution of the diffuse reverb field, as well as any Room tones that are playing inside a Room, transmitting through walls.

Transmission loss filtering and attenuation is applied at the input of a Room Auxilliary Bus, so that individual emitters can contribute differently to the reverb. However, it is the output of the Room Game Object that is spatialized. It is necessary to set AkRoomParams::transmissionLoss to properly spatialize the Room's reverb. A low transmission loss value emphasizes panning the Room towards the Room's center (the center of the Room bounding box) and a high value emphasizes panning towards the Room's Portals.

Because Room tones do not have a point source position, they also rely on AkRoomParams::transmissionLoss to simulate transmission. Therefore, it is always necessary to have a representative value assigned to the Room's AkRoomParams::transmissionLoss.

ルームカップリング

リスナーのルームのポータルを通して隣室などから浸透してくる拡散エネルギーは、このポータルに位置する音源ととらえることが可能で、そのため、リスナーのルームの励起に貢献するはずです。言い換えると、リスナーのルームのAuxバスにセンドするべきです。前述のとおり、これは隣のルームのAuxバスのEnable Game-Defined Sendsチェックボックスをチェックすればできます。ほかのルームのリバーブに送る量を微調整するには、Game-Defined Send Offsetを使います。

複数のルームを経由する

音の伝播は、複数のルームも経由できます。伝播のパスを探す時に、SpatialAudio内でRoomツリーのサーチを行います。循環するコネクションを防止するために、すでにサーチしたルームに再び来た時は停止します。サーチの深度は、Spatial Audioの初期化設定 AkSpatialAudioInitSettings::uMaxSoundPropagationDepth で制限できます(デフォルトは 8)。

ルームゲームオブジェクトの動作

Spatial Audioは舞台裏で、ルーム1つにつきWwiseでゲームオブジェクト1つを登録します。

警告: このゲームオブジェクトのポジションや、Auxセンド値を、直接変更してはいけません。

リスナーがルームにいると、ルームのゲームオブジェクトは、リスナーを追うように移動します。このため、ルームとリスナーオブジェクトの間の距離は、約0です。ただし、オリエンテーションはルームの設定(AkRoomParams)の指定どおりに維持されます。3Dバスのオリエンテーションの検討については、 WwiseでルームのAuxバスを設定する を参照してください。

リスナーがルームの外にいると、ルームのゲームオブジェクトにポータルのポジションが適用されます。厳密には、ポータルのうしろに配置され、リスナーからポータルのタンジェントへの投影の場所で、ポータルの範囲に固定されています。確認するにはルームのゲームオブジェクトを見ますが、前出の 仮想ポジショニングと、ポータルを通した回折 の3D Game Object Profilerのスクリーンショットにも表示されています。

複数のポータルの場合、エミッタの場合と同じ理由で、ルームのゲームオブジェクトが MultiPosition_MultiDirection モード複数のポジションにアサインされます。

ポータル内でトランジションするときに、「ルーム内」動作と「ポータル」動作はスムーズに補間されます。

ルームトーン

ルームゲームオブジェクトの最大の目的はリバーブ(エミッタの"ウェットパス")にスペーシャリゼーションを適用することですが、ルームやポータルのスペーシャリゼーション動作( ルームゲームオブジェクトの動作 で説明)を活用してルームトーンを実装するためにルームゲームオブジェクトに直接、イベントをポストすることもできます。Wwiseでルームトーンを設定するには、 Wwiseでルームトーンを設定する を参照してください。イベントをポストすることについては、 ルームゲームオブジェクトに対してイベントをポストする を参照してください。

ポータルのSpreadとAperture

Wwiseで設定するサウンドのSpread(スプレッド)が、Audio Busでパンニングする3Dサウンドによって構築される、音場の幅を定めます。多くのサウンドのスプレッドは、Wwiseの、そのサウンドの減衰設定のカーブで定義されます。ところが、ルームゲームオブジェクトで再生するサウンド(つまりルームトーン)や、ルームのAuxバスに送られるリバーブに関しては、Spatial Audioがスプレッドを自動的に計算するので、そのようなカーブの定義は不要です。

さらに、もしサウンドのスプレッドカーブをWwiseの減衰設定で定義していて、そのサウンドが1つ以上のポータルを通って移動する場合は、最終的なスプレッド値は、それらポータルの開口を表すAperture値の対象となります。Aperture値はサウンドのスプレッドの上限と解釈することができ、サウンドがポータルを通過するときの音場の収縮をシミュレーションします。

サウンドエミッタのスプレッドをWwiseのGame Object 3D Viewerで可視化するには、以下のように設定します:

  • Obstruction/Occlusion Data をデータキャプチャ前に、Profiler Settingsダイアログボックスで選択します。
  • Show Spread Cones を、Game Object 3D Viewer Settingsダイアログボックスで選択します。

ゲームオブジェクトのスプレッド値や、ポータルのAperture値は、Advanced ProfilerのObs/Occタブでも確認できます。

ゲームオブジェクトのスプレッド

Game objects may have a Spread value that is calculated by Spatial Audio if they are Radial Emitters.

For Room Game Objects, the Spread value is the same as the Aperture value, and it is calculated by approximating the solid angle that each Portal subtends on the listener. Note that a Room Game Object has a unique spread value per Portal (each Portal is rendered as a unique sound position).

ポータルのAperture

The Aperture value for a Game Object is calculated on a per-path basis, and is the result of the minimum spread value for all Portals traversed in a particular sound path. ルームゲームオブジェクトの場合は、Spread値とAperture値は同じ値です。

Spreadの計算の概要

サウンドポジションとリスナーの間の最終的なSpread(スプレッド)値は、以下のように計算されます:

  • サウンドのポジションからリスナーまでの距離におけるスプレッドカーブの値を確認します。
  • スプレッドカーブが存在しなければ、スプレッド値はゲームオブジェクトの半径によって決まります( AK::SpatialAudio::SetGameObjectRadius を参照)。半径がなく、スプレッドカーブが定義されていなければ、スプレッドを0とみなします。
  • The sound's Aperture value is calculated from all Portals in the sound position's path. 複数のポータルのApertureを組み合わせるのに、最小値を取ります。
  • サウンドのスプレッド(スプレッドカーブから発生するもの、またはゲームオブジェクトのスプレッド)とApertureを組み合わせるのに、両者の小さい方を取ります。これが、サウンドエンジンのパンナーに渡す最終的なスプレッド値です。

Portal Area of Influence

The shape of a Portal is defined by the values in AkPortalParams::Extent. However, a Portal has an area of influence past the box formed by these extents. The effects of a Portal are based on distance from the Portal's center, up to AkPortalParams::Extent::halfDepth, and extend past the Portal's opening in every direction. Although the Game Object 3D Viewer displays a Portal as a rectangle, in practice this shape is rounded.

The following illustration is a top-down view of a Portal that connects a small Room to the outside.

Room
Portal
Outside

The area in green represents the Portal's AkPortalParams::Extent. The area in blue is the area of influence of the Portal while inside the small Room. The area in red shows the influence of the Portal while outside of the Room. This area extends around the corner and behind the Portal.


このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう