こんばんは。

サウンドについて、まとめたいと思います。

この記事では次の内容に触れます。

・FFXIV(PC)のサンプリングレートと量子化ビット数、チャンネル数
・実際に流れる音源はどうなっているのか
・サンプリングレートとは
・実際に音の出口になるデバイスの選定
・デバイスとの接続
・どうすれば開発が理想とする音に限りなく近くなるのか
・倍音って何?
・まとめ
・番外編

 

それでは、始まり始まり。始まれ。

 

 

1.FFXIV(PC)のサンプリングレートと量子化ビット数、チャンネル数

一般的なCDは「44.1kHz(44,100Hz)/16bit|2ch」です。
ちなみにFFXIVのサウンド集(コレとかコレ)は「96kHz(96,000Hz)/24bit|2ch」です。※一部5.1chコンテンツ収録
こればっかりはわからないので、祖堅さんに直接聞きました。ツイッターで。

最大というのはチャンネル数でしょうか?それでしたら5.1chが最大数です。音源のサンプリングレートは基本44.1kHz16bitですが、ターゲットによってフォーマットが異なります。更に1音1音の個別サウンド単位でビットレートとチャンネル数が違います。
https://twitter.com/SOKENsquareenix/status/561094585896538112

さあ、基本的には「44.1kHz/16bit|5.1ch」ということがわかりました。次に行きましょう。
……短ッ

 

 

2.実際に流れる音源はどうなっているのか

これはまあ、考えれば当然なのです。
CD音源というのは、簡単にいえば.wavです。この形式、サイズはまちまちなんですが、1分で10MBくらいになります。
さあ、ここで問題が発生します。ゲームというのは、恐ろしい数の音声が鳴るものです。
そして基本的に、この音声というのは、メモリに乗っているか、都度読み込まれるものです。

1音単体で見れば周波数帯域の限定はできます。1音単位とは例えば「ッタ」という足音、勝利のファンファーレ(ジングル)、4chで仕込んであるループ環境音、BGM1曲、などの単位です。ですが、ゲームですと話はそう簡単ではありません。
https://twitter.com/SOKENsquareenix/status/561099564195651584

特にXIVの場合、秒間で発音しているサウンドファイルは数百個に及びます。サウンドファイル1音の中に波形を複数組みこんだり、1音単位でフィルタを使ってたりするので、波形にまで目線と落とすと秒間の音数は数千以上に及びます。
https://twitter.com/SOKENsquareenix/status/561100235074580480

1秒17KBとして、単純に1,000倍しても900MBを超えます。
少々詳しい話になりますが、シーケンシャルリード(1つの大きなファイルの読み込み)はともかく、ランダムリード(大量の小さいファイルの読み込み)は速度が出ません。
要は読み込みがボトルネックになります。現状無理です。グラフィックモデルの読み込みだってありますからね。
さらに、コレをメモリに載せたらどうなるでしょうか。最近のものでも、よくあるのは4GBとか8GBです。
たかだか1秒でこんなに食い散らかしては、いくらあっても足りません。
故に「圧縮音源」を使います。※例えば.mp3もこれの類です。
.wavよりも小さくなりますが、可聴域外の音を削っているので、あまり人間の耳で聞き取れるほどの変化はありません。

圧縮音源を使っているけど、その仕様上、人間の耳では違いがわからないよ。
.wavはサイズが大きすぎて非現実的どころかどうやっても無理。スパコンでも用意しろ。
ということがわかりました。次に行きましょう。

 

 

3.サンプリングレートとは

サンプリングレート(サンプリング周波数)とは、Hzのことです。波形を、デジタルデータに変換する際に、時間単位で何回サンプリング(標本)をとるか、を示します。
この数字が大きければ大きいほど、同じ時間で標本をとる回数が増えます。波形をより細かく作り出せます。
点と点を結んで線グラフを作るイメージですね。その点をどこまで細かく(間を狭く)とっていくかということです。
どうやっても拡大していけば直線になりますが、その間が狭ければ狭いほど、曲線に近くなっていきます。つまり、リアルな波形に近づくのです。
ただし、波形です。波です。「~」ということで、折り返しが発生します。その関係で、サンプリングレートの値の半分が、記録できる音声周波数とイコールになります。
02
点を書いてつなげて線グラフにする、その点と点の細かさです。

 

 

4.実際に音の出口になるデバイスの選定

音を出すのは、スピーカーやヘッドフォンになります。サンプリングレートが判明し、3で説明したことを踏まえて考えましょう。
44.1kHzがサンプリングレートなら、音声周波数は22.05kHzです。
01
そこで、上の画像の赤線部分を確認しましょう。その部分が22.05kHz(22050Hz)以上を示していれば、無駄なロスがなくなることになります。
つまりどのようなデバイスを選ぶにせよ、これさえ超えていたら、最低限、問題ないわけです。
ただ、モノによっては、高音が潰れてしまったり、逆に低音が潰れてしまったりと、くせのある発音をします。
選ぶのなら、自分の耳で確かめて納得したものを買うほうがいいですし、店頭で試聴すると良いですね。
悩んだら、祖堅さんイチオシのFFXIV推奨品から選ぶのも、いいですよね。

なお、この帯域をぶっちぎりで抜き去って「遥かに高いHz」まで出せるものも、無駄にはならなそうです※後述

 

 

5.どうすれば開発が理想とする音に限りなく近くなるのか

それでは、どうすれば、近づけられるでしょうか。
ひとつは音を素直に出してくれるデバイスでしょう。出口は重要です。
そのほかにもあります。例えば、サンプリングレートと量子化ビット数設定の一致です。

【Windowsコントロールパネル→ハードウェアとサウンド→オーディオデバイスの管理→サウンド「再生」タブ→規定のデバイス】
プロパティを開き、詳細タブに移動します。
規定の形式を確認して下さい。これ、どうなっていますか?
違っていたら、44.1kHz(44100Hz)/16bitに合わせましょう。

何故、合わせなくてはいけないのか。
これはWindowsのオーディオエンジンの仕様のせいです。

詳しい方は知っていると思います。異なるサンプリングレートや、量子化ビット数の音が、Windowsでは混在します。システム音とかも、です。
それらは、一般的に同時に再生することが出来ません。
だからといってですよ、いちいちエラーを出していたら、普通にPCを使っているだけで出まくりです。やってられません。
そのため、Windowsのオーディオエンジンは、全てのサウンドをリサンプリング(サンプリングレートの変換)してしまいます。
このときに、ダウンサンプリングだったり、アップサンプリングするわけですが、本来存在しない点を新たに作ったり、点を削除するわけです。
「新しく点を取るんだから良くなるんじゃないの?」と思う方もいるでしょう。そうとも限らないんです。
新しい点を作るとき、前後の波形を参考にするわけですが、所詮は「想像して点を打つ」わけです。こんなもんが原音と同じになるわけがありません。
故に「音が歪む」とよく言われます。変質してしまうわけです。音が曇ったように聞こえる、とか。
後述しますが、これを回避して出力する方法は、FFXIVクライアントにはありません。
どうしようもないので、可能な限り、リサンプリング回数を少なくする努力をします。

まず最初に。ゲーム内の音に関しては基本的に圧縮音源を使っています(理由はお分かりかとは思いますが)。なのでサンプリングレートを合致させて補正させないように・・・という手法は、多少有効かとは思いますが、そこまで効果的では無かったりします。
https://twitter.com/SOKENsquareenix/status/561097041502158849

そもそも圧縮音源になった時点で(波形的には)大元から離れるわけで、効果は薄いですが、こだわるならばやるべきでしょう。
システムサウンド等を出すためのMixも不可避です。諦めます。

 

 

6.倍音って何?

やってきました倍音です。吹奏楽部員だった血が騒ぐぅ!
まあ詳しいことはWikipedia先生に聞きましょう。
あ、ここもいいですね(Google大先生さすがです)
簡単に言うと、1オクターブ高い音が鳴るわけです。データとして見たら、鳴らないはずの音です。

こうなると、ゲームのようなインタラクティブな要素が絡む発音の場合、波形と波形の掛け合わせで周波数帯域の広がりは無限です。というわけで、あればあっただけ、いいという事になります!
https://twitter.com/SOKENsquareenix/status/561100583818387456

全然効果あると思います。掛け合わされた倍音成分はおそらくどこまででも伸びていくし、その時々によって変化するハズです。何故かと言えば全ての天候、全てのオブジェクト、素材、至る所にインタラクティブに追従するサウンドを組み込んでいるからです。
https://twitter.com/SOKENsquareenix/status/561102206716215296

それだけ発音しまくってるので、倍音鳴りまくってると思いますYO!
https://twitter.com/SOKENsquareenix/status/561103619705933824

スピーカーやらは振動板が震えて、音が出ているわけです。
倍音を鳴らすとしても、振動板がそのHzまで震えるものでなければ、あまり期待できないでしょう。
4で書きました。そうです、高くても無駄にはなりません。倍音、鳴らしまくりましょう。響け、倍音!
なお筆者、影の薄いユーフォニアムを主に担当しておりました。祝・アニメ化
ユーフォニアム?なにそれUFO関係?とか言ってた奴らにギャフンと言わせてやるんや!やったれ京アニ!HAHAHA!!!!

 

 

7.まとめ

音楽は……感性だッ!!!

まあ、はい、そんなもんなんですよね。結局、人それぞれ好みが変わるわけです。
だからね、何が一番なんて決められたもんじゃないんですよ。あくまでもこの記事は、参考なんです。
これが正しいというわけでもない。開発の理想とするサウンドが最高というわけでもない。
こうやって、興味を持ってくれた人が、ここまで読んでくれている、それだけで嬉しいことです。
この記事がね、何かのきっかけになって、スピーカー沼 サウンドを気にするようになってくれたらいいなあと思います。
最低限の知識と、自らの感性を引っさげて、ヨドバシカメラ秋葉原店4Fとかで、相棒を探してみてください。
eイヤホンとかの専門店でもいいかもしれないです。

そこまでお金は出したくないなあ、という人。おすすめがあります。
超・入門用「JVC HP-RX500」です。なんとAmazonで2980円、にーきゅっぱっ!
それでいてバランスのとれた音を出してくれます。そら、○万するものと比べたらダメですが、この価格帯だとぶっちぎりな感じで。
なんでここで販促してんだ……?

 

 

8.番外編

WindowsオーディオエンジンでMixだのリサンプリングだのを回避する方法。あります。FFXIVじゃ使えません。使える方法あったら教えてくださいお願いします。
ASIO,WASAPI(排他モード)です。
これは他の音が鳴らなくなる代わりに、全ての段階をすっ飛ばして「ビットパーフェクト」でギリギリまでデータを直送します。すごいでしょ。
ちなみにFFXIVはXAudio2です。Windows標準のやつ。
対応に関しては……やっぱりコスト問題です。でも、長い長い運営になるでしょうし、いつか対応してくれるかもしれない。小さい希望。

そしてWASAPIやASIOの対応が可能か不可能かでいえば、可能です。が、現在XIVのサウンドドライバはXAudio2に最適化されていますので、ここを改良するとなると多大なコストがかかります。
https://twitter.com/SOKENsquareenix/status/561098032951730177

よりよい音への追及は非常に大事ですが、あまりにもコストに見合わない内容ですと”会社”では席がなくなりますw このあたりはバランスが大事! 但し XIVの場合ゲーム本体ではありませんが「BDM」という大冒険を現在も行っている最中ですので、可能性ゼロではないかも?
https://twitter.com/SOKENsquareenix/status/561098791382552577

まあ、会社ですもんねえ……赤字はダメですもんねえ……

そういえば、FFXIVサントラのマスタリングを行ったスタジオに行ってきてます。結構前ですけど。サインも貰ったんですよ、へっへっへっ……
スタジオの環境ってすごいよね……ほんとすごいよ……
【FFXIV】前田康二さんのスタジオに行って来ました【Before Meteor】

 

 

9.終わりに

突然の質問に答えてくださった、祖堅正慶さん。本当にありがとうございました。
闇の世界で懐かしの曲がアレンジされて流れて、テンションダダ上がりでした。
懐かしくて涙が出そうなのに、戦いたいって気持ちになる、不思議な感じでした。
サラウンドシステムは自室にセットアップしてありますし、準備ができたら、その記事も書いてみたいです!
(2/8ってニーハイの日でしたっけ……)