beatmaniaのターンテーブルの仕組みについて

beatmaniaの特徴的なデバイスであるターンテーブルの構造と、動作の仕組みをまとめます。

主に5鍵についてまとめていますが、同じ構造のIIDXについても一部解説します。

ターンテーブルの構造

beatmaniaのターンテーブルには「歯車」と「フォトインタラプタ」が使用されています。

これは初代beatmania(5鍵)筐体、IIDX筐体、各家庭用コントローラーもほぼ同じです。

唯一の例外がbeatmania IIIです。
私は詳しくありませんがロータリーエンコーダが使われているらしい?

歯車・ギア

歯車は均等にスリットが入った円盤です。

5鍵初代beatmania筐体ではスリットの数が72枚。
360°/72=5°の回転で検出されるようです。

家庭用では省スペース化のため垂直に配置されています。

ASCIIコン・DJ Station Proはアーケードの半分で36枚。
なので10°で検出。

IIDXの専コンは50枚なので7.2°で検出するようです。

フォトインタラプタ

「発光するLED」と「受光する光センサー」とを組み合わせて、隙間に物が挟まっているか検出するセンサーです。

センサー部のみを指して「フォトセンサ」、「フォトダイオード」、「フォトトランジスタ」などと呼ばれる場合もあります。
似たやつで「フォトリフレクタ」は遮蔽の検知ではなく、反射光の検知なのでちょっと違う。

ここでは全体を指して「フォトインタラプタ」と呼称します。

アーケードで使われているのは「F」字型のフォトインタラプタのようです。
型番としては東芝のTLP1201Aとか、シャープのGP1A22HRなど。
いずれも5Vで動作します。

家庭用はRPI-441C1など?こちらはセンサー部とLED部で別々に給電します。
センサー部には3.3V、LED部には電流制限により1.14Vが印加されています。

アーケード・家庭用共に遮蔽の際に電圧がHighになります。

回転の検出

フォトインタラプタのパルス位相が90°(波長の1/4)ズレるように2つ配置すると、回転の方向も検出できます。

ちなみに5鍵筐体のフォトインタラプタは13.75°ずらして配置されているようです。
歯車1つあたりが5°なので5°×(3-1/4)=13.75°と一致していますね。

図にするとこんな感じです。縮尺はほぼ正確。
(クリックで拡大します)

反時計回り
時計回り
反時計回り拡大
時計回り拡大

右のセンサーが赤くなる瞬間に、左センサーはどうなっているか?に注目してみましょう。

反時計回りの場合は、右が赤くなる瞬間、左は青いです。
時計回りの場合は、右が赤くなる瞬間、左も赤いです。

このように「どちらかが変化したとき、もう片方がどうなっているか?」を確認すればどちらに回転しているか判断することができます。

検出信号の処理

アーケードの場合

5鍵の筐体にはターンテーブルの信号を処理する専用のサブ基板があります。

上の例では右のセンサーの立ち上がり(赤くなったとき)に注目しましたが、
実は回転方向を検出できるタイミングは
・左センサーの立ち上がりエッジ
・右センサーの立ち上がりエッジ
・左センサーの立ち下がりエッジ
・右センサーの立ち下がりエッジ
の4ヵ所あります。

ただ実機で検証してみたところ、ほぼ「右センサーの立ち上がりエッジ」(例と同じパターン)のみを使用しているようです。(若干例外的な挙動もあり)

定規でセンサーをズコズコ遮って動作検証している様子

仮に、全部のタイミングで検出すれば実機の4倍(1.25°で検出)の感度を持つターンテーブルも作れます。
手が触れただけで反応しますし、1回転スクラッチが90°で終わることになりますw

ちなみに家庭用と違ってアーケードでは現在の回転位置を0~255の絶対値で管理しています。
つまりどれだけ回したのかをゲーム側で判断することができるのです。

ただし1回転したときに変化する値は72で、255という数字は単に数値を8bitで管理されているだけで感度などとは関係ないようです。IIIでは1023までになっています。

数値は時計回りなら+、反時計回りなら-に変化します。

このサブ基板からはLANケーブルのようなものが伸びており、シリアル通信で現在の回転位置をメイン基板に送信しています。

この通信についても研究しましたが、長くなるのでそれはまた別の記事に。

家庭用の場合

家庭用でも、アーケードと同様に片側のエッジで検出しますが、立ち下がりエッジを使用しています。

センサーの位置はASCIIコン・DJ Station Pro・IIDX専コン(右皿のとき)、いずれも共通で、上側のセンサーの立ち下がりエッジです。

赤丸側のセンサーが解放されたときに回転を判断する

基本的にはアーケードと同じ仕組みですが、回転の位置を管理していません。
単に回転方向によってコントローラーの↑or↓入力が行われます。

連続で同じ方向に回したときに途切れないように、同じ方向の信号を一定時間出し続けるようになっています。
これが私の感覚では少し長く感じられます。
恐らく200ms以上あるために「アーケードで押し押しできる譜面が家庭用ではできない」と言うことが起こります。

これらを踏まえて

ターンテーブルの仕組みを理解するとこんな応用ができます。

  • 家庭用の検出部分を自作して押し押しを入れやすくする
  • アーケードの皿を家庭用で使う
  • 家庭用の皿をアーケードで使う

次の記事ではこのあたりをまとめていきます。

コメント

タイトルとURLをコピーしました