DJMAX用コントローラーをuniversal fighting boardで自作した知見

明けましておめでとうございます.

新年早々Fabをかましたのにログを残してなかったので後追いpostです.

What is this?

DJMAXという音ゲー用コントローラーです.

 

昨年末につよPCを買ったので,steam winterセールでようやくDJMAX RESPECT Vを買いました.となると当然コントローラーが必要になるわけですね.以前格ゲーのアケコンを自作した経験もあるのでいっちょやったるかとなった次第ですね.

デメリット(というか後からわかった)な部分もあるので参考にされる方は一通り読んで考えてから着手してもらえればと思います.

store.steampowered.com

制作にあたっての作戦

まずは先人の知恵を借りましょう.ということでこちらのnoteを主に参考にさせていただきました(途中で止まっているけど).感謝.

note.com

ここから読み取ったこととしては

  • プレイに必要なボタンは12個くらいあれば足りそう
  • 箱の候補としてアタッシュケースが便利そう

ということです.

今回ちょっとchallengingなことをしてみようと思い,使用基盤を universal fighting board にしてみたところがざっと調べた既存記事と差分になります.なのでここのメリットデメリットも追って書いていきます.

https://www.brookaccessory.com/detail/06960737/

 

まずこの基盤は何ぞ?というところからですが,近年の格ゲーではレバーレスアケコンというものが話題となっております.HitBoxと呼ばれたりします.これを自作するための基盤がこちらです.

アケコン自作界隈(ゲーム種別問わず)ではよくコントローラー乗っ取り型とArduinoなどのマイコンを利用するタイプが多く見られますが,今回はどちらかというと後者かつある程度基盤構成やプログラムが既に仕込まれている=自分でアレコレしなくてよい,リッチな構成だと思ってもらうとわかりやすいと思います.実際にボタンから2本のケーブルを基盤に繋ぐだけで入力回路を構成できます.1からマイコンを使う場合は抵抗をかましたりと結構配線がダルくなりやすいので,その辺をふっとばせるわけですね.

この基盤のポイントを整理(新しい情報も増えてますが)すると

  • 使いたいボタンを繋ぐだけで配線が完了する
    • 1からマイコンを利用すると回路を自分で組んだりする必要あり
    • コントローラ乗っ取りだと半田をしたりする必要あり
  • 値段はまぁする.10k程度
    • バージョンによっては安かったりする
  • 十字キーとアナログスティックが同時に使えない(後で出ます)
  • SOCDクリーナーが既に仕込まれている(解除できない?これも後で出ます)

と言った感じです.beatmaniaだと皿を作らないといけないですが,DJMAXだといらないので実質HitBoxじゃん!と気づきを得たのがこの基盤を使う最初の気づきだったのですが,作成時のメリットも結構大きいなと感じました.

 

素材調達

電子部品系は仙石電商さんで揃います.実家のような安心感

www.sengoku.co.jp

  • universal fighting board
  • ボタン
  • ボタンの端子サイズにあったギボシつきケーブル
    • 自分でギボシつけられる・細いケーブルを使いたいとかなければ,ついているのを買ってしまう方が当然楽

 

基盤とPCを繋ぐためのケーブルも当然必要です.今回の基盤はType-B(一昔まえのプリンタでよく見るやつ)

  • USBケーブル Type-B

最後まで悩んだのが筐体となる箱.

参考にしたnoteのようにアタッシェケースを考えましたが,自宅にはドリル・ヤスリがない,できなくもないけどfabスペースでレーザカッターを借りる=図面を書き起こす のは今回はダルいのでpassということで,↑に貼ったように段ボールにしました.

  • Pros.
    • 加工・微調整が楽
    • 廃棄が楽
  • Cons.
    • やや強度に不安
    • 手汗が滲みる・衛生面

といった観点がありますが,まぁ作り替えたくなったらしましょうのスタンスで採用されました.また選んだ箱は上にカパっとフラップが開くタイプなので,配線もすぐにできることも良いポイントでした.

部品ポチったのが昨年12/30で実家でカゴメ株主優待箱を掘り当てたのが1/2なのでなかなかやってるスケジュールでした.

 

作ってみよう

作成中ちゃんとログ写真を撮っていなかったのが悔やまれますね... 文章で思い出しながら書きます

1.箱にボタンを取り付ける

段ボールなのでまぁ適当にやってもなんとかなるやろの精神で適当に下書き&指を置いてポジション確認をしました.

縦横を2分割する線をまず引いて,そこからボタンの中心点を決定.φ30なので半径15mmの円を書く(雑すぎてボタンを止めるリングで書いてましたね... 一応中心を通る線を引いて直径合わせはしましたが)と言った感じです.左右対称になるように下書き&穴あけ&ボタンハメをしていきました.

2.ケーブルを中に入れる

PCと繋ぐためのケーブル穴を側面に開け,中に通したケーブルを玉留めとして軽く結んでいます.この手の自作は引っ張りすぎて破壊とかよくあるので安全措置です.本来はホットボンドで止めたりするのがいいんですけどね.

3.基盤とボタンを繋ぐ

基盤の公式ページのリファレンスを見ながら配置していきます.青いソケットにネジ止めしていく際はGNDの数が足りなくなるので,いくつかのボタンのGNDをまとめて行くと良いです(基盤の公式ケーブルもそんな感じになってます.余裕があればピンヘッダの方につなぐのもありかも).

ちなみにDJMAX側のデフォルトはこうなってます

f:id:shisoAqron:20220113124631j:plain

2022/3/18追記: joyToKeyとの組み合わせがうまくいかなくなったようです(ラグというか,プレイ中のコントローラとキーボードの切り替えがうまくいかない).別に説明するSteamゲーム毎のボタンアサインで直接キーボードを割り振ってしまうほうがよさそうです.

以下の手順はすべてはいったんアーカイブにしておきます.

コンフィグマップに沿って配線していきましょう.あとからコンフィグを変えることができますが,モード毎に割り当てを直すのはダルいので基本的にデフォルト推奨です.

ここでポイントというかこの基盤のデメリットとして,アナログスティックが使えない(厳密にいうとエミュレートはできるが,十字と同時に使えない)問題があります.加えてゲーム自体の制約で L/R SIDE TRACK がスティック固定 =  L/R SIDE TRACKが操作できないのですが,一旦LT/RTで操作するものとして配線しておきます(SPEED UP/DOWNは割り当て解除する.このへんも後で追加補足あり)

(1/21追記)SC難易度だと普通に左右押し(TRACK1と3同時)が降ってきて,例のSOCDクリーナーが裏目に出ました.なので最終的なコンフィグはこんな感じに.FEVERを押した際にSOCD発動しそうだけど運用でカバーできるかどうか.

  • 先述のとおり,SIDE TRACK用にLT/RTは解除
  • TRACK3の→をAに割り当て(そうするとFEVERのAが→と入れ替わる)

f:id:shisoAqron:20220121135118j:plain

 

4.PCとつないで動作確認&JoyToKeyの導入

繋ぎ終わったら動作確認です.適当なゲームで操作してみたりして確認します.

先述のアナログステック使えない問題を超えるためにJoyToKeyを利用することになるのでこれでも確認ができます.

joytokey.net

JoyTokey側の設定はこんな感じ.

f:id:shisoAqron:20220113125952p:plain

コントローラーを使っていてもキーボードは使えるので,Shift, R-ShiftをそれぞれLT/RTでエミュることで乗り越えます.

これで全ノーツ押せる状態になります.

5.ゲーム側で部分的にコンフィグ設定を変える

先ほど貼ったスクショのようにデフォルトだとLT/RTはSPEED UP/DOWNに振られているので解除していきます.全てのボタンモードでやっておきましょう.

ここまで来れば普通に遊べるようになります.

ちなみにキーボードも併用して操作できるので,割り当てしてない操作はそちらでやっていくことになります.あとコントローラだと決定ボタンなどが迷子になるので選曲とかはキーボードでやってプレイはコントローラみたいな持ち替えが楽.

2022/3/18追記: 直接キーボードassignする方法

先日のアップデートの影響かはわからないですが,JoyToyKeyでshiftだけをエミュレートする方法がうまくいかなくなってしまいました(僕の環境のみ?コミュニティに質問中).なので直接ボタンをキーボードにアサインする方法で乗り切っています.

Steamのコレクション画面およびDJMAXの設定からコントローラ設定を選択

f:id:shisoAqron:20220318213454p:plain

universal fighting board接続時に特に操作していなければXboxコンとして読まれているはずなのでassignを変えてしまいます.この時例のSOCDクリーナーを考慮した配線をしているので,僕は次のようなassignになりました.

f:id:shisoAqron:20220318213500p:plain

2022/11/16追記: トリガーの入力受付が変わった?

以前はこのままでよかったのですがこの日のupdateから再びサイドノートが取れなくなったので設定を追加で実施しました.

具体的にはトリガーの入力を「左(右)トリガー」から「アナログオフ」に変えてやる感じです.使っている基盤的には0/1入力のはずなのですが,このassign機能がアナログとして処理している可能性&それをDJMAXがよしなに対応していてくれていた可能性でいまではなんとかなってしまっていたように見えます.ひとまずこの設定で今日現在はプレイできています.

 

まとめ

よかったところ

  • 基盤のおかげで配線がめちゃ楽だったこと
  • 箱加工が段ボールだったのでめちゃ楽だったこと
  • 低遅延を謳っているが,確かにラグは感じないこと
  • 比較的安価に作れたこと
    • 基盤:10k, ボタンなど:3kちょい, usbケーブル: 500円

イマイチだったところ・このあと問題になりそうなところ

  • アナログ操作必須だけど基盤が対応してないのでJoyToKeyでなんとかする必要があること
    • 2022/3/18追記: そもそもゲームとのかみ合わせがダメっぽくなってしまった.ただ,Steamの設定およびキーボードアサインでなんとかなるので助かった.
  • 基盤的に格ゲー向けなのでSOCDクリーナーが働いてしまうこと=例えば←+→同時押しの場合,ニュートラルにされたり後に押した方が働くみたいな挙動を基盤側で実施している ので同時押しが化けるのでは?と不安になっている
    • キーコンフィグいじればまぁこれはなんとかなりそう
    • そもそも通常コンで逆方向はそもそも押せない作りだし,この辺の入力を許容していないゲームも結構あるので深く考えなくて良い気もする.
    • ちなみに寺はそうならないキー配置だったはず
  • 箱のリニューアル

格ゲー用基盤を想定外の使い方をしているということもあり,裏目ったところをどう捉えるかかなという感じです.もっと探せば向いているコントローラ基盤がある気もしますが,候補としてHitBox用のものを使うのも悪くなさそうだなという知見になれば幸いです.

 

L/R SIDE TRACKができてないことを当時は把握できてなかったのですが手元付き動画でこんな感じです(後半のSekiroは気にしない).

www.twitch.tv

 

おまけ:もともと寺コンも作りかけで放置していたのですが,このコントローラを作ったこと&いい感じの箱が手に入ったので今週末くらいに仕上げたいなぁとおもってたりします.