こんにちは遊舎工房代表のないんです。
本日、PC Watchさんから下記の記事が公開されましたね!
少し前に編集部さんよりキーボードでストVの大会に出るための相談を受けまして、お役に立てるならばとキーボードファームウェアの改変と製作の協力をさせて頂きました。
内容に関しては記事を読んでいただければと思いますが、どのようなファームウェアの改変を行ったかという点をお話しさせて頂ければと思います。
ファームウェアの改変とは
QMK Firmwareというオープンソースのキーボードファームウェアがありまして、自作キーボードはこちらをよく利用されています。うちで扱っている商品はほぼこれで動いています。
カワノ氏が選んだ『DZ60 REV 3.0 type-c』もQMK Firmwareを使用しています。
今回はこちらのコードにひと手間加え希望の動作が出来るようにしてみました。
(通常はこういったファームウェア改編の話は受けておりませんが、面白そうなお話でしたので特別に対応させて頂きました)
同時押しでキャンセルするコード
今回はキーマップファイルに下記のコードを追加しました。
static bool A_pressed = false; static bool D_pressed = false; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_A: if (record->event.pressed) { A_pressed = true; if(D_pressed){ unregister_code(KC_D); return false; } }else{ A_pressed = false; if(D_pressed){ register_code(KC_D); } } break; case KC_D: if (record->event.pressed) { D_pressed = true; if(A_pressed){ unregister_code(KC_A); return false; } }else{ D_pressed = false; if(A_pressed){ register_code(KC_A); } } break; } return true; }
キャラクターの移動をWASDで行いますので、左右はAとDキーです。こちらを同時押しした時に両方の入力をキャンセルする動作を記述します。
まず、それぞれのキーが押下されたときに、押下中であることを保持するためのスタティック変数をtrueにしてます。 そして対向のキーが押下中であれば両方の入力をキャンセル、離したときに対向のキーが押されていたら対向キーの入力を有効にしています。
このような簡単なコードを追加するだけでカスタマイズ出来るのが自作キーボードの面白いところです。
今回作成したキーマップはこちらになります。
レイアウトはこちら
今回のセット
最後に今回カワノ氏が購入したセットの紹介です。
DZ60 REV 3.0 type-c
USB Type-C の60%基板です。
60% プラスチックケース
DZ60のUnderglow LEDを楽しみたいならこれ。
DZ60 CNCプレート (アルミ)
こちらのType-Bです。
MXスイッチ スタビライザー
こちらの 2Ux4 6.25Ux1 を1セット
Kailh Speed スイッチ(10個)
こちらのSilver軸を63個分
フローティングタイプ104 キートップセット英語版
こちらのホワイト
最後に
記事を読むとどうやら今回のファームウェア改変は必要なかったようですが、こういった世界があるというのを知ることが出来て面白かったです!
プロゲーマーも来る自作キーボードのお店 遊舎工房はこちらから https://yushakobo.jp/