2016.04.18
まあまあのVRピンボールを最高のゲームに
私は、今年のGDC(ゲーム開発者会議)でOculusのイベントに参加したのだが、そこで初めて、ピンボールFX2 VRが開発中であることを知った。私はこのゲームを5分間試してみて、これ用のVRインターフェイスを作りたくなった。そのVRコンポーネントには、ちょっとがっかりさせられた。頭を動かして、ショットやボールをいろいろな角度から見ることができないのだ。ともかく、Oculusの発売は1週間後なので、私はホームセンターに駆け込んで、フォームコアのシートを数枚購入した。そのほかのものはすでに揃っている(私は長年、本物のピンボールマシンを集め、手入れをしてきたし、Adafruitsの大得意客だ)。
まずは、本物のピンボールマシンの手前の部分の寸法を測り、実寸大のレプリカをフォームコアで作った。そしてボタンの位置を測り、裁断し、すべてを接着剤で組み立てて一晩おいた。さらに、実際のマシンの高さを測って、市販の脚をボルトとブラケットで取り付けた。ボタンとジョイスティックはノーブランドのものだ。大切なのは、フリッパーのボタンが「クリック」しないこと。そうでないと雰囲気が出ない。私は本物のマシンに使われているリーフスイッチを使おうと考えたが、Adafruitの30mmの透明なボタンがちょうどよかった。ピンボールマシンにジョイスティックはおかしな取り合わせだが、メニューをナビゲートするために必要なのだ。
すべての配線を、USBでコンピューターに接続したTeensy LCマイクロコントローラーを載せたブレッドボードに集める。Teensyには、コンピューターに自分はゲームパッドだと思い込ませる便利なモードがある。なのでコードは単純に、グラウンドピンをゲームパッドのボタンの押下に変更するもので済む。また、台の揺れを検知する加速度計も加えて、ゲームパッドの台を揺らすアナログスティックの信号を、台の左右方向の動きに置き換えた。プランジャーでもあるスタートボタンは、照明入りだったので、USBから5ボルトの電源を供給した。
最大のハードルは、ゲームにこのゲームパッドを認識させることだった。残念ながら、TeensyはXinputに対応していない。ゲームはXboxのゲームパッドにしか対応しないのだ。だが幸い、私は、x360ceという素晴らしいオープンソースのプログラムを発見した。これはゲームパッドの信号を受けて、Xinputに変換してくれるものだ。これで問題解決!
今後は、スタートボタンを本物のプランジャーに変更したいと考えている。部品は揃ってる。あとは、シャフトの動きをどうやってアナログ信号に変換するかだ。手元にあるのは、曲げセンサー、赤外線距離センサー、超音波センサーだ。それが完成したら、友人の木工職人に頼んで、フォームコアよりもしっかりとした美しい台を作ってもらうつもりだ。配線図やコードを知りたいという方もいるだろう。すべて完成したら公開する方法を考えたい。
[原文]