序 - 音ズレってなんなん

 音ズレとは、文字通り「音がずれる」ことです。

 例えば、DTXMania においては、BGMとドラム音がずれてしまうことがあります。
 また、BGM とドラム音は合っていても、画面(チップ画像)が音に対してずれてしまうこともあります。
 さらに言えば、パッドを叩くと少し遅れてドラム音が鳴る、なんてのも音ズレの一種として考えることができるでしょう。

 音ズレの分類については後述しますが、ひとまず、これらが起きると非常によろしくない精神状態になります。なんかムズムズします。「音ズレがないこと」は、音楽ゲームやリアルタイム演奏アプリを作る上で、最も重視される条件であるべきです。

「小足見てから昇竜余裕でした」

 格闘ゲームの達人は「1フレームを見極める」といいます。

 一般的なディスプレイの垂直帰線同期(VSync)周波数は、60Hz です。この場合、ほとんどのゲームでは、1 秒間に 60 回のフレーム描画を行います。このとき、フレームからフレームに切り替わるまでの時間は、1/60 秒=約 16.6 ミリ秒(㎳)になります。

 予測やカンに頼ることなく、相手の小キックの出始めを捉えてから 16.6㎳ 以内にこれを昇竜拳で迎撃できることが、格闘ゲームの達人の条件なんですね。

【参考】格闘ゲーム愛好家ら、「光は遅すぎる」と主張 - スラド

 一方、DTXMania では、初期状態での Perfect レンジは 34㎳ に設定されています。すなわち、ドラムチップがヒット判定バーを通過する時刻から ±34㎳ の間にパッドを叩けば、見事 Perfect の判定が下されるわけです。

 ±34㎳ ということは、Perfect 判定が出る時間帯は、チップの前後合わせて 68㎳ あるということになるのですが……、これは、先ほどと同じディスプレイでいえば 4 フレームに相当します。ぬるいですね。

 しかし、これだけをもって「音ゲーマーは格ゲーマーよりも劣っている」と言うなかれ。
 3 分の曲で Excellent(すべてPerfect)を出せる人は、その 4フレームを「3 分間ずっと見極め続けた」ということになるのです。さらに、ドラムの場合は手だけではなく足も使います。リズムという偉大な手助けがあるとはいえ、音ゲーひいてはドラムゲーには、格ゲーにも負けず劣らずの苦労があるのです。

 まぁ DTXMania に Excellent 判定などないんですけどね。

☆   ☆   ☆

 ……以上のことから、「±34㎳ を超える音ズレが発生してはならない」という条件が、DTXMania を作る上での最低評価基準のひとつになっているわけです。

「10㎳」の壁

 人間は、だいたいズレが 10㎳ を越えると音ズレとして知覚するといいます。
 DTXMania での最低基準が ±34㎳ だとしても、実際まだまだムズムズする人が多いってことですね。

 DTXMania にとって、音ゲーにとって、音ズレをいかなる条件下においても 10㎳ 以内に収めることが、2018年(※初版執筆当時)を目前にしてようやく見えてきた勝利条件だと言えるでしょう。

 OS 別に見てみましょう。

 iOS は、サウンドのレイテンシ(Latency; 遅延、発音の遅れ)について、かなり早くから 10㎳ を保証してきました。このことは、早くから音ゲーや DAW アプリが iOS にばかり数多く公開されてきたことからも伺えます。

 Windows が 10㎳ 以下のレイテンシに「標準で」対応したのはごく最近で、2015 年 7 月に最初の Windows 10 が登場した時のことです。ただし、その恩恵を受けるにはサウンドデバイスのドライバの改修も必要となったので、実際に標準レイテンシ 10㎳ を体験できたのは、それから 1 年近く後になりました。

 なお、DTXMania で使用しているオーディオライブラリ「BASS」がこれに対応したのは、実に2017年11月15日のことです。先月ですよ先月。(※初版執筆時点)

 そして 2018 年には、iOS・Windows に次いで、いよいよ Android でもサウンドのレイテンシを標準で 10㎳ 以下にできるようになる、そうです。

【参考】遅延大幅減で “音ゲー” も増える? 次期「Android O」で大きく変わるオーディオ環境 - PHILE WEB

 すわなち、先の勝利条件における「10㎳ 以内」はもう iOS, Windows, Android の 3 大OSで保証されるようになったので、今後は「いかなる条件下においても」の部分が主題になるわけです。

 ますますプログラマの腕の見せどころですね!

 終わりの見えない戦争です。

音ズレの分類

 先ほど少し触れましたが、音ズレとは「音と音とがズレる」ということだけではありません。

 音ズレとは音にズレを与えるものだと(無理くり広めに)捉えると、「サウンドのズレ」「入力のズレ」「描画のズレ」という 3 種類のズレを考慮する必要があると考えます。

サウンドのズレ」は、複数の音を鳴らしたとき、それらの鳴るタイミングがズレてしまう現象です。DTXMania で言えば、BGM とドラム音がズレてしまうことが非常にしばしばかなりよく頻繁にあります。

入力のズレ」は、パッドを叩いた際にドラム音が遅れて聞こえたりする現象です。入力時刻(プレイヤーがパッドを叩いた時刻)を正確に取得できないために、Perfect 判定が Great 判定に格下げになったり、連打とチップが1つずつズレたりと、様々なストレスを誘発します。

描画のズレ」は、何らかの理由で画面と音とがズレる現象を表します。耳で聴く分には BGM もドラム音もぴったり一致しているのに、目で見るチップの位置はズレている、などの場合が挙げられます。

余談:「フラッシュラグ効果」

「フラッシュラグ効果」と呼ばれる錯視現象では、実際にはまったくズレていない描画でも、人は刺激から知覚までの「遅延を誤認」するものだと説明します。

【参考】閃光遅延効果 (Wikipedia)

 トカナさんの記事消えてた。

 人間にはもともとこういう目や耳におけるズレを誤認する能力(?)があるということで、いまさら10㎳ のズレがどうこう論じることも意味がないようにも思われるかも知れませんが、実際のところはどうなんでしょうね……?

音ズレの原則

 サウンドのズレ、入力のズレ、描画のズレは、それらがあるだけでも問題なのですが、これをさらに悪化させる「原則」があります。それは、「パソコンがみんな同じであるはずがない(なんかちがう)」という原則です。

 譜面を作る人のパソコンでは音ズレがなくても、それを演奏する人のパソコンでは音ズレが生じてしまう。
 あるいは、パソコンを買い替えたりサウンドボードを追加したりした途端に、今まではなかった音ズレが生じてしまう。
 これは、ハードウェアとソフトウェアをガチガチに固められるアーケード筐体やコンシューマーゲーム機とは異なる、Windows パソコンならではの原則ですね。

 3 つの音ズレに更に上乗せされるこの「音ズレの原則」こそが、「音ズレ」をややこしいものにしている最大の要因です。

 ほんと勘弁してください。

タイマーを支配せよ

 そして、すべての音ズレに共通する要因が、「タイマー」です。
 サウンドも入力も描画も、基本的にすべてがタイマーに支配されます。

 この世にタイマーが1つだけしか存在しないなら、何も問題はありませんでした。
 タイマーに従って絵を描き、タイマーに従って音を出し、タイマーに従って入力を裁く。
 それだけの、はずでした。

 しかし、DTXMania を初めて公開した 2000 年から現在に至るまで、タイマーの技術はどんどん進化(ときに退化)していきました。

 タイマーの種類や精度の違いによる音ズレが生じるようになりました。
 Windows 98 と Windows 2000 などの OS の違いでも音ズレが生じるようになりました。
 Windows Me なんてありませんでした。
 Windows 自体をグレードアップするどころか Widows Update を適用するだけでも、時には音ズレが生じるようになりました。
 さらにこれらは「音ズレの原則」に従い、時間を重ねるほど、そして DTXMania が広まるほど、音ズレをより複雑な問題にしていきました。

 2000 年に Windows 98 で BMSCreator を用いて作られた DTX 譜面が現在の最新の DTXMania で正常に再生できることは、もう奇跡に近い確率です。

 さらに恐ろしいことは、今、現在作られた譜面でさえ現在の DTXMania で音ズレを引き起こしているという報告がごく普通に散見されているということです。もちろんこれには理由があるにはあるのですが、それを解決するには、DTXMania 本体を改修するだけでは到底不可能なのです。このことについては、後々「因果」の章で例を挙げることにします。

 とかく、すべては「タイマー」です。

 音ズレ戦争の歴史は、そのままタイマーとの支配し支配される戦争の歴史でもあるのです。

☆   ☆   ☆

 以降では、DTXMania の制作経験をもとに、時代と共に「音ズレ」をどう捉え、どう戦ってきたかの経緯、そして今後の予測について、お話します。