今回の記事では、Unityのオーディオシステムについての基本的な知識を解説し、音にエフェクトをつけるオーディオフィルターの紹介をしていきます。
また、次回の記事ではオーディオフィルターをシーン内で切り替える機能を実装していきます。
今回の記事はその導入となっております。
見た目だけではなく、音にもこだわることでより優れたVR体験を作れます。
今回の記事でUnityオーディオの基礎が理解できれば幸いです。
また、今回ご紹介するエフェクトは現在、Oculus Quest版のSTYLYアプリでのみ動作します。
詳しいインストール方法は以下の記事をご参照ください。
サンプル
実際に音源が配置されているシーンを以下から確認できます。
3つのオブジェクトをクリックする事で、音にエフェクトがかかるようになっています。
右から順に
- 低周波数の音をカットして再生する
- 洞窟の中のような反響効果をつける
- コーラスのように微妙に異なる音を重ねて再生する
以上のエフェクトがかかります。
※現在、OculusQuest版のSTYLYアプリでのみ正しく動作します。
実際に音源を再生する
では早速、シーン上で音源を再生できるようにしましょう。
まず、再生したい音源を用意しUnityプロジェクトにインポートします。
今回はこちらのサイトにある音源を使用させて頂いています。
魔王魂:https://maoudamashii.jokersounds.com/
Unity内で音源を再生するには「Audio Source」というコンポーネントが必要です。
実際にシーン内に「Audio Source」を作成しましょう。
直接音源を配置しても良いですが、どこにAudio SourceがあるかわかりやすくするためCubeの中に配置してみましょう。
キューブを選択し、インスペクターウィンドウに音源をドラッグ&ドロップすることでAudio Sourceを追加できます。
Unity内で音を聞き取るには「Audio Listener」というコンポーネントが必要です。
Audio Listenerはデフォルトでメインカメラの中にあるため、新たに追加する必要はありません。
STYLYシーン上でもプレイヤーの中に配置されます。
実際にプレイすると音源が再生されるようになっているはずです。
オーディオの基本
Unityのオーディオシステムは基本的に以下の3つを使って成り立っています。
- Audio Clip
- Audio Source
- Audio Listener
Audio ClipはUnityで使用する音源を示しています。
音源をUnityプロジェクト内にインポートするとAudio Clipの形で保存されます。
Unityでは主にAIFF、WAV、MP3、Ogg形式の音源が使用できます。
Audio Sourceはコンポーネントの一つです。
このコンポーネントに設定されたAudio Clipが再生されます。
また、音源を再生するボリュームやピッチといった項目をここで設定できます。
よく使う項目を紹介します。
- Audio Clip
- 再生される音源です。
- Output
- 音がどこに出力されるかです。デフォルトでAudio Listenerになっており、Audio Mixerに変更できますが今回は使用しません。
- Mute
- オンにするとミュートになります。
- Bypass Listener Effects
- 後述するリスナーエフェクトをまとめてオン・オフする事ができます。
- Play On Awake
- オンにするとシーンの起動と同時に音源が再生されます。オフにした場合は別で音源の再生タイミングを指定する必要があります。
- Loop
- オンにすると音源がループするようになります。
- Priority
- 音源の優先度です。多数の音源を使う時に使用します。数字が大きくなるにつれ優先度が低くなります。
- Spatial Blend
- 音源を立体的にする事ができます。
BGMのようにどこにいても同じ音が聞こえて欲しい時は2D、距離によって音量を調節したい時は3Dに近づけます。
- 音源を立体的にする事ができます。
Audio Listenerもコンポーネントの一つです。
名前が示す通り、シーンに流れている音を聞き取る役割を持ちます。
ここで聞き取った音声をスピーカーに出力する事で実際の音としてプレイヤーに届くようになっています。
シーンにAudio Listenerは1つしか配置できない事に注意しましょう。
複数設置した場合、1つを除き無効化されます。
基本的にはプレイヤーと同じ場所にしたいのでプレイヤーのメインカメラの中に配置します。
この3つはそれぞれ
- Audio Clip → 音源
- Audio Source → スピーカー
- Audio Listener → 耳
以上のように考えてもらうとわかりやすいと思います。
オーディオフィルターの紹介
次に、音源をUnity内で加工できるAudio Filterについて解説します。
Audio Filterとはコンポーネントの一つで、配置することで音にエフェクトをつける事ができます。
ただし、Audio ListenerをもつオブジェクトにFilterを配置しないと機能しない点に注意してください。
Chorus Filter
ピッチやLFOをずらして音を重ねることで、コーラスのような音を作るフィルターです。
- Dry Mix
- 出力される音の大きさです
- Wet Mix 1
- 1つ目のコーラスの音の大きさです
- Wet Mix 2
- 2つ目のコーラスの音の大きさです。一つ目のコーラスから90度位相がずれます。
- Wet Mix 3
- 3つ目のコーラスの音の大きさです。二つ目のコーラスから90度位相がずれます。
- Delay
- 音の遅延の大きさです。
- Rate
- 変調の幅です。
- Depth
- 変調の深さです。
Distortion Filter
トランシーバーのような音の歪みを作るフィルターです。
値を大きくすると音量が大きくなるので注意しましょう。
Reverb Filter
ホールのような残響音を作るフィルターです。
自分で設定するほか、いくつかプリセットが用意されています。
項目が多いため、使いやすい一部を抜粋して紹介します。
- Reverb Preset
- Unityで用意されたReverb Filterの設定を使う事ができます。自分で設定したい場合「User」にします。
- Room
- 音の室内効果の大きさです。
- Room HF / Room LF
- 高周波、低周波の音の室内効果の大きさをそれぞれ設定できます。
- Decay Time
- 反響音が減衰して無くなるまでの時間を設定できます。
Echo Filter
音を遅れて流すことで反響音を作るフィルターです。
やまびこやこだまのような繰り返し聞こえる音の表現に適しています。
- Delay
- 反響音の遅延の大きさを設定できます。
- Decay Ratio
- 反響音の減衰率を設定できます。
- Wet Mix
- 反響音の出力レベルです。
- Dry Mix
- 音源の出力レベルです。
High Pass / Low Pass Filter
設定した値以上 / 以下の周波数の音をカットするフィルターです。
High Passは設定値以下の周波数を、Low Passは設定値以上の周波数をそれぞれカットします。
ただし、完全に聞こえなくなるわけではないので注意してください。
- Resonance Q
- 値を大きくすると、カットされる部分の付近の音が強調されるようになります。
STYLYにアップロードする方法
音源を配置し、加工できたら実際にシーンをSTYLYにアップロードしてみましょう。
アカウント作成方法
STYLYにアップロードする方法
UnityからSTYLYにアップロードする方法
今回の記事では、Unityの基本的なオーディオシステムの解説と音に変化をつけるフィルターの紹介をしました。
次の記事では、実際にSTYLYのシーンで音を切り替える方法について紹介したいと思います。
また、今回の記事は以下のドキュメントを参考にして作成されています。
オーディオの概要 – Unity マニュアル:https://docs.unity3d.com/ja/2019.4/Manual/AudioOverview.html