VRChat 非公式日本語ドキュメント

VRC Spatial Audio Source

Unity の Audio Source コンポーネントに 3D 空間オーディオを追加するには、VRC_SpatialAudioSource を使用します。

追加すると、VRC_SpatialAudioSource は自動的に Unity の Audio Source コンポーネントを追加します。

このコンポーネントは、アバターとワールドの両方で使用できます。

image

Unity エディターインターフェース

このコンポーネントは、以下の内容を示す 2 つの Unity Gizmos を生成します。

  • Far
  • Near

さらに、Audio Source コンポーネントは「Volumetric Radius」ギズモを生成します。

ギズモの外観は以下の通りです。 画像内のコンポーネントは少し古いものですが、ギズモは同じです。 このコンポーネントにはすべてのプロパティに対するツールチップが含まれています。プロパティ名にマウスカーソルを合わせると、短い説明が表示されます。

減衰の仕組み

単位はすべてメートルです。音量の減衰はデフォルトで概ね逆二乗則に従います。以下にその様子を示します:

Audio Source上のグラフを使用して、カーブを上書きすることができます。このカーブは、特定の距離における音の強さを決定します。

Farの値に近づく範囲では、設定に応じて音がより速くフェードアウトする場合があります。

2Dオーディオの使用

2Dオーディオとは、ワールド内のどこにいても音量が一定であるオーディオのことです。これは、すでに空間化されたソース(フィールドレコーディングなど)として録音された環境音や、BGMなどに使用されます。

2Dオーディオを使用したい場合は、コンポーネント内のUse Spatialized Audioオプションを無効にしてください。別のオーディオ減衰カーブを使用することを選択しない限り、音の強さはこれまで通り距離に応じて減衰しますが、空間化はされなくなります。

とはいえ、2Dオーディオの使用は推奨されません。現実世界のあらゆる音源は、点音源または立体音源として明確に存在するためです。それでも2Dオーディオを使用する場合は、以下の点を確認してください:

  • VRC_SpatialAudioSource 上の Use Spatialized Audio のチェックを外す
  • Audio Source の Spatial Blend を 100% 2D に調整する

アバターにおける空間オーディオ

VRChatのアバターでは VRC_SpatialAudioSource を使用できますが、いくつかの制限があります。これらの制限は、悪用や悪意のある音声を防ぐために設けられています。

これらの制限を除けば、VRC_SpatialAudioSource はアバター上でもワールド内とまったく同様に機能します。

warning

アバターのオーディオソースに VRC_SpatialAudioSource を追加するのを忘れないでください!追加しない場合、VRChat SDKがコンポーネントを自動作成してデフォルト設定が適用されるため、予期せず、ドキュメントにも記載のない望ましくない動作が発生する可能性があります。

既存のアバターの Audio Source を使用する場合は、必ず VRC_SpatialAudioSource コンポーネントが含まれていることを確認してください!

コンポーネントのプロパティ

VRC_SpatialAudioSource コンポーネントには以下のプロパティがあります。

info

実行時にアニメーションを通じてこれらのプロパティを調整することはサポートされていません。これらの値は初期化時に設定されます。

Audio Source のプロパティをアニメーション化することは、ピッチなど、空間化設定に関連しないプロパティについては引き続き機能するはずです。

プロパティ説明
Gainボリュームへの追加ブースト(0~24 dB)。デフォルトでは、ワールドのオーディオソースには10dBのブーストがかかります。アバターのオーディオソースは、最大ゲインが10dBに制限されています。
Farボリュームが減衰して無音になるまでの距離(メートル単位)。デフォルトでは40mに設定されています。アバターのオーディオは最大40mに制限されます。
Far は、VRC_SpatialAudioSource の「Use Spatializer Falloff」チェックボックスをオンにした場合にのみ、Audio Sourceのカーブを上書きします。
高度な設定: Nearボリュームが減衰し始める距離(メートル単位)。リアリズムと効果的な空間化のために、これを0に保つことを推奨します。デフォルトは0mです。
Near は、VRC_SpatialAudioSource の「Use Spatializer Falloff」チェックボックスをオンにした場合にのみ、Audio Sourceのカーブを上書きします。
高度な設定: Volumetric Radius通常、オーディオソースは点音源としてシミュレートされますが、この値を変更することで、ソースがより広い範囲から聞こえるように設定できます。これは慎重に使用する必要があり、主に通り過ぎる際に「大きく」聞こえる必要がある遠方のオーディオソース向けです。
最良の結果を得るには、リスナーがこの半径に近づかないようにしてください。特別な理由がない限り、この値は0に保ってください。デフォルトは0mです。
Volumetric Radiusの値は、常にFarより小さく設定する必要があります。
高度な設定: Use AudioSource Volume CurveAudioSourceの「3D Sound Settings」にあるボリュームカーブを使用します。チェックを外すと、Inverse Square(逆二乗)の減衰が使用されます。リアルで正確な空間表現を確保するため、このオプションは無効にしておくことを推奨します。

デフォルトはFalseです。
高度な設定: Enable Spatializationこのチェックを外すと、デフォルトの逆二乗減衰カーブが無効になり、代わりにAudio Sourceの空間化設定が使用されます。

デフォルトはTrueです。

アバターの制限事項

アバターの Audio Sources でフォールオフカーブを調整することは許可されています。Use AudioSource Volume Curve をTrueに設定し、Audio Source 内でカーブを調整するだけで、VRChatはデフォルトの逆二乗則の代わりにそのフォールオフカーブを使用します。

ただし前述の通り、アバター上の VRC_SpatialAudioSource コンポーネントにはいくつかの制限があり、これらは実行時に適用されます。

  • Gain は10dbを超えることはできません。
  • Far は40mを超えることはできません。

Player Audio はこれらの設定を上書きする場合があります。

注意

アバターにおいては、GameObject全体を無効化・有効化するのではなく、Audio Sourceコンポーネントを無効化・有効化する方が適切です。

カーブの圧縮(Curve Squashing)

カスタムのロールオフカーブを持つアバター音声を、通常より Far 距離設定が短いワールドで再生する場合、VRChatはアバターのAudio Sourceの「Max Distance」設定を変更することで、そのカーブを「圧縮(押しつぶし)」ます。UnityのAudio Sourceで「Max Distance」の範囲を調整することで、何が起こるかを確認できます。

アバターオーディオコンプレッサー

VRChatでは、アバターのオーディオチャンネルにコンプレッサーを使用しており、悪意のある大音量を防ぐ仕組みになっています。適切な音量レベルのアバターオーディオソースであれば、通常の使用において影響はありません。

コンプレッサーを回避するためのヒント

アバターにオーディオを設定する場合、事前にいくつかの対策を行っておくことで、コンプレッサーの制限にかかることを防げます。

  1. 「ドライ」なオーディオファイル、つまりエフェクトのかかっていない音声ファイルを使用するようにしてください。リバーブやディレイは、コンプレッサーによる「ポンピング」現象を最も引き起こしやすい要因です。
  2. オーディオファイルに少し余裕(ヘッドルーム)を持たせてください。つまり、波形を範囲の上下ギリギリまで合わせないようにします。Audacityなどの波形編集ソフトで、オーディオを-6dBから-12dBの間にノーマライズしてください。
  3. 波形において、非常に短いアタックで極端に高いピークが発生するのを避けてください。言い換えれば、突然音量を非常に高いレベルまで「突き上げる」ようなことはしないでください。ノーマライズを行えば、通常はファイルからこのようなピークが排除されます。

古いシーンにおけるONSPの置き換え

Build Control Panelの「Enable 3D Spatialization on all AudioSources」ボタンを使用すると、ONSPAudioSourceVRC_SpatialAudioSourceコンポーネントに変換されるようになりました。変換後、これらのソースの一部は調整が必要になる場合があります。

最終更新: