いらっしゃいませ。
こちらでは、私の日々の記録や思っていることを書いております。
本ブログについての重要事項は[広報モード]に記載されておりますので、
広報モードカテゴリの内容は必ずご覧ください。

また、はてなダイアリー・はてなブログによるリンクより辿って来た方は、
ホームページはこちらですので、
そちらもご覧ください。
一般的な雑談やご要望などはホームページにある「カフェ」(掲示板)にお願いします。
日記に対するコメントは一番近い話題が書かれている日のトピックスのコメント欄に、お願いします。
触れてある内容に近い話題であるならそちらに書き込んでも構いませんが、日記にコメントしていいかどうかわからない場合は、掲示板に書いても構いません。
ホームページにはゲストブックもございますので、足跡をよろしくお願いいたします。

記事内の動画を再生する際には、最新の QuickTime Player(無料)が必要です。

倍速って…

この日、中学生くらいの集団の一人が私がドラムをやっているところを覗いて「(ノートのフロースピード)4.5倍だ!」と言っていました。
おそらく、他の人のを見て参考にしようしているのでしょう。


ここで、「何のために倍速をかけるのか」「倍速をかけて本当に得なのか」ということをおさらいも兼ねて考察しましょう。

フロースピードを上げるとどうなるのか

フロースピードは、dbFMワードにもあるように

音楽ゲームにおいて、ノートが流れるスピードのこと。

です。
フロースピードを上昇させればノートが流れるスピードは速くなってしまいます。
ここまで聞いていると音楽ゲームについてご存じない方は、「ノートを速く流れると目が追いつかないから得にはならないのでは」とお思いでしょう。


しかし、下の図を御覧ください。左は等速(フロースピードがデフォルトの状態)のときで、右はフロースピードを2倍速にしたときの図です。

左右を比べると、以下のことがわかります。

  1. 一画面の情報量が少ない
  2. ノートとノートの間隔が広い

つまり、譜面の組成がわかりやすくなるのです。


この事象はなぜ起こるのでしょうか?ここで重要な点は、フロースピードを上昇させるとたしかにノートが流れるスピードは上昇するのですが、BPM(音楽自体の速度)は変わらないということです。


ここで、矢印の付いている赤いチップがt秒で流れきると仮定しましょう。フロースピードの基準をv_1とすると、フロースピードを二倍にすると2 * v_1になります。
ところで、BPMは変化しないので、同じ状況で同じチップが流れきる時間も同じt秒となります。
ここで、同じノートが流れきるまでの距離に注目してみましょう。等速のときv_1 * tとすると、二倍にしたときには2(v_1 * t)となります。つまり、距離が二倍になります。
だから、画面の距離をDとすると、チップが存在する比率が(D / (2 * v_1)) / (D / v_1) = 1 / 2となり、「情報量を絞る」ことができるのです。
また、ノートの間隔も相似の関係からその間隔も2倍に「広くなって」います。

上げればいいというものではない*1

しかし、直観的にお分かりのように上げればいいというものではありません。
自分が処理できないくらいに上げてしまっては逆効果です。ここまでくると、動体視力のレベルになってしまいます。また、あとで述べますが、利点の一つであるはずの「情報量を絞る」ということが欠点にもなりえてしまいます。
つまり、「人のフロースピードを参考にすること」などできるはずがないのです。



ただし、私は特別に動体視力が良いわけでもなければ譜面を全部覚えているわけではありません。
では、速い速度を「処理できるようにする」にはどうすればいいのでしょうか。
私はよく脱オートバスのアドバイスとしてこのようなことを言っています。


「パターンをアルゴリズム化する」ということです。
あるパターンができない理由の一つとして、プログラミングで譬えると脳内にそのパターンを処理する関数ができあがっていないからなのです。ドラムには「8ビート」とか「裏バス」とか普段意識はしていないものも含めてある程度特定なパターンがあります。それの叩き方が身についていれば---脳内に「プログラミングの関数」ができていれば意識しなくともその叩き方ができるようになるのです。


これは、フロースピードについても言えることで、脳内の処理速度がいくら中央制御装置的に速くても、呼び出す関数がなければ流れてくるノートのパターンを全部「割り込み処理」として捉えている上、割り込み要求が出ていてもそれを処理する関数がないため、要求を溜めるプールがオーバーフローを起こしてしまい、処理が間に合いません。
さらに、呼び出すタイミングもわからないため、次にくるものを予想しなければならなくなります。つまり、「情報量を絞る」という行為が裏目に出てしまうのです。


対して、関数ができあがっていれば処理の流れもスムーズなので、入力が少なくても「このパターンはこうだな」と意識せずとも叩くことができます。また、更に慣れてくれば関数を呼び出すタイミングもわかっているので、情報量が少なくても充分なのです。


もちろん、関数の作り方は非常にヒューリスティックなものです。
最初は簡単な譜面で「ここでハイハットを叩いて次に足を踏みながらハイハットとスネアを同時に…」ということを意識しながらパターンを叩き込んでいくしかありません。
それの繰り返しである程度パターンを覚えれば意識せずとも自然と叩くことができるようになるのです。
それを何度も「デバッグをする」という作業が重要なのです。

*1:この文章がはてなワードを使ってもわからない場合はお申し付けください。