Battlefield 1のコンソール対策

最近にBattlefield 1で遊んじゃってます。
友達宅ではBattlefield 2やBattlefield 4を遊んだことはあるけれど、自分で買って遊んだのはこのBattlefield 1が初めて。

で、Battlefieldシリーズは日本語キーボード環境だとコンソールの誤爆問題があるそうです。
Battlefield 1 - コンソール画面
(赤枠がコンソール)

誤爆問題ってなんだろうって事なんだけれど、
英語キーボードだとチルダ(˜)キーでコンソールの表示/非表示ができるのですが、日本語キーボードの場合は半角/全角キーが該当します。
コンソールが表示されるとDirectInputからIMEに入力が移行し、半角/全角を押してもコンソールを閉じることができなくなります。

対策としてはBattlefield起動時前に英語キーボードの設定にするのが一般的なようです。
が、私はATOKを使用しており、MSIMEをアンインストールしているので再インストールが面倒なのと、ATOKで英語キーボードにすると一部のソフトで正常に変換が行えなくなる症状がでるので論外です。

なら、なにで対策するのか?というと、ソフトウエアベースのキーリマップツールを使います。
今回使うのはAutoHotkey L
(ちなみに、多くのオンラインゲームに搭載されているnProtectやHackShieldなどのチート対策ソフトはAutoHotkeyをチートツールと認識するので、オンラインゲームをプレイするときは終了しておかないとゲームが起動しません。)

AutoHotkeyはキーへマクロや別の機能を割り当てを行う常駐型のソフトで、割り当てを行う設定はAHKスクリプトで書いて動作するツールなんです。
使うのはマクロではなく、キーのリマップ機能。

コンソール対策のスクリプト自体は簡単で、「半角/全角」キーが押されたら「1」キーが押された事にするだけ。
SHKスクリプトはこんな感じ。

vkF3sc029::1
vkF4sc029::1

上記コードをメモ帳から適当な名前の.ahkファイルとして保存する。

AutoHotkeyの起動方法はx64環境ならAutoHotkeyU64.exe、x32環境ならAutoHotkeyU32.exeへ保存したahkファイルをD&Dするだけ。
ショートカットやプロンプトから起動する場合は「AutoHotkeyU64.exe 保存したスクリプト.ahk」とすれば問題なし。
終了するときはタスクバーのアイコンから終了するだけ。

これで戦闘中に強制固定砲台になるコンソール誤爆対策ができました。
昔から言われてるんだから、開発側はさっさと対策すればいいのになあ