ゲームパッド勢がFF11用キーボードをつくってみる

キーボードは好きですか?
ここ数年、自作キーボードという世界が盛り上がっているようです。
キーボードはいくつか試しましたが、結局HHKBを10年ぐらい愛用しています。
自作キーボードではないですが、昨年vortex coreという40%キーボードを買って使っていくうちにキーボード熱が高まってきたので、電子工作初心者ですが自作キーボードに入門してみました。

とはいえ、FF11関連の記事が多いブログなのでFF11用のキーボードをつくってみることにします。
(ただ現在は課金していないので完全エアプです🙇‍♀️私の環境ではオデシー シェオル ジェールのラグがひどくて遊べないのでお休み中です💦)

自作キーボードは現在多くの組み立てキットが販売されていますが、自作キーボードキットは使用せずに基板から作成します。
自作キーボード作成のバイブル的?な以下の書籍を読んで挑みました。

  • 自作キーボード設計入門
  • 自作キーボード設計入門2


基板から作成するといってもインターネット上にも様々なノウハウが蓄えられているので、「巨人の肩の上に立つ」ことで想像してたより簡単にキーボードの形になりました。

キー配列

まず作りたいキーボードの配列を考えます。
せっかく自作するなら既製品(完成品)にはない尖ったキーボードが良さそうです。
基板の製造サービスでは100mmx100mmが10枚で$5(別途送料)と安いのでそのサイズに収まるようにします。(初めてで失敗するかもしれないのでできるだけ安く。。)
Gherkinという格子配列30キーのキーボードがあり、その左右分割タイプにfoobarというキーボードがあります。


親指でもキーを押したいので、foobarにさらに1行加えた配列(38キー)で作成したいと思います。
f:id:yyoshisaur:20210303133625p:plain

分割格子配列で30キー台のキーボードではMiniAxe – kagizarayaが個人的に理想であり完成形だと思います。
(MPUやUSBコネクタ等すべて表面実装部品で狭ピッチなので組み立ての難易度が高そうです)

基板設計

基板の設計は「自作キーボード設計入門」にならってKiCadで行いました。
実績のある部品のフットプリントのライブラリが公開されているので、部品をならべて配線します。
(配線は大変そうだったので、自動配線しました。)
f:id:yyoshisaur:20210302123249j:plain

組み立て

基板を発注して1週間程度で届きました。(はやい!!レジストの色は赤にしてみました。)
国内にも自作キーボードのお店があり、マイコンやキースイッチなど必要な部品は揃いました。
キットも販売しているので、興味のある方は見てみてください。


部品をはんだ付けして、マイコンにqmkファームウェアを書き込んで完成です。
基板を上下アクリルプレートで挟んだサンドイッチ構造にしました。(別途アクリルプレートも発注しました)

f:id:yyoshisaur:20210302134210j:plainf:id:yyoshisaur:20210302134532j:plainf:id:yyoshisaur:20210302133230j:plain
f:id:yyoshisaur:20210302133249j:plain

qmkファームウェアはオリジナルのキーボードでも雛形を作成するスクリプト(util/new_keyboard.sh)が用意されていて、設計した回路図を元に使用するGPIOのピン番号を設定するだけで動作するので楽でした。

FF11用キーマップ

自作キーボードの多くで使用されているqmkファームウェアはキー配置を自由に設定できるので自分で使いやすいキー配置をつくることができます。また、キーマップにはレイヤーの機能があり、1つのキーにいくつもキーを割り当てることができるので、物理的には38キーという少ないキー数でも問題ありません。

私はPS2時代にゲームパッドでの操作に慣れてしまってずっとゲームパッドで操作しています。
キーボードだとカーソル移動をせずにマクロにアクセスでき便利そうなので何度か挑戦してみたのですが、キー配置に慣れずゲームパッドに戻っていました。

エアプですが、FF11用のレイヤーのキー配置を考えてみました。(こんな感じだと使いやすいかな~程度です😋)
f:id:yyoshisaur:20210303142611j:plain
FF11用の基本レイヤーです。左手側にキャラクターやカメラ操作のキーを配置し、右手にファンクションキーなどを配置してみました。qwertyと書かれたキーはチャットやWindowerのコマンド入力用にQWERTY配列のレイヤーに変更するためのものです。ゲーム用レイヤーと通常のQWERTY配列のレイヤーを切り替えながら使うことができるようにしています。
f:id:yyoshisaur:20210303142621j:plain
f:id:yyoshisaur:20210303142629j:plain
マクロ用のレイヤーです。基本レイヤーのマクロCtrl(Alt)キーを押している間はこのレイヤーになります。基本のレイヤーでファンクションキーだったキーがマクロのキーになります。右手だけですべてのマクロにアクセスできるようになります。
また左手側ではパレットの移動を割り当てました。マクロCtrl(Alt)キーを押している間はCtrl(Alt)キーが押されている状態しているので、パレットが表示されるようにしています。
f:id:yyoshisaur:20210303142641j:plain
layer1のレイヤーでは基本レイヤーで入りきらなかったキーを配置しています。layer1のキーを押している間はこのレイヤーになります。右手側にはマクロパレットをパレット番号で切り替えるキーを割り当てています。
qmkファームウェアではジョイスティックとしても認識させることもできるので、JS_BUTTON30, 31はジョイスティックのボタンとしてffxiswitchmonを割り当てることができます。キーボードではAlt+Tabでウィンドウを切り替えられますが、テキストエディタやブラウザを起動していてもFF11のウィンドウだけを高速で切り替えることができるので便利かなと思いました。

まとめ

初めて自作キーボードをつくってみました。しばらくメインのキーボードとして使用してみましたが、38キーでも特に不自由なく使用でき、左右分割が快適でした。(慣れかと思いますが、一体型のキーボードに戻るとその窮屈さにびっくりしました。)
自分で組み立てると想像以上に愛着が湧くので、既製品のキーボードに満足していない方は自作キーボードをやってみるとよいのではないでしょうか。
ゲーム用のキーマップに関しては自作キーボード(qmkファームウェア)だと自分の思い通りにキーを配置できるよ!って程度に見てください。
次回キーボードをつくるときはホットスワップソケットやOLEDディスプレイ、ロータリーエンコーダなども試してみたいです。
今回はADCとして使用できるピンをすべてキーマトリクスに使ってしまったため、ジョイスティックをつけることができませんでしたが、これも次回試してみたいです。