モバイルゲームでより良いサウンド体験を提供するためのラウドネス基準やオーディオミドルウェアの利用について

この記事は [DeNA Advent Calendar 2019](https://qiita.com/advent-calendar/2019/dena) の3日目の記事です。

DeNA サウンドディレクターの川口です。 [(twitterはこちら)](https://twitter.com/ADX_kawaguchi)
長ったらしい表題ですが、
**モバイルゲームでの音量バランスの取り方**のアプローチについてです。

今年の7月に入社したばかりなので
この記事に書いてある事をやり切ったタイトルはまだリリースされていませんが、
2020年内には恐らく数タイトルが世に出ている…はず…。


普段の仕事内容については同僚の書いたこちらをご覧ください。
・『[サウンドディレクターという、作曲できるけど作曲しないけど作曲以外全部する仕事](https://note.com/roomin/n/n7ec6adc2598d)』

```
自分はディレクターと名乗りつつも、オーディオのテクニカルアーティスト的な立場で現場よりの作業が得意です。
エンジニアだったりサウンドデザイナーだったり15年くらいを経て、前職ではオーディオミドルウェアの
技術営業（エヴァンジェリスト）をやってました。
```
## :shinto_shrine: 目次
1.  なんだかテーマが難しそう
1. 「モバイルゲームでより良いサウンド体験」の定義
1. ラウドネスについて
1. リアルタイムに行う音量コントロールについて
1. 音素材の基準値について
1. オーディオミドルウェアについて
1. まとめ



##:thinking: なんだかテーマが難しそう

文字にすると堅苦しくなるだけです。順番にバラしていきましょう。

##:bangbang: 「モバイルゲームでより良いサウンド体験」の定義
ガラケーやブラウザゲーの頃はそもそも音をたくさん鳴らす事そのものが難しかったのですが
2019年現在のモバイル端末は、もはやPS3に近いサウンド演出が可能です。
（少なくとも自分は過去のPS3案件に近い取り組み方をしています。サラウンド以外）

そのためサウンド演出にも力を入れた作品も増えてきていて、動きのあるあらゆる部分…つまりは

* キャラクターモーション(攻撃、足音、きぬ擦れ、鎧やネックレスなど揺れ物など）
* キャラクターボイス
* エフェクト
* 環境音
* UI
* 画面遷移

など、いたるところで音が鳴ります。
音を鳴らす目的も

* 気付きを与えるもの（UIなど）
* 心情をコントロールするもの（主に楽曲など）
* 納得感を高めるもの（主にSE）

などがあります。
この辺りをちゃんと意識し、目的に合った演出を作っていくのも大事です。

----

**「より良いサウンド体験」**をざっくりと定義しますが

そのシーンに合わせて必要な音を  *適切* に *バランスよく* 聞こえるようにして・・・
って、**当たり前じゃない！？**

その当たり前が難しいんです。本当に。

適切というのも人によって感じ方が違うので、具体的に書いていくと

* 絵と音のタイミングが正しく合っている（40msec以上ズレていない）、とか
* ボイスが正しく聞こえる（音割れしていない、楽曲に埋もれていない）、とか

色んな評価軸で割とロジカルに決めていく事ができたりしますが、今回は
**聞こえるべき音がちゃんと聞こえる** とします。



##:headphones: ラウドネスについて

音声信号の聴感上の音の大きさの単位で、例えば放送業界やPS4では明確な基準(-24LKFS)が設けられています。
Youtubeなど各種ストリーミングサービスでも、ラウドネスの大きすぎる楽曲や動画の聴感上の音量を調整した上で配信していたりします。



詳しくはこの辺りをご参考にどうぞ
・[LUFS/LKFS…ラウドネスメーターについて復習して理解を深めよう](https://soundevotee.net/blog/2017/04/25/learning_about_loudness_meter/)

例えばYoutubeの出力が-13LKFSに調整されているので、**アプリを切り替えた際にボリューム変更しなくても良い感じ**になるのを目指します。つまり楽曲やSEやボイスといったサウンドの各要素が、*いつどれだけの数が鳴るかが不定な中でも*、**全体の音量が-13LKFS**に近くなるようにコントロールします。
（とか言いつつ、トレンドの移り変わりも早いので"今は"ここを目指しています）

しかしゲーム内でリクエストされる楽曲やSEを、ただ鳴らしていくだけでは上手くバランスが取れず、良い体験に繋がりません。
リアルタイムに音量をコントロールしていきましょう。


## :level_slider:リアルタイムに行う音量コントロールについて

詳細は別の機会にしますが、アプローチ手段を挙げてみると

* いくつかの音をまとめてカテゴリ分けする
* 短い時間に大量に再生リクエストがある場合は間引く
* 大事な音は間引かずに鳴らすが、音量を少し下げる
* 必ず聞かせるべき音を鳴らす際は、他の音量を下げる
* 段階的に音量調整をした各カテゴリの音をバランスよく混ぜる
* 最終出力の直前で音割れ防止対策をする

他にも

* 音の定位をずらす
* 周波数帯域を空ける

という事をやったりして適切に聞こえるようにします。


## :microphone2: 音素材の基準値について
あくまで弊社での場合ですが、前述のリアルタイムの音量コントロールの手間や、ノウハウの属人化を減らすため、以下のような目安を設けています。

* 楽曲はショートタームで -13LKFS
* SEはラウドネスではなく、RMS -13dB(response 90ms)

これは決して万能な値ではなく、**ラウドネスは低いけど音割れしやすい音** というのも存在します。
しかしそういう音は極めて少ないため、現時点では発見次第、個別に対処する方針です。


## :control_knobs: オーディオミドルウェアについて
[CRI ADX2](https://game.criware.jp/products/adx2/)や[Wwise](https://www.audiokinetic.com/ja/products/wwise/)というミドルウェアがありますが、これらのツールを使うと、今まで挙げてきた

* リアルタイムの音量コントロール

が、かなり手軽に実装＆調整ができるようになります。

ミドルウェアの説明だけで何ページも書けてしまうのですが
**プログラマーとサウンドデザイナーの分業を明確にして、お互い独立して作り込みができる**
というのがポイントです。
とりあえずこれだけ覚えておいてもらえるとお互いハッピーになれます。

----

ちなみにCRI ADX2の紹介ですが
つい先日、11/29に公開された最新SDKでは**ラウドネスを手軽にチェックできる**「Solv」というツールも同梱されるようになりました。
https://game.criware.jp/2019/11/29/sdknews/
Win/mac どちらも使えてとても便利で嬉しい。

![solv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96688/5221596e-6968-4c84-c170-49b49799e70b.png)

## :triangular_flag_on_post: まとめ
以上のような様々な事柄に気をつけながら、ユーザの心に一生残るような体験を目指して
サウンド面からのアプローチを続けています。

今後も色々と発信していくので、DeNAサウンドチームをよろしくお願いします！