BMS についてちょっとだけ考えてみる

BCO近未来フォーマット"BM3"という記事で、あるひとがちょっと話題に出したオブジェの「強さ」の補足を。

最初に言っておくと、これは「強さ」をあらわすものではありません。どちらかというと「ビート」が正しいと思われます。事の発端は Rez のトランスバイブレータの存在でした。トランスバイブレータについて軽く説明すると、PS2 の USB 端子に繋ぐことでゲームから出される信号にあわせて振動するというものです。Rez が「振動」を重要な要素の一つとしてとりあげていたように、実際にやってみるとこれがなかなか面白いです。ところが、このトランスバイブレータですが、使いづらさもあってか対応するゲームが Rez とスペースチャンネル5 パート2くらいしかないという悲劇のアイテムとなっています。このままではもったいないので、何とか BMS にも使えないかなーと考えたわけです。

さて、トランスバイブレータは先ほども触れたように USB 端子で繋ぐので、PC にも繋がる事は明白です。問題はそれを制御できるかどうか。ちょっと調べてみたところ、どうやら Windows でも Mac でも制御することは可能なようです。そして、その振動の強さは00~FFで指定するらしく、これはまさに BMS 向けではないかと。つまり、新たに「トランスバイブレータを制御する Ch」を作り、そこに00~FFのオブジェを置く (実際に目に見える必要はもちろんありません) ことで作曲者側が曲に合わせてトランスバイブレータを動かすことができるわけです (00は無反応、FFが最大)。また、制御 Ch が存在しない BMS では、beatmania III のフットパネルのように任意の Ch によって制御されるようにすれば対応できます (ただし、この場合は振動の値を常に最大などに固定した方がいいでしょう)。

ところが、これには問題があります。そう、新しい仕様を考えても本体側が対応しない事には全く意味がないのです。これが簡単に実装できるような仕様ならまだしも、トランスバイブレータの制御となるとサンプルも少ないので、どの本体も対応しないでしょう。そこでトランスバイブレータだけにこだわるのではなく、各本体が思いのままに使える「ビートの定義」というものを考えました。冷静に考えてみれば、ビートを表現するのはトランスバイブレータだけでなくてもいいわけで、例えば beatmania のようにフレームの外側の色を変えるとか、オブジェを大きくしたり小さくしたりするとか、いろいろな方法が考えられます。実際にどのように「ビート」を表現するかは各本体の作者さんたちにお任せするというわけです。

実をいうと、これは将来開発予定である uBMplay の C / C++ 移植版にこっそりと採用する予定だったものです。が、C / C++ の勉強が遅々として全く進まず、このままではせっかく考えたネタがいつまでも出せないという時にちょうど話題になったので取り上げてみました。こんな使い方はどうかな!などのアイデアや意見があったらコメントなどでどうぞ。

参考: プレステ2用USB周辺機器「トランスバイブレーター」をWindowsで使う