Fallout 4のキー設定
バニラで用意されているキー設定のことです。以降の解説ではFO4キーと呼びます。
設定方法はゲーム内でシステムメニューを開き、キー設定から行えます。
キー設定画面では単独のボタンをアサインすることしかできませんが、Skyrimにおいてはcontrolmap.txtを直接編集することで複雑なアサインを実現できました。
Fallout 4ではcontrolmap.txtが廃止されたようです。そのかわり、F4SEが機能を提供してくれます。
DATA\F4SE\CustomControlMap.txt
Skyrimにはcontrolmap.txtの編集を簡単にしてくれるSkyrim Pad Configというツールがあります。これでFallout 4のCustomControlMap.txtを編集すると設定が壊れます。!Activateと書いてある行が処理できないみたいでおかしくなります。ですのでCustomControlMap.txtはテキストエディタで直接編集するしかないようです。
同時押しはサポートしていないようです。記述しても動きませんでした。
このファイルを変更したら、タイトル画面でキー設定をデフォルトに戻すことで反映できます。
MCMで設定するホットキー
MCMの中で設定するキーのことです。以降の解説ではMCMホットキーと呼びます。
MCMのホットキーの設定は以下のファイルに保存されています。
DATA\MCM\Settings\Keybinds.json
キーコードはCK Wikiにあります。
ゲーム内のMCMではコントローラーのボタンがなぜか設定できませんが、このファイルを直接編集することで設定できます。ですが、ボタンを設定しても動作が不安定のようなので、オススメしません。
JoyToKey
JoyToKeyはFree Colorsが配布しているツールです。コントローラーにキーボードを割り当てられるようになります。コントローラーがキーボードのかわりになるということです。
Fallout 4やSkyrimのModコミュニティで「このModはコントローラーに対応していない」という発言をよく目にしますが、JoyToKeyを使うことでほぼすべて解決できます。
JoyToKeyには同時押しの設定もあるため、うまく使いこなすことで多くのキーをコントローラーに割り当てられます。
オススメの使い方
オススメはFO4キーでLTとLB、RTとRBを入れ替えてSkyrim風にしておき、LTとRTを同時押しに使う、という方法です。
LTとRTはアナログ入力なのでModがうまく認識できず、特にLTで狙いをつける操作をしているとModに認識されないことがあります。LBに入れ替えることでこの問題を回避できます。
設定のコツ
キーボードとコントローラーの両立
CustomControlMap.txtの最後列は0x8や0x108になっていますが、これを0もしくは空欄にすればコントローラーがありでもキーボードが反応するようになります。
そこからさらにJoyToKeyを使ってコントローラーにキーボードを割り当てることで、実質的にコントローラーだけで操作可能にする、というのがコントローラープレイの基本です。
状況に応じてキーの役割がかわる
コンテナにクロスヘアを合わせているクイックルート状態ではFO4キーの役割が変化します。例えば↓にスニークを割り当ててしまうと、スニークのオン・オフが出来たり出来なかったりしてしまいますので、LTやL3など違うキーに割り当てた方がいいです。
MCMホットキーにボタンはオススメしない
MCMホットキーにコントローラーのLT、RTを直接設定しても動作が不安定のようです。連打しても発動したりしなかったりします。MCMホットキーにはキーボードのキーを設定しておき、JoyToKeyでLT、RTにキーボードのキーを割り当てて、間接的に使うようにするといいみたいです。
スプリントに設定してあるFO4キーとMCMホットキーに同じキーを割り当てると、スプリント中はMCMホットキーが効かないみたいです。
使わないFO4キーをあけて節約する
CustomControlMap.txtでキーを0xffにすると無効にできます。使わないキーは無効にしてModホットキーに回したほうがいいです。
ガイドボタン
ガイドボタンを押している間はスティックが効かなくなるようです。
Shareボタン
このShareボタンは特別なようで、他のボタンのようにはいかないようです。JoyToKeyでも入力を検知できません。
ゲーム内の操作に使いたい場合、以下の方法で実現できました。
まず、Steamクライアントをベータ版にします。(本当に必要かどうかはわかりません)
Steamの一般コントローラー設定でXbox拡張機能のサポートを有効にします。(本当に必要かどうかはわかりません)
Steamのライブラリ、Fallout 4、コントローラ設定で、Shareボタンに機能を割り当てます。
マウスカーソルをオレンジ色で囲ってある場所に持っていかないと設定できないので非常にわかりにくいです。
色々と割り当てられるようですが、キーボードを割り当てても動作しませんでした。仕方がないのでL3ボタンを割り当てて、ShareボタンがL3ボタンのかわりになるようにしました。
L3ボタンの割り当ては削除しておきます。これで、L3ボタンとShareボタンが完全に入れ替わります。
ややこしいですが、JoyToKeyの認識には影響しません。ですのでL3ボタンに任意のキーを割り当てることができます。Shareボタンはあいかわらず入力を検知できません。
このSteamのコントローラ設定で割り当てを変更した場合、ゲーム内のHUDの表示には反映されませんので注意が必要です。
ShareボタンをPipboyにしてYボタンを他のことに使う
FO4キーの設定で、PipboyをYからL3に変更します。他ではL3は使わないようにします。
JoyToKeyの設定では、L3ボタンとYボタンに任意の機能を割り当てます。ただし、何らかのメニューを開いている場面ではYボタンの機能が変化しますので、それを考慮して割り当てます。
これで、以下のようになります。
- Shareボタンを押すとPibboyが開きます。
- L3ボタンはJoyToKeyで割り当てた機能がいつでも使えます。
- YボタンにはJoyToKeyで割り当てた機能がメニューを開いていない場面に限り使えます。
同時押し
Skyrimではゲーム側で同時押しが実現できていました。Fallout 4ではできないようなので、JoyToKeyを使って実現します。
例として、以下のケースを考えてみます。
- コントローラーの十字ボタンを押したらお気に入りの1~4
- コントローラーのLTボタンを押しながら十字ボタンを押したらお気に入りの5~8
FO4キーで以下のように設定します。
- コントローラーの十字ボタンは一切使わないようにします。
- お気に入りの1~8にキーボードの1~8キーを割り当てて、最後列を0にします。
- コントローラーのLTボタンには任意の機能を割り当てられます。スプリントあたりがオススメです。
これで、コントローラーの十字ボタンは一切機能しなくなります。キーボードの1~8キーを押すとお気に入りが発動します。立ち止まってLTボタンを押しても何もおこりません。(スプリントは前進中でなければ発動しないので)
JoyToKeyで以下のように設定します。
- Joystick #1の十字ボタンにキーボードの1~4キーを設定します。
- LTボタンにJoystick #2の設定を使用を設定します。
- Joystick #2の十字ボタンにキーボードの5~8キーを設定します。
これで、コントローラーの十字ボタンがお気に入り1~4に、LTボタン+十字ボタンでお気に入り5~8になります。
立ち止まってLTボタン+十字ボタンを押すと、内部的にはスプリントとお気に入りの同時入力となっているのですが、スプリントは発動しないので、結果的にお気に入りだけを発動できるわけです。
CustomControlMap.txtで設定するキーコード
コントローラー
CustomControlMap.txtの53行目あたりに書いてあります。
ボタン | 設定値 |
---|---|
左スティック | 0x000b |
右スティック | 0x000c |
LB | 0x0100 |
RB | 0x0200 |
LT | 0x0009 |
RT | 0x000a |
A | 0x1000 |
B | 0x2000 |
X | 0x4000 |
Y | 0x8000 |
上 | 0x0001 |
下 | 0x0002 |
左 | 0x0004 |
右 | 0x0008 |
スタート | 0x0010 |
セレクト | 0x0020 |
L3 | 0x0040 |
R3 | 0x0080 |
キーボード
キー | 設定値 |
---|---|
A | 0x41 |
B | 0x42 |
C | 0x43 |
D | 0x44 |
E | 0x45 |
F | 0x46 |
G | 0x47 |
H | 0x48 |
I | 0x49 |
J | 0x4a |
K | 0x4b |
L | 0x4c |
M | 0x4d |
N | 0x4e |
O | 0x4f |
P | 0x50 |
Q | 0x51 |
R | 0x52 |
S | 0x53 |
T | 0x54 |
U | 0x55 |
V | 0x56 |
W | 0x57 |
X | 0x58 |
Y | 0x59 |
Z | 0x5a |
キー | 設定値 |
---|---|
1 | 0x31 |
9 | 0x39 |
0 | 0x30 |
– | 0xbd |
^ | 0xbb |
Keycode 定数を参考にしました。
RegisterForKeyで設定するキーコード
F4SEによって拡張された、Papyrusで使えるホットキーの機能です。
Skyrimに近い使い勝手となりますが、いくつか違う点があります。
設定すべきキーコードはFallout 4専用のものになります。Skyrimのキーコードは値が異なるので使えません。
ただし、コントローラーだけはSkyrimのキーコードを使うようです。
コントローラーのLTとRTはどうやら検知できないようです。アナログ入力だからでしょうか。
特定の状況ではOnKeyDown、OnKeyUpイベントが発火しません。ラグドール中などが該当します。これらの状況でもホットキーを使うにはMCMホットキーを使います。