見出し画像

実はあまり知られていない、サウンドデバイスの遅延について

INFINITASらーいふ!

というわけで、beatmania IIDX というゲームは、そのゲームの特性から、特に音声や画面の遅延状況の影響をモロにゲームスコアに反映されるゲームでして、ウニとか太鼓とかDDRとかSDVXだとなにも問題ないし、タイミングずらせばいいだけでしょという話でも、そういう事が絶対にできない仕様になっております。

ですから、コントローラーのような入力デバイスだけでなく、サウンドデバイスや描画デバイスといった出力デバイスの遅延具合にも気を使わなければならず、そういう意味では大変メンテナンスが難しいゲームということになります。

今回は、その中でも「サウンド入出力にかかわるデバイス」に焦点を当て、どんな要素がダイレクトフィードバックに影響するのかを私が知る限り列挙しておこうと思います。ほかの影響があるかどうかについては指摘いただくと、「へー」となりますのでよろしくお願いします。

遅延に関わるサウンドデバイス

以下に設定や仕組み次第で遅延する可能性があるサウンドデバイスを列挙します。

  • サウンドカード

  • OSのサウンド設定

  • 配信、録画ソフトウェア

  • デジタルミキサー

  • スピーカー、ヘッドホン、イヤホン

PCサウンドが遅延する仕組み

それぞれのデバイスがどのように遅延に影響するのか、ということを説明する前に、いったん、PC等デジタルデバイスのサウンド出力がどのように遅延するのか、というのを説明しておきます。

基本的には、画面の遅延等と同じ仕組みではありますが、サウンド関係はより深刻な面もあるかもしれません。

まず、コンピューター等のデジタルデバイスが何かを処理し出力するためには、メモリにその情報をためなければなりません。バッファリングと言われる処理ですが、これは入力するときと出力するときの両方において必要です。

何かの入力がある→バッファにためる→何かの処理をする→出力用バッファにためる→出力する

という流れです。すべてのデジタルデバイスにおいては何らかのバッファリングは必ず行われており、これがどれだけ大量かつ速いか、ということで遅延状況が変化します。

ですので、要は「より音質をもとめる=情報量が増える」ということになり、それに即した形でバッファにためるスピードも速くないと遅延する、ということになります。

ということで、これをできるだけ遅延をなくすためにはどうする必要があるか、というと情報量をより細切れにしてちょっと貯めてはすぐに出す、というアプローチで、それが一般ユーザーにできる唯一の方法、ということになります。

ですが、現在のサウンドシステムというのは、出力する際にその出力するバッファがない場合、最悪PC全体がフリーズするというジレンマを抱えており、これが最適な設定をすることを難しくしています。
遅延を抑えるには、サウンド出力のタイミングを短くしなければいけないが、短くしすぎるとシステムに影響がでる、というチキンレースをさせられることになるわけで、エンジニアの人大変ね、となるわけです。

これらを踏まえて、遅延に関係する要素というのを列挙していきます。

サウンドカードの何が遅延に関係するか

  • 周波数

  • 深度

  • サンプル数(バッファ容量)

  • レイテンシ

周波数と深度を上げると情報量が増えます。サンプル数とは出力をする容量の閾値でこの容量以上をバッファリングしたら出力するよ、という設定です。レイテンシは出力する周期を設定するもので、多くのサウンドカードは大体サンプル数かレイテンシのどちらかを設定する形になっています。

サンプル数とレイテンシの設定はどちらが良いかというと一長一短あり、表裏一体の関係でもあります。

それぞれの特性を上げると、サンプル数の設定は音がぶつ切りになることは少ないが、一定ラインよりも遅延を下げることができない。レイテンシの設定は遅延を極限まで下げることが可能だが、音がぶつ切りになる可能性が高まる。という感じです。

なぜこういう設定があるかというと、単純にCPUの処理性能次第でバッファリングのスピードが変わるから、という話です。

サウンドカードの遅延を調整するには、できるだけ深度や周波数を上げ、サンプルやレイテンシの設定を下げ、音がぶつ切りにならず動作が安定するギリギリのラインに設定するとよい、ということになります。

OSのサウンド設定の何が遅延に関係するか

  • 共有設定と排他設定

基本的にWindowsのサウンドミキサーはうんこと言われています。憶測ではありますが、共有設定にすると複数のサウンドミキサーがある場合、最もレイテンシが高い設定に合わせ動作し、処理に時間がかかり、遅延が最大化するらしいです。

そのため、最近のマザーボードには大体標準でオンボードサウンドチップというのが搭載されていますので、ほかのサウンドカードを付けると遅延が発生する、ムキー、みたいなことがあるとかないとか。

幸いINFINITASには排他設定という項目がありますので、普段遊ぶときは排他設定で遊ぶのが良いかと思います。

配信、録画ソフトウェアの何が遅延に関係するか

これ実は盲点でして、最近のグラフィックカードのドライバーソフトにはオーバーレイで録画できる機能がありまして、これがスタンバっているとどうなるかというと、ゲームから出力された音声データが一旦録画ソフトを経由して、サウンドカードに送られる、ということになるんですよ。コレが。

さらにOBSとかですとそのサウンド設定でフィルタリングができるプラグインとかがありまして、そのプラグインを噛ませると音質等調整できるんですが、レイテンシの設定等もそのプラグインによって追加されたりして、出力までにさらに時間がかかったりもします。

ということがあるので、極力録画機能や配信機能はオフにするのが良いかと思います。設定も確認も複雑になるしね。

デジタルミキサーの何が遅延に関係するか

つまりは、デジタルデバイスというのは、データを音声に変換する際に遅延が起こるものだということです。デジタルミキサーは基本的な構造は外付けのサウンドカードと同じものですので、USB接続経由で取得した音声についての遅延は必ず発生します。

多くの場合、この遅延については言及がありません。が、デジタルをアナログに変換する際、バッファにためる必要があるので必ず遅延が発生するのは自明です。デジタルミキサー経由で音声出力するのはやめたほうが良いと思います。

スピーカー、ヘッドホン、イヤホンの何が遅延に関係するか

じゃあ、スピーカー、ヘッドホン、イヤホンってアナログでしょ?なんで遅延すんの?と疑問に持つ方もおられるかもしれません。が、実は、最近のイヤホン・・・

電子部品が組み込まれているものがあるんです・・・

ヤバいっしょ?音質を高めるために入ってきた音を電子部品でフィルタリングして振動板の特性に合わせて調整してるっていう。

つまり、そこで遅延が発生する可能性があるのよ。まぁ、それで安く高音質なイヤホンが手に入ると思えば、ゲームしない限り気になるはずもないところなので、そういうメーカーの姿勢が悪かというとそうでもないわけですが。

というか、遅延気にする人って絶対利用用途はゲームだし、ゲームでも気にするのはFPSか音ゲーやってるときくらいだし、音ゲーでも影響大きいのはINFINITASくらいだし、それでも気にする人はそこまでいないし、って感じもあるので、まぁ、この状況は改善しないでしょう。

ムキー

このポストを書こうと思ったきっかけ

さっき、INFINITASを遊んでて「なんでこんなにスコア出ないんだろ」という悩みがずっとあり、サウンドカードかと思ってたら、イヤホンをゲーセンで遊んでるときのやつに変えたら、びっくりするくらいバク伸びしてビビったから、というのがあります。

ゲーセンで遊ぶときに使っているイヤホンは、ゼンハイザーのイヤモニ IE40 Proです。絶版になりましたが、後継が出ておりますのでAmazonリンク張っておきますね。遅延はわかりません。


いいなと思ったら応援しよう!

おるのん
サポートいただくと、生活費や取材費などの活動のために有意義に使わせていただきます。よろしくお願いします。