UDN
Search public documentation:

UsingAmbientZonesJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

Ambient Zones (アンビエント ゾーン)

ドキュメント概要: Unreal オーディオ システム内の Ambient Zones (アンビエント ゾーン) に関する情報と使用方法。

ドキュメントの変更ログ: Zak Belica により作成。

概観

AmbientZones は、コストのかからない屋内/屋外アンビエント オーディオ ソリューションです。AmbientZones の利点には以下のようなものがあります。

  • 屋内から屋外エリアへのサウンドの遷移を良くします。
  • より少ないサウンド アクタの配置ですみ、内部/外部空間のイテレートも少なくて良いので、オーディオ デザイナーの作業を減少させます。
  • 屋内と屋外を定義するのに必要とされるサウンド アクタの数の節約により、ゲーム システム オーバーヘッドを減少させます。

簡単なガイド

  • ReverbVolume を作成し、大きな半径ルーピング サウンドを持つ AmbientSoundSimple をその中に、2 つ目の大きな半径 AmbientSoundSimple ルーピング サウンドをその外に配置します。
  • ReverbVolume パラメータを開きます。
  • AmbientZone パラメータを表u31034 示するために AmbientZoneSettings を展開します。

AmbientZone_Settings.jpg

  • bInside パラメータを True に設定します。これで ReverbVolume は、アクティブ AmbientZone です。
  • ExteriorVolume を .5 に設定します。これは、プレイヤーが AmbientZone 内部にいる場合の AmbientZone 外の AmbientSounds の最終的なボリュームになります。
  • ExteriorLPF を .5 に設定します。これは、プレイヤーが AmbientZone 内部にいる場合の AmbientZone 外の AmbientSounds の最終的な LowPassFilter になります。

  • InteriorVolume を .2 に設定します。これは、プレイヤーが AmbientZone 外部にいる場合の AmbientZone 内の AmbientSounds の最終的なボリュームになります。
  • InteriorLPF を .2 に設定します。これは、プレイヤーが AmbientZone 外部にいる場合の AmbientZone 内の AmbientSounds の最終的な LowPassFilter になります。

  • ジオメトリをリビルドし、先に設定した AmbientZone とともに ReverbVolume を入力します。
  • AmbientZone 外の AmbientSoundSimple は、そのボリュームが .5 倍になり、LowPassFilter が .5 倍に設定されます。
  • ReverbVolume を閉じます。ReverbVolume 外の AmbientSoundSimple が以前のボリュームと LPF 設定に復元されました。ReverbVolume 内の AmbientSoundSimple は、.2 倍のボリュームになり、LPF も .2 倍が適用され、非常に静かになります。

AmbientZones に関する現在の問題

以前のバージョンのオーディオ システムでは、半径ベースの SoundActors を持つディテールな空間を定義するのが難しいという共通の実装問題がありました。ディテールを達成するのに、さまざまな半径を持つ多くの SoundActors が必要とされたのです。また、レベル ジオメトリは、屋外の空間に向けて開けた (開いた壁や窓) 屋外の空間を含むことがありました。SoundActors は、バック オーディオを再生するのに、球面半径のみを使用するので、レベル ジオメトリを満たすのに小さな半径を持つ多くの SoundActors が必要となりました。この問題の図解は、以下のようになります。屋外空間の真ん中に、ボックスの形をした部屋があります。赤い球は屋外オーディオで、青い球は四角く青いボリュームの屋内オーディオです。サウンドでボックスの形を正確に満たすのに、8 つの Outside Radius SoundActors と 8 つの Inside Radius SoundActors が必要なことに注目してください。

AmbientZone_Problem.jpg

ソリューション: Ambient Zones (アンビエント ゾーン)

AmbientZones と呼ばれるソリューションが、この問題を解決するために実装されました。"AmbientZoneSettings" と呼ばれる新しいパラメータ グループが、すべての Reverb Volumes に追加されました。AmbientZone の設定は、関連付けられた Reverb Volume の内部と外部に位置する SoundActors が、プレイヤーの場所によってどのように変更されるかを定義します。

これがどのように動作するかの簡単な例は、以下のようになっています。四角い緑のボリュームは、AmbientZone ボリューム、紫の球は AmbientZone 内に位置する SoundActor、赤の球は AmbientZone の外に位置する SoundActors です。

AmbientZone_Solution.jpg

AmbientZone ボリュームの挙動は以下の通りです。

  • プレイヤーが AmbientZone の外にいる際、AmbientZone 内に位置する SoundActors には、ボリューム マルチプライヤと LPF エフェクトが適用されています (これらの値は、AmbientZoneSettings で定義されています)。
  • プレイヤーが AmbientZone に入ると、その AmbientZone 内に位置する SoundActors が指定されたフェード時間に渡って、1.0 マルチプライヤのボリュームと LPF を両方に返します。同時に、AmbientZone 外に位置するすべての SoundActors は、指定されたフェード時間に渡るボリュームと LPF マルチプライヤが両方に適用されます。ここでも、ボリューム、LPF、フェード時間の値は、AmbientZoneSettings で定義されます。
  • プレイヤーが AmbientZone を出ると、AmbientZone の外の SoundActors は、以前のフェード時間を使用するような以前のデフォルト ボリュームと LPF 値に戻り、AmbientZone の中に位置する SoundActors は、そのボリューム マルチプライヤと LPF 値が AmbientZone 用に AmbientZoneSettings を介して変更されます。

利用可能なパラメータ:

AmbientZone_Settings.jpg

設定 使用
bInside このボリュームに関して AmbientZone 機能をオンにするかどうか (True、False) です。このパラメータが False に設定されると、AmbientZone ボリュームは新しい 'ExteriorVolume' デフォルトとしての役目を果たします。
ExteriorVolume (プレイヤーがこの AmbientZone 内にいる場合の屋外サウンドの最終的なボリュームです。)
ExteriorTime ( 新しい屋外ボリュームにフェードしていく時間を秒で表します。)
InteriorVolume (プレイヤーがこの AmbientZone 外にいる場合の屋内サウンドの最終的なボリュームです。)
InteriorTime ( 新しい屋内ボリュームにフェードしていく時間を秒で表します。)
ExteriorLPF (内部にいる場合の屋外サウンドに適用される Lowpass フィルタ マルチプライヤ (最大 LPF を適用するには 0.1) です。
ExteriorLPFTime (新しい lowpass フィルタ レベルにフェードしていく時間を秒で表します。)
InteriorLPF (外部にいる場合の屋内サウンドに適用される Lowpass フィルタ マルチプライヤ (最大 LPF を適用するには 0.1) です。))
InteriorLPFTime (新しい lowpass フィルタ レベルにフェードしていく時間を秒で表します。)

実装ガイド例

以下は、この挙動を解説する手助けとなる実例になります。

街中のレストランの例

マップには、街のストリートに向かって開いているドアを持つレストラン エリアが含まれています。プレイヤーがレストランの外にいる場合、ストリートの交通の音が聞こえ、レストランの音は低いボリュームで、微妙にこもって聞こえます。プレイヤーがレストランに入ると、レストランの音はより大きく鮮明になり、ストリートからの交通の音は大幅に静かになり、こもって聞こえます。プレイヤーがレストランから出ると、以前のオーディオ バランスが復元されます。このエフェクトを達成するには、以下の通りです。

  • Reverb Volume をレストランの中に、レストランのサイズで作成します。
  • Reverb Volume プロパティ内の AmbientZoneSettings を開きます。
  • InteriorVolume を .6 に、そして InteriorLPF を .4 に設定します。
  • ExteriorVolume を .4 に、そして ExteriorLPF を .2 に設定します。
  • 交通音を再生するために、大きな半径を持った AmbientSoundSimple をストリートに配置します。
  • レストランの音を再生するために、大きな半径を持った AmbientSoundSimple をレストランに配置します。
  • マップ ジオメトリをリビルドします。これは、強制的に Reverb Volume に、その中にどの SoundActors があるかをチェックさせます。
  • Reverb Volume に入って、出て、オーディオの変化を聞きます。この例では、すべてのフェード時間はデフォルトの .5 秒に設定されています。

垂直な空間の例

サウンド半径は球形なので、狭い屋内空間で垂直に積み重ねられると、問題の原因となりえます。AmbientZones は、この問題を解決する手助けをします。以下が例になります。

  • 複数階のビル: 大きな半径のアンビエント サウンドは、上下階に流れ出さずに、ビルの各垂直レベルに配置することができます。
  • 橋: サウンドの流出なしに、固有なアンビエント オーディオとリバーブ設定を橋の上下に設定できます。

壁のコントロールの例

壁: アンビエント サウンドは部屋の壁に位置し、プレイヤーが壁の反対側 (部屋の外) にいるとオーディオを抑圧します。

特別なエリアのミックスしたコントロールの例

街中のディテール: AmbientZones は、プレイヤーがオーディオのその中心点にいる場合、交通と街の騒音のミックスのコントロールを可能にします。例えば、その AmbientZone 内にいると、街のボリュームを低くするような AmbientZone を屋台の周りにおくことができます。

実装のヒント

Ambient soundclass に割り当てられた AmbientSoundSimple アクタと SoundCues のみが AmbientZones の影響を受けます。

AmbientZone ボリュームと LPF の変更は、以下のような AmbientSoundSimple アクタに適用されます。

  • AmbientSoundSimple
  • AmbientSoundNonLoop
  • AmbientSoundSimpleToggleable

AmbientZones は、Ambient soundclass に設定された、再生されるすべての SoundCue に適用されます。従って、以下のようなアクタは…

  • AmbientSound
  • AmbientSoundMoveable

使用される SoundCues が Ambient soundclass に設定されることを前提として、Kismet PlaySound や Matinee サウンドトラック イベントなどと同様、影響されます。

AmbientZones のデフォルト値

  • WorldInfo -> DefaultAmbientZoneSettings 内の WorldInfo プロパティで設定可能です。

複数の AmbientZones と大きな半径を持つ SoundActors 屋内の挙動

AmbientZones に関してもう 1 つ覚えておくべき局面は、SoundActor の減衰半径が十分に大きく、複数の AmbientZones で一度に聞こえる場合、InteriorVolume と InteriorLPF が AmbientZones に渡って加算であるということです。この挙動の目的は、Internal ボリュームと LPF が、別の AmbientZone に入ることによって、オーバーライドされることを防ぐことです。なので、プレイヤーがそのサイレンの AmbientZone の外にいる場合、サイレンの音を低いボリュームになるように LPF とともに設定したとすると、異なる ExteriorVolume と ExteriorLPF 設定を持つ他の AmbientZone に入ると、LPF とともに静かなままになります。この挙動は、「現実世界」のオーディオの挙動を真似するもので、AmbientZone の挙動と同じです。この挙動の例は、以下のようになります。

  • レベルには、2 つの AmbientZones である AmbientZone A と AmbientZone B があります。
  • AmbientZone A は、大きな減衰半径 (AmbientZone B 内で聞こえるぐらいに十分に大きい) を持つルーピング サウンドを再生する SoundActor 1 を含んでいて、.5 の InteriorVolume と .4 の InteriorLPF を持ちます。
  • AmbientZone B は、1.0 の ExteriorVolume と 0 の ExteriorLPF を持ちます。
  • プレイヤーが AmbientZone A の外にいる場合、.5 の InteriorVolume と .4 の InteriorLPF で SoundActor 1 が再生しているのが聞こえます。
  • ここでプレイヤーが AmbientZone B に入ります。
  • SoundActor 1 のために AmbientZone A を介して設定された InteriorVolume と InteriorLPF は、AmbientZone B の 1.0 の ExteriorVolume と .5 の ExteriorLPF によって掛けられます。これで、プレイヤーが AmbientZone B 内にいる間、SoundActor 1 のボリューム設定が .5 に、そして LPF が .2 に設定されることになります。

bInside 設定

  • この True/False 設定は、AmbientZone をアクティブであるとして定義するのに使用されます。デフォルトで、プレイヤーがいかなる AmbientZones の外にいる場合、すべてのアンビエント soundactors は、デフォルトの 1.0 ボリュームと 1.0 LPF 設定で再生します。

注意:更新したAmbientZone 機能において、 ボリュームが常に機能の一部として、'Inside'として設定されてしまうため、 Inside? の概念は削除されました。

ジオメトリのリビルドを忘れない

  • サウンド アクタを AmbientZone ボリューム内に配置する場合、レベルのジオメトリをリビルドする必要があります。というのは、この際にサウンド アクタの位置を決定するためにチェックが行われるからです。ジオメトリがリビルドされると、すべての AmbientZone パラメータはエディタ内で自由に変更することができます。