- はじめに
- キャラクターとディレクトリの紐付け
- ファイル構造
- ファイルの分類
- 複製する
- 自動同期する
- 同期に用いるクラウドストレージ選定
- オリジナルの参照元ディレクトリの作成
- キャラクター設定ファイルの移動
- 環境ごとの設定ファイルの移動
- 共通ファイルの移動
- シンボリックリンクの作成
はじめに
FFXIVのゲーム設定のうち、HUDレイアウトやアイテムの並び順、ギアセットなどはクライアントPC側に保存されています。これらをコピーすることで、複数のキャラクターで同じHUDやホットバーレイアウト、マクロを使用することができます。
PC版でのみ使用可能な方法で、また私はSteam版クライアントを使用していないので同じように使えるかどうかはわかりません。
で、「よくわからないのにやってみてよくわからないことになった」と言われても困るので、適宜Google先生に質問しながら自己責任でやってください。
キャラクターとディレクトリの紐付け
各設定ファイルはユーザディレクトリ以下、Documents\My Games\FINAL FANTASY XIV - A Realm Reborn
にキャラクターごとに保存されています。
キャラクターごとにディレクトリが分かれているわけですが、FFXIV_CHR004000000XXXXXXXX
のような名前となっており、パッと見てどのディレクトリがどのキャラクターかを識別するのは人類にはまだ早すぎる感じがします。ファイルの最終更新日やlogディレクトリ内のデータを参考に識別すると良いかと思います。
logファイルには特殊文字も含まれていて普通のテキストエディタなんかだとやはり人類に早すぎる感がしますが、UTF-8を指定して開けばそれなりに読めます。もっとも、タイムスタンプだけ見れば問題ないです。そのキャラクターで最後にログインした時間と最新のlogファイルの作成時間が一致しているはずです。
ディレクトリ内に #main_charactor
みたいな空ファイル作っておくと、以降の識別が簡単になります。
ファイル構造
FINAL FANTASY XIV - A Realm Reborn ├ downloads(パッチDL用一時フォルダ) │ FFXIV_CHR004000000XXXXXXXX(キャラクター1のデータ) │ ├ log(ログファイル) │ ├ ACQ.DAT │ ├ ADDON.DAT │ ├ COMMON.DAT │ ├ CONTROL0.DAT │ ├ CONTROL1.DAT │ ├ GEARSET.DAT │ ├ GS.DAT │ ├ HOTBAR.DAT │ ├ ITEMFDR.DAT │ ├ ITEMODR.DAT │ ├ KEYBIND.DAT │ ├ LOGFLTR.DAT │ ├ MACRO.DAT │ ├ LOGFLTR.DAT │ └ UISAVE.DAT ├ FFXIV_CHR004000000XXXXXXYY(キャラクター2のデータ。詳細は割愛) ├ screenshot(デフォルトのスクリーンショット保存用フォルダ) ├ FFXIV.cfg(ゲーム全般設定) ├ FFXIV_BOOT.cfg(恐らくランチャー設定) ├ FFXIV_CHARA_01.dat(保存したキャラクターの外見データ:スロット1) ├ FFXIV_CHARA_02.dat(保存したキャラクターの外見データ:スロット2) ├ ... ├ FFXIV_CHARA_XX.dat(保存したキャラクターの外見データ:スロットXX) └ MACROSYS.dat(すべてのキャラクターに共通のマクロ)
ファイルの分類
私は2台の異なるPCで、複数のキャラクターAとBを動かしています。どちらのキャラクターで、どちらのPCからログインしても同じフィーリングで操作できる状態にしておきたいわけです。
設定ファイルは中身に応じて以下のように分類できます。
- キャラクターAに固有の情報
- キャラクターBに固有の情報
- 1台目のPCに固有の情報
- 2台目のPCに固有の情報
- どちらにも当てはまらないもの(キャラクター・PC問わず共通の情報として扱う)
私は各ファイルを以下のように分類し運用しています。
ファイル名 | 中身 | キャラクター固有 | 環境固有 |
---|---|---|---|
ACQ.DAT | よくわかっていない | - | ○ |
ADDON.DAT | UI・HUD・ウィンドウ位置などの設定 | - | ○ |
COMMON.DAT | キャラクターコンフィグ情報 | - | ○ |
CONTROL0.DAT | キーボード・マウスモードの操作設定 | - | ○ |
CONTROL1.DAT | ゲームパッドモードの操作設定 | - | ○ |
GEARSET.DAT | ギアセット情報 | ○ | - |
GS.DAT | よくわかってない | ○ | - |
HOTBAR.DAT | ホットバー内のアクション等の配置 | ○ | - |
ITEMFDR.DAT | かばん内のアイテム配置か何かだと思う | ○ | - |
ITEMODR.DAT | せいとん実行時のソートオーダー | ○ | - |
KEYBIND.DAT | キーバインド設定 | - | ○ |
LOGFLTR.DAT | ログフィルタ設定 | ○ | - |
MACRO.DAT | マクロ(キャラクター専用タブ) | - | - |
UISAVE.DAT | 保存したUIレイアウトのデータ | - | ○ |
../MACEROSYS | マクロ(全てのキャラクターで共通) | - | - |
キャラクターごとにアイテムの保持状況やホットバーの中身などが異なります。特にギアセットのデータがキャラクターごとにローカルに保存されている点に注意が必要です。
また、私は1台目のPCと2台目のPCでは、画面解像度や接続しているデバイスが違います。なのでUIやキーバインドは環境それぞれに設定をしています。
マクロは2キャラクターで共通にしています。
複製する
単純に、キャラクターAからキャラクターBへホットバー情報などを移したいだけであれば、
- キャラクターAのディレクトリで該当するファイルをコピー
- キャラクターBのディレクトリに貼り付け
でおしまいです。必要なファイルだけコピーすれば良いです。
自動同期する
私の場合もそうでしたが、多くの人の場合、やりたいのはこういうことだと思います。
- 1台目のPCでホットバーやギアセットを操作したら、2台目のPCにも自動的に反映させる
- キャラクターAでHUDレイアウトを操作したら、キャラクターBにも自動的に反映させる
都度コピーするのは面倒なので、これらを同時に実現します。
シンプルにクラウドストレージでファイルを同期し、シンボリックリンクで運用しちゃいましょう。丸ごとバックアップしてから実施してください。
補足
シンボリックリンクとは
ファイルのショートカットはイメージしやすいかと思います。これと近いけれど少し性質が異なります。
そもそも、ファイルの実体(中身)とファイル名はそれぞれ独立したものです。 file-a.txt
というファイル名を与えたファイルに対して、その中身がストレージ上のどこに保存されているか、というのはOS(ファイルシステム)が紐付けています。
シンボリックリンクは、例えば file-a.txt
の実体に対して、もう一つ file-b.txt
という参照元を作ります。file-b.txt
は file-a.txt
へのショートカットではなく、ちゃんと file-b.txt
として開くことができるファイルです。しかし中身は file-a.txt
と同じです。参照先にあるファイルの実体は同じなので、file-b.txt
を更新すると file-a.txt
も更新されています。
今回やろうとしているFFXIVの設定で言うと、ゲームクライアントが読み込むファイルをシンボリックリンクにします。ゲームクライアントはMy Gamesの中にあるファイルを参照しますが、実際に読み込まれるファイルの実体は別の場所に置いてある設定ファイルになります。
同期に用いるクラウドストレージ選定
PC間の同期にはDropboxやOneDriveようなクラウドストレージサービスを使います。何でもいいですが、シンボリックリンクのリンク元として扱える必要があります。
Googleドライブはシンボリックリンクに対応できないのでNGでした。リンク元・リンク先のどちらもGoogleドライブ内である場合にしか使えないとかなんとか。私はDropboxでやってます。
オリジナルの参照元ディレクトリの作成
まずは前述のファイル分類にしたがって、クラウドストレージの管理領域内に以下のような階層構造のディレクトリを作ります。
ffxiv_config ├ first_character(キャラクターA固有の設定) ├ second_character(キャラクターB固有の設定) ├ env_desktop(デスクトップPCで使う環境設定) ├ env_note(ノートPCで使う環境設定) └ env_shared(共通設定)
私の場合はデスクトップPCとノートPCとで使い分けているので上記のようなネーミングにしましたが、識別できれば何でもいいでしょう。キャラクター名でも何でも好きな名前を付ければいいと思います。
キャラクター設定ファイルの移動
各キャラクター固有のデータを、それぞれのキャラクター用のディレクトリに移動します。
ffxiv_config ├ first_character(キャラクターA固有の設定) │ ├ GEARSET.DAT │ ├ GS.DAT │ ├ HOTBAR.DAT │ ├ ITEMFDR.DAT │ ├ ITEMODR.DAT │ └ LOGFLTR.DAT ├ second_character(キャラクターB固有の設定) │ ├ GEARSET.DAT │ ├ GS.DAT │ ├ HOTBAR.DAT │ ├ ITEMFDR.DAT │ ├ ITEMODR.DAT │ └ LOGFLTR.DAT ├ env_desktop ├ env_note └ env_shared(共通設定)
環境ごとの設定ファイルの移動
それぞれの環境で調整した設定ファイルを移動します。当然ながら、デスクトップPC用の設定ファイルはデスクトップPCから、ノートPC用の設定ファイルはノートPCから、それぞれ持ってきます。
ffxiv_config ├ first_character ├ second_character ├ env_desktop(デスクトップで使う環境設定) │ ├ ACQ.DAT │ ├ ADDON.DAT │ ├ COMMON.DAT │ ├ CONTROL0.DAT │ ├ CONTROL1.DAT │ ├ KEYBIND.DAT │ └ UISAVE.DAT ├ env_note(ノートPCで使う環境設定) │ ├ ACQ.DAT │ ├ ADDON.DAT │ ├ COMMON.DAT │ ├ CONTROL0.DAT │ ├ CONTROL1.DAT │ ├ KEYBIND.DAT │ └ UISAVE.DAT └ env_shared
共通ファイルの移動
残りのファイルは全ての環境で共通するファイルだと思うので、そいつらを移動します。私の場合はキャラクターごとにマクロを使い分けることがないので、どちらのキャラクターでログインしても同じマクロを使えるようにしています。
ffxiv_config ├ first_character ├ second_character ├ env_desktop ├ env_note └ env_shared(共通設定) ├ MACRO.DAT └ MACROSYS.DAT
シンボリックリンクの作成
FFXIVのクライアントがクラウドストレージ上にあるファイルを設定ファイルとして読み込めるよう、mklinkコマンドでシンボリックリンクを作成します。mklinkコマンドの実行には管理者権限が必要です。また、リンク先にファイルがあるとリンク作成できないため、オリジナルの設定ファイル群はバックアップも兼ねてどこかに移動しておいてください。
私はプレイ環境を作り直しても簡単に同じことが出来るようにしたかったので、しょーもないスクリプト書いてBATファイルとしてffxiv_config
直下に置いています。サンプルだけ載せておきます。適宜それっぽく書き換えて、BATファイルを管理者として実行すればOKです。
@echo off cd /d %~dp0 chcp 65001 rem 現在の環境(対応するディレクトリ) set current=env_desktop rem キャラクター固有設定のフォルダ名とキャラクターのID set char_1=first_character set char_1_id=FFXIV_CHR004000000XXXXXXX set char_2=second_character set char_2_id=FFXIV_CHR004000000YYYYYYY rem FFXIV設定のベースディレクトリ set xivbase="C:\Users\YOURNAME\Documents\My Games\FINAL FANTASY XIV - A Realm Reborn" rem キャラクター個別の設定フォルダがなかったら作っておく if not exist %xivbase%\%char_1_id% mkdir %xivbase%\%char_1_id% if not exist %xivbase%\%char_2_id% mkdir %xivbase%\%char_2_id% rem システムマクロ設定のリンク作成 mklink %xivbase%\MACROSYS.DAT env_shared\MACROSYS.DAT rem 環境個別の設定ファイルのリンク作成 cd %current% for %%f in (*.DAT) do ( mklink %xivbase%\%char_1_id%\%%f %%f mklink %xivbase%\%char_2_id%\%%f %%f ) cd /d %~dp0 rem キャラクターA用の設定ファイルのリンク作成 cd %char_1% mklink %xivbase%\%char_1_id%\MACRO.DAT env_shared\MACRO.DAT for %%f in (*.DAT) do ( mklink %xivbase%\%char_1_id%\%%f %%f ) cd /d %~dp0 rem キャラクターB用の設定ファイルのリンク作成 cd %char_2% mklink %xivbase%\%char_2_id%\MACRO.DAT env_shared\MACRO.DAT for %%f in (*.DAT) do ( mklink %xivbase%\%char_2_id%\%%f %%f ) cd /d %~dp0 pause
そんじゃーね。