マビノギの仕組み(上級者向け)

はじめに

こちらではマビノギの仕組みを技術的(?)な面を含めてお話します。
手っ取り早く行いたい場合やよくわからないという方は次の一般向け記事をご覧下さい。

また、この記事ではシステムの深い部分を触ります。レジストリの知識や、Windowsの知識が無い方はまずこれらを習得してください。
もしご不明な点がございましたら@kiri_wizまでご連絡ください。

必要なもの

  1. レジストリの知識
  2. Windowsの知識(基礎知識+技術的な部分)

起動の仕組みとバックアップ・リストア

起動方法が大幅に変更されてからブラウザから起動するようになりました。
しかし、どのようにクライアントの場所を検出しているのでしょうか?
答えはレジストリにあります。

64bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Nexon\Mabinogi
32bit: HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\Mabinogi

マビノギはここにあるExecutableのデータを読み込んでクライアントの位置を把握しています。
もしこの値を任意のデータに差し替えるとエラーが出るか別のものが起動されるはずです。
Mabinogi Launcher Moverはこの仕組みを利用して移動させたものやクリーンなPCに移した際に起動できる状態にしています。

次に設定ファイルですが、こちらはみなさんご存知、「ドキュメント」フォルダにマビノギフォルダがあります。 ここにアラームやキー配列が保存されており、Mabinogi Backuperではこのフォルダの内部をバックアップし、同じ位置に戻すことで実現しています。

しかし、こちらにはマビノギの環境設定はありません。
これも先ほど同様、レジストリにあります。

HKEY_CURRENT_USER\Software\Nexon\Mabinogi

こちらは64bit、32bit関係なく、同一の場所に保存されており、Mabinogi Backuperではここにある全データをバックアップ・リストアすることで実現しています。
ただし、PVPなどのオンラインに関わる内容はレジストリではなく、ネクソンのサーバーにあるようで変更はマビノギからでしか行うことはできません。

設定ファイルの仕組み

次に、ドキュメント」フォルダにマビノギフォルダにあるcustom.keyboardcustom.alarmの仕組みについてお話します。
ただし、custom.alarmは一切解析していないのでこちらの詳しいお話は省きます。

まずcustom.keyboardですが、こちらを試しにメモ帳で開いてみてください。 目が痛くなる文字の羅列ですね。
その道の人は既にお気づきかと思いますが、これはBase-64で置換されています。 試しにBase-64でデコードしてみてください。 おそらく見慣れた書式が出てくると思います。
マビノギではこの操作をし、デコードされた文字列を読み込んで操作を実現しています。

ですが、ここに書いてある内容、理解できますか? キーが割り当てられてるのは把握できますが、数値に関してはまったく見当も付かないと思います。
それもその筈、これらはマビノギ独自(?)のキーIDでWindowsのキーIDとはまったく違います
そこで、少し解析を行ってみました。

まずhotkeyタグのnameプロパティ、これは各動作のIDを表します。
次にkeyプロパティ、これはキーのIDを表します。
そしてaddonプロパティ、これはShiftなどの特殊キーを表します。Shiftがあれば1が入っており、Ctrlキーがあれば2、Altキーがあれば4が入力されています。

これらを任意の値に変えるとマビノギ外からでも編集が行うことができます。
もし存在しない不正な値であればマビノギは「なし」及び、0を指定します。
(キーとIDとの対応表は時間があるときにこちらにてまた書きます)

次にalarmです。 こちらもキー同様Base-64に置換されており、デコードすることでその実態が把握できます。
しかし、当方こちらは一切解析していないので解析は各自お任せいたします。

これらを踏まえたバックアップ

さて、本題。 これらを踏まえて自力でバックアップを行ってみます。
言ってしまうと上の知識がなくても手順に従えばバックアップと次のリストアはできてしまいます。

まず、マビノギクライアントを外付けHDDなどにコピーします。 こちらは特に変化はありません。

次に、設定ファイルをバックアップします。
C:\User\{UserName}\Documents\マビノギにある任意のフォルダまたは全てを外付けHDDなどにコピーしてください。

次に、設定データをバックアップします。
Winキー + Rキーでregedit.exeを起動させてください。
起動できましたら、仕組みにてお話しましたキー(HKEY_CURRENT_USER\Software\Nexon\Mabinogi)を右クリックし、エクスポートしてください。 このファイルをAとします。
これが設定データのバックアップファイルとなります。

続いて、クライアントのパス情報をバックアップします。 分かる方はここを飛ばしてカスタマイズしてくださっても構いません。
regedit.exeにて

64bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Nexon\Mabinogi
32bit: HKEY_LOCAL_MACHINE\SOFTWARE\Nexon\Mabinogi

をエクスポートしてください。 このこのファイルをBとします。
これで同一の場所にあればクライアントが認識されるようになります。

これでバックアップは完了です。

これらを踏まえたリストア

続いて、リストアを行っていきます。

まずクライアントをバックアップ前と同じ場所に移動させます。
続いてバックアップにて作成したクライアントの保存位置レジストリバックアップ、ファイルBをダブルクリックし、問題がなければ追加してください。

次に、設定ファイルを元のマビノギフォルダに移動させてください。

そして、設定データのレジストリバックアップ、ファイルAをファイルBと同じ要領で追加してください。

これでリストア完了です。