[[BF2 Wiki]]

// ■■ Controls.con弄り関係だけ独立させてみた。
// ■■ FAQの方は消しちゃって良いんだろうか?
// ■■ こっちへのリンクの貼り方とかよくわからんしなあ。



* キーコンフィグ [#c3b99788]
#contents
#br
#br
#br

**Controls.con [#k51034fc]

BF2の操作設定は全てControls.conというテキストファイルに記述されています。~
これをテキストエディタで編集することで、オプションからでは介入出来ない~
より詳細な設定やプレイの助けとなる高度な設定を行うことが出来ます。~
 My Documents/Battlefield 2/Profiles/0001/Controls.con
アカウントを複数持っている場合は0002以降のフォルダも生成されています。

''!!!注意!!!''~
Controls.conはBF2起動時、コントロール設定変更時、BF2終了時などに内容の変更が
なくても上書きされます。~
上書きする際にプライマリが2つ設定されていたり、セカンダリしかなかったり
する不正な行が存在すると、該当行を削除して保存します。~
入力ミスなどが起きると作業内容がパーになりかねないので、
作業をする時は以下の状態のControls.conのバックアップを取ってから動作確認した方がいいでしょう。
- 変更前のファイル
- 変更後のファイル(BF2起動前に保存)

#br
#br
#br

&aname(danraku);
**段落 [#i2fb9572]

Controls.conは大きく七つの段落に分かれています。~
オプションからでは違う段落でしか同一のキーは設定できませんが、~
直接編集する分には問題ありません。


| ControlMap.create ''Infantry''PlayerInputControlMap | 歩兵の操作 |
| ControlMap.create ''Land''PlayerInputControlMap | ジープや戦車など地上を走る車両の操作  |
| ControlMap.create ''Air''PlayerInputControlMap | 戦闘機、攻撃機の操作 |
| ControlMap.create ''Helicopter''PlayerInputControlMap | 攻撃/輸送ヘリの操作 |
| ControlMap.create ''Sea''PlayerInputControlMap | ボートやジェットスキーの操作 |
| ControlMap.create ''defaultGame''ControlMap | 上記以外のゲーム全般の操作 |
| ControlMap.create ''defaultPlayer''InputControlMap |~|

#br
#br
#br

**書式 [#v8ca4ce0]

Controls.conでは、ジャンプのキー設定はこのように記述されています。
 ControlMap.addKeyToTriggerMapping c_PIAction IDFKeyboard IDKey_Space 10000 0 
これらはこのような意味になっています
 コントロールのマッピングを行う.マッピングの種類 マッピングする動作 マッピングする入力1 マッピングする入力2又はクリックの種類 セカンダリ又はプライマリ
***ControlMap.addKeyToTriggerMapping [#v725bc35]

入力装置によって変わる部位です。
| add''KeyToTrigger''Mapping | キーボードのキー |
| add''ButtonToTrigger''Mapping| ジョイスティックやマウスのボタン |
| add''AxisToAxis''Mapping| ジョイスティックやマウスのX/Y軸 |
| add''KeysToAxis''Mapping| 2つのキーを1つの軸として扱う場合&br; 前後左右への移動に使うWS/ADなどがこれです  |
| add''ButtonsToAxis''Mapping| 2つのボタンを1つの軸として扱う場合  |
片方にボタン、片方にキーを使って軸にする方法は不明
#br
#br

***c_PIAction [#b46d0e8c]

入力に対して行われる動作、キーに持たせる機能を表すもっとも重要な部位です。~
''c_PI'' で始まるものと ''c_GI'' で始まる2種類があります。

ジャンプ以外の場合どう書くのかは、オプションで余っているキー~
例えば¥キーを設定してYenで検索してみれば分かります。

[[別紙>キーコンフィグ別紙]]にて一覧表も用意してみました。
#br

***IDFKeyboard [#jedf1eff]
入力装置の指定です。キーボード以外の場合はこうなります。
 IDFMouse
 IDFGameController_0
#br

***IDKey_Space [#w71c3685]
バインドするキーです。ジョイスティックやマウスのボタンの場合はこうなります。
 IDButton_0
マウスやホイール、ジョイスティックの軸を指定する場合はこのようになります。~
IDAxis_1の次の0は1にすると反転するようです。~
左右逆になってしまうときはここをチェックだ。
 IDAxis_1 0
2つのキーを1つの軸として扱う場合はこのように併記されます。
 IDKey_W IDKey_S
#br

&aname(inputtype);
***10000 [#xbb3a1d9]
入力タイプの設定です。~
2つのキーを1つの軸として扱う場合(KeysToAxis, ButtonsToAxisを指定した場合)は数値の指定はありません。

10000は押した瞬間のみの入力で、アサルトライフルでいうとシングルショットの状態です。~
ジャンプ(SPACE)、兵装選択(1-9)、座席移動(F1-8)などがこの設定です。

0にすると押してる間は常に入力し続けた状態になり、いわばフルオートになります。~
移動(WSAD)やラジオメニューを開く(Q)などがこの設定です。

1000に設定した場合はダブルクリックでのみ入力されるようになります。~
これを使うと単一のキーに二つの機能を持たせられます。~
Wの2回押しでのスプリント(SHIFT+W相当)などがこの設定です。

#br

&aname(matubino0);
***0 [#u1d4ed49]
プライマリ/セカンダリの設定です。

BF2ではひとつの機能に対して二つまでしかキーを設定できませんし、~
どちらがメインのキーでどちらがサブのキーなのかも区別して設定する必要があるようです。

機能に対して設定する一つ目のキーの場合は0。二つ目を追加する場合は1にします。

''!!!注意!!!''~
プライマリの行をセカンダリにコピーして、1に書き換えるのを忘れたり、プライマリ、セカンダリの両方がある設定のプライマリを削除して、セカンダリからプライマリに戻すのを忘れた場合は''BF2起動時や終了時に該当行が削除''されます。~
バックアップを忘れずに取っておきましょう。
#br
#br
#br

&aname(jumpdepara);
**ジャンプキーでパラシュートを開く [#yd8ef36d]

オプションでは弾かれますが、同一のキーを設定してやるだけで~
ジャンプとパラシュート開傘機能を併せ持たせることが出来ます。

''c_PIAction'' で検索して見つかるのがジャンプのキー設定を記述している行、~
''c_PIWeaponSelect9'' で出てくるのがパラシュートのそれです。

''c_PIWeaponSelect9'' の前後を全て消して、代わりにジャンプの方の~
''c_PIAction'' の前後をコピぺしてやれば完成です。

どちらもキーボードに設定していた場合は前後の記述はほぼ共通ですから、~
IDKey_9 を任意のキー(IDKey_Space など)に書き換えるだけでもいけます。

スペースキーにバインドした場合。
 ControlMap.addKeyToTriggerMapping c_PIWeaponSelect9 IDFKeyboard IDKey_Space 10000 0
 ControlMap.addKeyToTriggerMapping c_PIAction IDFKeyboard IDKey_Space 10000 0
#br
#br
#br

&aname(joydespot);
**ジョイスティックを使ってる時もスポットしたい [#fe2829a1]

オプションでは設定項目自体が見当たりませんが、ラジオメニューを~
決定するキー(通常左クリック)にもセカンダリを設定できます。

同じボタンにラジオメニューを開く機能も持たせておくと~
ジョイスティックを使ってヘリや飛行機に乗っている時でも~
ボタン1発でスポットが出来るようになります。


まずオプションで主通信(ラジオメニューを開くデフォルトではQキー)の~
セカンダリに任意のボタンを設定しておきます。

''c_GIRadioComm'' で検索するとプライマリとセカンダリの2行が見つかるので、~
下にある末尾が1のセカンダリの方をまるごとコピー、 ''c_GIOk'' で検索して~
見つかる行の下に新たにペーストし、 ''c_GIRadioComm'' の部分を ''c_GIOk'' に~
書き換えれば完成です。

ボタン7に1発スポット機能を持たせた場合。
 ControlMap.addButtonToTriggerMapping c_GIOk IDFMouse IDButton_0 0 0
 ControlMap.addButtonToTriggerMapping c_GIOk IDFGameController_0 IDButton_7 0 1

 ControlMap.addKeyToTriggerMapping c_GIRadioComm IDFKeyboard IDKey_Q 0 0
 ControlMap.addButtonToTriggerMapping c_GIRadioComm IDFGameController_0 IDButton_7 0 1
#br
#br
#br

**マウスホイールのスクロールもボタンとして使う [#p340e30d]

通常ホイールは上下させると装備の一覧が表示されクリックして~
決定しないと持ち替える事が出来ませんが、上回転と下回転を~
普通のボタンとして使うことも出来ます。

3番4番など頻繁に使う武器や、SpecialForceではガスマスクと~
ナイトビジョンを設定しておくと便利です。

 ControlMap.addAxisToTriggerMapping c_PINextItem -1 IDFMouse IDAxis_2 0
 ControlMap.addAxisToTriggerMapping -1 c_PIPrevItem IDFMouse IDAxis_2 0

デフォルトのホイールに関する記述はこうなっていますのでこれをコピー、~
3番4番のセカンダリとして設定する場合はそれぞれの記述の下に新たにペーストし、~
''c_PINextItem''/''c_PIPrevItem'' の部分を ''c_PIWeaponSelect3''/''c_PIWeaponSelect4'' に、~
&aname(matubino0){末尾の0};をセカンダリを意味する1に書き換えます。

3番4番武器の記述は既に書いた''c_PIWeaponSelect3'' と ''c_PIWeaponSelect4'' で~
検索すれば見つかりますが、車両用や航空機用など複数該当があります。

 ControlMap.create InfantryPlayerInputControlMap
最初の行にこう書いてある歩兵用の&aname(danraku){段落};の下に挿入して下さい。

最後に元の武器選択機能、上にも書いた ''c_PINextItem'' と ''c_PIPrevItem'' を含む~
2行を消せば完成です。

 ControlMap.addKeyToTriggerMapping c_PIWeaponSelect3 IDFKeyboard IDKey_3 10000 0
 ControlMap.addAxisToTriggerMapping c_PIWeaponSelect3 -1 IDFMouse IDAxis_2 1
 ControlMap.addKeyToTriggerMapping c_PIWeaponSelect4 IDFKeyboard IDKey_4 10000 0
 ControlMap.addAxisToTriggerMapping -1 c_PIWeaponSelect4 IDFMouse IDAxis_2 1

ガスマスク/ナイトビジョンにする場合は ''c_PIWeaponSelect7''/''c_PIWeaponSelect8'' です。~
それぞれの記述の下に挿入してください。
#br
#br
#br

**BF1942の様にフルキーで座席移動する [#gc37c884]

BF2では輸送ヘリやジープ/ボートのパイロット/ガンナー以外の座席で~
歩兵の手持ち装備を使えるために歩兵操作にも座席移動の設定があり、~
デフォルトでは装備選択にフルキー、座席移動にファンクションキーを~
使う事を余儀なくされますが、フルキーに両方バインドすることも出来ます。

まずゲーム内オプションで各種車両の座席移動はフルキーに、歩兵項目は~
装備選択をフルキー、座席移動をファンクションキーにして保存した後、~
&aname(inputtype){書式の項で書いたココ};の数値を弄ります。

 ControlMap.create InfantryPlayerInputControlMap
の段落の下にある ''c_PIPositionSelect1'' で検索してみつかる行と、~
その下の同じく 2〜8 までが歩兵の座席移動の設定ですので、これらの行末から~
二番目にある 10000 を 1000 に、 IDKey_F1 を IDKey_1 に~
書き換えたら完成です。

 ControlMap.addKeyToTriggerMapping c_PIWeaponSelect1 IDFKeyboard IDKey_1 10000 0
 ControlMap.addKeyToTriggerMapping c_PIPositionSelect1 IDFKeyboard IDKey_1 1000 0
上が装備選択の記述、下が座席移動のそれ。

これで歩兵装備が使える座席では一度押せば装備変更、二度押しで座席移動になります。~
&size(11){(※ただし、座席を移動した場合も一度目の入力に反応して装備の持ち替えは行われてしまいます。)};
#br
#br
#br

**ヘリ操作のピーキーな設定、ヘルファイアの操作感度の設定 [#u693ba25]

まずヘリのピーキーな操作設定。control.conをテキストなどで開きます。~

ControlMap.create HelicopterPlayerInputControlMap~
の項目の一番下に以下を追加。(最初からあれば数字のみを弄る)~

ControlMap.mouseSensitivity 10~
ControlMap.setYawFactor 10~
ControlMap.setPitchFactor 10~

上記の数字の部分はゲーム内設定では10までしか設定出来ませんが、~
テキスト自体を書き換えることで100以上の設定も出来たりします。~


次にヘルファイアの感度設定。同じくcontrol.conをテキストなどで開きます。~

ControlMap.create defaultGameControlMap~
の項目の一番下に以下を追加。~

ControlMap.mouseSensitivity 1.0~

上記の数字の部分を1.5、2.0など数値を上げて行くとヘルファイアの感度が上がります。~


#br
#br
#br

**キーフィグ別紙 [#b0294fa5]

マッピング出来る動作の一覧などが書いてある[[別紙>キーコンフィグ別紙]]が用意してあります。