2017年2月8日水曜日

Tree of Saviorのゲームパッド設定

ホリパッドミニで遊ぶために試行錯誤
HORIPAD3 MINIのボタンアサインマッピング
ToSはゲーム内でグラフィカルにボタンアサインを設定する機能を有していないので
「‪C:\Nexon\TreeofSaviorJP\release\hotkey_joystick.xml」を編集して対応する手段を試行錯誤してみる。

用意するもの

xml形式のファイルなのでユニコード対応のエディタが必要になる。ここではサクラエディタを使用する。

hotkey_joystick.xmlのオリジナルファイルを任意のフォルダに保存する。同ファイルをデスクトップにでもコピーしておいてそれを編集する。編集後もともと設置されている場所にファイルを上書き保存することで更新させる手順を行う。

できるだけ表記と一致させてみた

HORIPAD3 MINIを表記通りに動作するよう編集
ホリパッドミニとゲーム内に表示されるゲームパッドの状態を一致させるように編集したもの。
※1:現状セットリスト1,2の切り替えになっているので13に置き換え
※2、3:コンパニオン持ってないので未確認。適応していない
hotkey_joystick.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by imc (imc) -->
<!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by MinstFaith (EMBRACE) -->
<Category>
<HotKey ID="MoveUp" Name="上方向に移動" DownScp="None" UpScp="None" Key="JOY_UP" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="YES" Category="Battle"/>
<HotKey ID="MoveDown" Name="下方向に移動" DownScp="None" UpScp="None" Key="JOY_DOWN" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="YES" Category="Battle"/>
<HotKey ID="MoveLeft" Name="左方向に移動" DownScp="None" UpScp="None" Key="JOY_LEFT" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="YES" Category="Battle"/>
<HotKey ID="MoveRight" Name="右方向に移動" DownScp="None" UpScp="None" Key="JOY_RIGHT" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="YES" Category="Battle"/>
<HotKey ID="QuickSlotExecute1" Name="クイックスロット1" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(0)" UpScp="None" Key="JOY_BTN_1" PressedKey="JOY_BTN_5" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute2" Name="クイックスロット2" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(1)" UpScp="None" Key="JOY_BTN_2" PressedKey="JOY_BTN_5" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute3" Name="クイックスロット3" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(2)" UpScp="None" Key="JOY_BTN_4" PressedKey="JOY_BTN_5" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute4" Name="クイックスロット4" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(3)" UpScp="None" Key="JOY_BTN_3" PressedKey="JOY_BTN_5" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute5" Name="クイックスロット5" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(4)" UpScp="None" Key="JOY_BTN_1" PressedKey="JOY_BTN_7" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute6" Name="クイックスロット6" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(5)" UpScp="None" Key="JOY_BTN_2" PressedKey="JOY_BTN_7" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute7" Name="クイックスロット7" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(6)" UpScp="None" Key="JOY_BTN_4" PressedKey="JOY_BTN_7" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute8" Name="クイックスロット8" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(7)" UpScp="None" Key="JOY_BTN_3" PressedKey="JOY_BTN_7" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute9" Name="クイックスロット9" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(12)" UpScp="None" Key="JOY_BTN_1" PressedKey="JOY_BTN_6" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute14" Name="クイックスロット14" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(13)" UpScp="None" Key="JOY_BTN_2" PressedKey="JOY_BTN_6" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute15" Name="クイックスロット15" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(14)" UpScp="None" Key="JOY_BTN_4" PressedKey="JOY_BTN_6" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute16" Name="クイックスロット16" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(15)" UpScp="None" Key="JOY_BTN_3" PressedKey="JOY_BTN_6" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute17" Name="クイックスロット17" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(16)" UpScp="None" Key="JOY_BTN_1" PressedKey="JOY_BTN_8" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute18" Name="クイックスロット18" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(17)" UpScp="None" Key="JOY_BTN_2" PressedKey="JOY_BTN_8" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute19" Name="クイックスロット19" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(18)" UpScp="None" Key="JOY_BTN_4" PressedKey="JOY_BTN_8" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="QuickSlotExecute20" Name="クイックスロット20" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(19)" UpScp="None" Key="JOY_BTN_3" PressedKey="JOY_BTN_8" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="NormalAttack" Name="通常攻撃" DownScp="None" UpScp="None" Key="JOY_BTN_1" PressedKey="MustNone" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="Jump" Name="ジャンプ" DownScp="None" UpScp="None" Key="JOY_BTN_2" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="ToggleMouseMode" Name="マウスモード切替" DownScp="joystick.ToggleMouseMode()" UpScp="None" Key="JOY_BTN_10" PressedKey="JOY_BTN_6" Mode="Both" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="Map" Name="マップ" DownScp="UI_TOGGLE_MAP()" UpScp="None" Key="JOY_BTN_13" PressedKey="None" Mode="Both" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="Select" Name="選択/スキップ" DownScp="None" UpScp="None" Key="JOY_BTN_3" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="QuestItemUse" Name="クエストアイテムの使用" DownScp="QUESTITEMUSE_EXECUTE()" UpScp="None" Key="JOY_BTN_10" PressedKey="JOY_BTN_7" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="MouseSpeedUP" Name="マウスの速度増加" DownScp="joystick.MouseSpeedUp(5)" UpScp="joystick.MouseSpeedUp(-5)" Key="JOY_BTN_4" PressedKey="None" Mode="Mouse" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="Escape" Name="ESCボタン" DownScp="None" UpScp="None" Key="JOY_BTN_10" PressedKey="None" Mode="Both" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="QuickSlotSwap1" Name="クイックスロットの変更" DownScp="JOYSTICK_QUICKSLOT_SWAP(1)" UpScp="None" Key="JOY_BTN_8" PressedKey="JOY_BTN_7" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="QuickSlotSwap2" Name="クイックスロットの変更" DownScp="JOYSTICK_QUICKSLOT_SWAP(2)" UpScp="None" Key="JOY_BTN_7" PressedKey="JOY_BTN_8" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="WeaponSwap1" Name="武器切り替え" DownScp="WEAPONSWAP_SWAP_EQUIP()" UpScp="None" Key="JOY_BTN_11" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="TargetFixed" Name="ターゲット固定" DownScp="None" UpScp="None" Key="JOY_BTN_12" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="TargetChange" Name="ターゲット変更" DownScp="None" UpScp="None" Key="JOY_TARGET_CHANGE" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="WarpQuest" Name="戻る" DownScp="SELECT_QUEST_WARP()" UpScp="None" Key="JOY_BTN_9" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="LHand" Name="補助武器" DownScp="None" UpScp="None" Key="JOY_BTN_4" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="RideOn" Name="乗り物に乗る" DownScp="ON_RIDING_VEHICLE(1)" UpScp="None" Key="JOY_UP" PressedKey="JOY_L1L2" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<HotKey ID="RideOff" Name="乗り物から降りる" DownScp="ON_RIDING_VEHICLE(0)" UpScp="None" Key="JOY_DOWN" PressedKey="JOY_L1L2" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/>
<!-- <HotKey ID="CompanionStroke" Name="コンパニオンを撫でる" DownScp="COMPANION_INTERACTION(1)" UpScp="None" Key="JOY_RIGHT" PressedKey="JOY_L1L2" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/ -->
<!-- <HotKey ID="Companion???" Name="コンパニオンに餌" DownScp="COMPANION_INTERACTION(2)" UpScp="None" Key="JOY_LEFT" PressedKey="JOY_L1L2" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Basic"/ -->
<HotKey ID="CrossUp" Name="十字キー上" DownScp="None" UpScp="None" Key="JOY_CROSS_UP" PressedKey="None" Mode="Mouse" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="CrossDown" Name="十字キー下" DownScp="None" UpScp="None" Key="JOY_CROSS_DOWN" PressedKey="None" Mode="Mouse" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="CrossLeft" Name="十字キー左" DownScp="None" UpScp="None" Key="JOY_CROSS_LEFT" PressedKey="None" Mode="Mouse" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="CrossRight" Name="十字キー右" DownScp="None" UpScp="None" Key="JOY_CROSS_RIGHT" PressedKey="None" Mode="Mouse" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="ToggleRest" Name="座る" DownScp="control.RestSit()" UpScp="None" Key="JOY_R1R2" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO" Category="Battle"/>
<HotKey ID="ChatType" Name="チャット変更" DownScp="ui.ProcessTabKey()" UpScp="None" Key="TAB" UseShift="NO" UseAlt="NO" UseCtrl="NO" OnEdit="YES" Category="System"/>
</Category>

設定ファイル(hotkey_joystick.xmlおよびhotkey.xml)の項目一覧

以下蛇足

これを理解すれば、より詳細な設定が可能になる。xmlファイルの記述ルールにも精通している必要がある。Attribute="value"の形を崩さないように編集することだけ理解していれば十分ではある。FF14のクロスホットバーほどの拡張性はないが、それに類する程度のカスタマイズは可能になりそうだ。

書式

<HotKey ID ="value" Name="value" DownScp="script" UpScp="script" Key="value" UseShift="YES/NO" UseAlt="YES/NO" UseCtrl="YES/NO" OnEdit="YES/NO" Category="Basic/System/Battle" />

<HotKey ID="value" Name="value" DownScp="JOYSTICK_QUICKSLOT_EXECUTE(0)" UpScp="script" Key="value" PressedKey="value" Mode="Key/Mouse/Both" UseAlt="YES/NO" UseCtrl="YES/NO" OnEdit="YES/NO" Category="Basic/System/Battle"/>

属性
[ID]
[Name]動作名称※おそらく動作名を表しているだけでゲームには影響がないはず
[DownScp]押下時に起動する関数/指定無しならNone
[UpScp]押上時に起動する関数/指定無しならNone
[Key]物理キー名称
[PressedKey]同時押しの先に押下している物理キー名称、MustNoneは排他制御
[Mode]Key/Mouse/Bothのいずれか
[UseShift]Shift押下中
[UseAlt]Alt押下中
[UseCtrl]Ctrl押下中
[OnEdit]チャット編集中?
[Category]Basic/System/Battleのいずれか

ID一覧
[Chat] チャット入力状態に移行
[ChatPad] 不明
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[MoveUp]
[MoveDown]
[MoveLeft]
[MoveRight]

関数一覧
param i クイックスロットのi番目を実行。0を指定すれば1番目のクイックスロットを実行する。値の範囲は0~39の40通り(範囲外はどう動くかわからん
JOYSTICK_QUICKSLOT_EXECUTE(int i)


気が向いたら更新

0 件のコメント:

コメントを投稿