18
3Dオーディオについて やのせん (@yanosen_jp)

3Dオーディオについて(ロングバージョン)

Embed Size (px)

Citation preview

3Dオーディオについて

やのせん (@yanosen_jp)

ただし、人によって感じ方に差が大きい

3Dオーディオとは?

Spatialization Ambience

HRTF(Head Related Transfer Function)

音の来る方向によって周波数特性が変化する

低音は位置による差が出にくい

http://www.kanadas.com/investigation‐j/2007/04/_hrtf.html

Reflection Reverberation

位置情報 空間情報

http://www.aca.gr/index/forums/fen/hiend2?row=528

Unityでの3Dオーディオ

• デフォルト• 左右のバランスを調整。• HRTF なし。

• Oculus Audio SDK• 点音源• HRTF、Reflection, Reverberationを設定• Audio Mixerでシーンに設定

• Google Cardboard SDK• 音源の音の広がる方向を設定できる• シーン内にAudio Roomを設定して Ambienceを決められる

Google Cardboard SDKの使い方

• Version 0.6のUnityPackageをCardboardのGithubレポジトリからダウンロード。

• パッケージをインポートして、以下のファイルがあることを確認する。

設定

• CardboardAudioSourceとCardboardAudioListenerコンポーネントを、ゲームオブジェクトにアタッチする。• CardboardAudioListenerは無印のAudioListenerと一緒に存在する必要がある。

• EditorでProject Settings/Audioの中のSpatializerPluginをCardboardAudio Spatializerに設定する。

これだけで、使えます!

Volume Rolloff: どの距離で音が聞こえるかを設定します。UnityのVolume Rolloffの設定に準拠しているので、そちらをご覧ください。

Directivity: 音の方向性を決められます。右に

表示される極座標グラフは、以下の計算式に基づいています。

float r = Mathf.Pow(Mathf.Abs((1 ‐ alpha) + alpha * Mathf.Cos(theta)), sharpness)

ここで、rは半径(距離)、thetaは角度を表します。この式によれば、alphaは角度成分の程度の強さ(つまり、広がり方の形)、sharpnessは方向性の強さとなることがわかります。

細かい設定

• CardboardAudioRoomで、音響環境を設定する。

• Reflectivityが大きいと、「太い声」「筒に声を吹き込んだ」感じになる。

• Reverbは「うわんうわん」。Timeで反響時間を変える(ゼロだと反響無し)

細かい設定

注意するべきポイント

• 音源:モノラルが基本

• リソース:それなりにCPUを消費する。

+ Audio spatialization ‐ Audio spatialization

• 音源の位置は可能な限りリアルにする

注意すべきポイント

口:高音

胴体:低音

注意すべきポイント

環境音は複数の音源を配置したほうが自然になる

参考文献

ワタクシのQiitaの記事をご参考にしてください

• Oculus Audio SDKについて調べてみた

• Google Cardboard SDK for Unity v0.6の3Dサウンド(Spatial Audio)と視線マーカー