レバーレスコントローラー(hit box あるいはガフロコンって呼ばれるもの)を作った。格ゲーにおける優位性をちょっと測定した。

ふと、手元にあった、ピンの少ない Sparkfun Pro Micro 互換機で、ゲーム用のコントローラーを作ってみたらそれなりに作れたので、通常通りにピンが付いている Sparkfun Pro Micro を買ったり、ドリルを買ったりホールソーを買ったり、ボタンを買ったりしてレバーレスコントローラー自作してみました。


本 blog エントリではこの自作したレバーレスコントローラを自作レバーレスコントローラーと呼びます。また、製品として売られているレバーレスコントローラである Hit Box を hit box と呼びます。

普通、レバーレスコントローラーを作る場合には、あり物のコントローラーの基板を乗っ取ったり、あるいは Brook の UNIVERSAL FIGHTING BOARD を基板として使うのが定番のようです。Brook の UNIVERSAL FIGHTING BOARDは12000円くらいします。でも今回は、既存のコントローラーの基板やBrook の UNIVERSAL FIGHTING BOARD の代わりに Sparkfun Pro Micro とこれの上で動く自作のプログラムで代用したので、2000円くらいで済ますことができました。もしも Pro Micro 安い互換機を使えば更に安くすることができますね。

ちなみに、今回作った自作レバーレスコントローラーで使ったSparkfun Pro Micro は2000円くらいで、それ以外のボタンやケースやら配線のためのもろもろが6000円で、合計8000円くらいでした。ちなみに、 PC と Nintendo Switch で使えることは確認済みでです。一方 PS4 では使えないことを確認しています。でも、PS4でそんなにゲーム遊ばないから、今回はこれで良いということにしています。

レバーレスコントローラーと SOCD (Simultaneous Opposite Cardinal Direction/反対方向同時入力)

今回、わざわざ Pro Micro を使ったのは、安く仕上げるためであると同時に、コントローラーの挙動を細かく変更するためでもあります。

レバーレスコントローラーの作成にあたっては、SOCD(Simultaneous Opposite Cardinal Direction/反対方向同時入力)に対する考慮が必要となります。
SOCDとは、通常、レバーや十字キーでは入力できない、左右の同時押しあるいは上下の同時押しをどのように扱うかについてのアルゴリズムのことです。

格闘ゲームにおける SOCD

hit box では、左右同時押しは横方向はニュートラルとして扱い、上下の同時押しは上入力として扱われます。格闘ゲーム向けのにおいては、この hit box の SOCD の扱いが、デファクトスタンダードとなっているようです。
Brook の UNIVERSAL FIGHTING BOARDは、ジャンパピンを用いた設定により、hit box と同等とすることが可能です。

レバーレスコントローラーの格闘ゲームプレイ上の利点の定量化

格闘ゲームにおいて、レバーレスコントローラーによる操作は、一部レバーを用いた従来のコントローラーよりも高速に可能であるとして、多くのプレイヤーが現在利用していることがインターネットを検索することによって確認できます。
しかしながら具体的にはどの程度有利であるかについては、レバーレスコントローラと従来のレバーによるコントローラそれぞれの操作の習熟度に伴い個々人で異なること、またその簡易な計測方法が存在しないことといった理由で、計測が行われてこなかったのではないかと考えました。

そこで今回、キーディスプレイおよび各入力の継続フレームの表示のみを行うプログラムを unity を用いて作成し、これを用いて測定を行える環境を作りました。

まだ十分な回数をこなせておらず、統計として不十分なので、いくつかの測定結果及び感想を書いておきます。
なお、自作レバーレスコントローラーの SOCD は、hit box に準拠した設定としています。また、比較対象に使っている通常のレバーありコントローラーには、 RAP V4 隼を用いました。

計測対象 自作レバーレスコントローラー レバーありコントローラー
←ため→ のニュートラル経過フレーム数 0フレームあるいは1フレーム 1から3フレーム。8割くらい2フレーム。
標準的な昇龍拳入力開始から完成まで(634入力) 7フレームくらい 7フレームくらい
昇龍拳のhit box 向け入力開始から完成まで(649入力) 大体6フレームくらいだけど4フレームで完成したときもあった やってない

回数をこなした統計は、また追々測って行こうと思います。

あと、すでにレバーレスコントローラーの操作になれた人のフレーム情報も見てみたいので、汎用的な作りにして配ったりしたい。
今は、とりあえず図り始められる環境を作ることを優先して、PC環境依存でベタ書きになっていて人に配れたものではないので。

格闘ゲーム以外における SOCD

現在、製品として入手可能な hit box を始めとするレバーレスコントローラーは格闘ゲーム用に使うことを想定している事が多いですが、もちろん他のゲームに使うことも出来ます。
ただし、他の種類のゲームに用いるときには、 SOCD の扱いは格闘ゲームとは別の考え方をするべきなのではないかと考えています。
通常 SOCD は、左右の同時押しあるいは上下の同時押しを考慮しますが、斜めの入力を行う必要がなく上下左右の4方向の入力のみを想定するテトリスなどのパズルゲームでは、格闘ゲームでの利用を想定した SOCD とは異なるアルゴリズムがより適しているのではないかと考えていました。例えば、上下左右の4方向をすべて排他し、最後に押されたものを優先するのが良いのではないかと考えました。
このような SOCD についての挙動の変更は、既存のコントローラの基板や Brook の UNIVERSAL FIGHTING BOARD では実現不可能であるため、これを自由にコントロールするために、Pro Microで自作する必要がありました。

格闘ゲーム以外においてはどうするのが良いのかについても追々考えていきたいですね。

GR-SAKURA買った。

久々に電子工作系の話題。

GR-SAKURA というマイコンボードを買いました。

ピンの位置はこの手のマイコンボードではおそらく最大手のArduinoと互換。
コードもリコンパイルすれば動くように、ライブラリのレイヤでArduinoに合わせてあるみたいです。
で、Arduino と比べてメモリが大きかったり、プロセッサが早かったり、microsdが刺さったり、ethernetが喋れたり、と、いろいろ装備して5000円弱というお求めやすい価格!

ethernetが喋れるArduinoは6000円くらいしますしね。

さて。これで、ネットワーク経由でいろいろできるようになった!なにして遊ぼうかなぁ。

このマイコン、テキストエディタとコンパイラがウェブサービスで提供されているので好きなエディタ(たとえばemacs)とかを使えないと言うのが目下辛いところかなーって気がしてます。
コンパイラがウェブサービスになってるっていうのは、すごくありがたいと思うんですけどね。
そんなわけで、当面はコマンドラインからファイルアップロード/ダウンロードしたり、コンパイルさせたりするためのCLIを作って、 make でコンパイル結果が手元に残る状態にするのが目標かなー。って感じで。
いまどきgit的なバージョン管理ができないというのも辛いですし、やっぱりエディタは体の一部。そう簡単に取り替えられたりはしないのですよ。

調べてみたところ、シンプルなWEB APIがそろってるのでさくっと作れそう。

 

創造空間ナノラボに行ってきました。

最近、arduinoを用いた電子工作にお熱で、この手の部品は通販で買うか、秋葉原で買うかくらいしか選択肢がないのですが、通販で買うと部品が足りなかったときに長い待ち時間が発生してしまって残念なので、出来れば秋葉原で部品を買い揃えながら作業できるスペースがあるといいのになぁと思っていました。

そういう電子工作向けのレンタルスペースとして

という2店舗があるようなのですが、今回は場所がよいという理由であまり深く悩まず創造空間ナノラボで作業をしてみました。

やったことは、コンデンサマイクのテストでした。
よくわからないので、コンデンサマイクだけ適当に買ってお店へ行ったのですが、
まったく同じ部品を隣の席に座っていた人が使っていて、上手く使うためにはアンプやコンデンサ等の部品で音量を稼がないと難しいよーと教えてくれて
ついでに、お店の奥のほうから必要な部品が出てきたりして
半田ごて自由に使えるし
ドリルも自由に使えるみたいだし
電源も無線LANも自由に使えるし
しかも2時間500円で
ジュース飲み放題だし

秋葉原のオアシスといっても過言ではないと思いました!

また作業スペースが欲しいときにはお世話になろうと思います。

ちなみに、コンデンサマイクで拾った音量にあわせて、きゅうべえ人形の目が光る予定です。