PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法

2020年07月05日
0

PC ゲーム Monster Hunter: World のセーブデータが破損などで正常に読み込めなくなってしまった場合、Steam クラウドやローカルに保存されたバックアップファイルから復旧できるようにカプコン公式サポートが復旧手順を公開 しています。

ただ、それでもタイミングによってはかなり巻き戻されてしまったり、最悪の場合セーブデータの問題で復旧することができない可能性があります。

そういった状況をできるだけ回避するため、Monster Hunter: World のセーブデータを自動的にバックアップする Monster Hunter World PC Save Backup スクリプト を使うこと、ローカル環境でセーブデータを自動的にバックアップすることができます。

私の記憶が間違ってなければもともとは Monster Hunter: World にはセーブデータをバックアップする機能が実装されておらず、セーブデータが破損したら復旧することもできない状態でゲームがプレイできる環境になっていたため、自衛のためにユーザーがこのようなスクリプトを公開したのかと思われます。

今回の記事ではこの Monster Hunter World PC Save Backup スクリプト を使って Monster Hunter: World の自動バックアップを設定してみました。

PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法

Monster Hunter World PC Save Backup : 初期設定項目

Pastebin に Monster Hunter World PC Save Backup スクリプトが公開 されているので、一番下のRAW Paste Data 欄にあるスクリプト内容をすべてコピーしてテキストファイルに貼り付けて bat 形式で保存するか、download ボタンがあるのでクリックしてバッチファイル(.bat)を保存します。

私のブラウザ環境では download ボタンを押してもダウンロードができなかったので、(Chromium 系ブラウザの場合) download ボタンを右クリックから 「名前を付けてリンク先を保存」 を選択します。ダウンロードしたファイル名は monster_hunter_world_pc_save_backup.bat となっています。

Monster Hunter World PC Save Backup スクリプト を使う前に初期設定が必要なため、テキストエディタで編集します。

Monster Hunter World PC Save Backup : monster_hunter_world_pc_save_backup.bat(初期設定項目)
::================================CHANGE THESE AS NEEDED=====================================

::Location of the saves (replace XXXXX with your user ID)
set PATH=C:\Program Files (x86)\Steam\userdata\XXXXX\582010
::Location to save the backups to
set BACKUPPATH=%USERPROFILE%\Documents\Monster Hunter World Save Backups
::Log path
set LOGPATH=%BACKUPPATH%
::FLAG to do a backup only if save has changed, set to 0 if want to backup no matter what
set /a CHK=1
::If you dont want to schedule it and instead would like to use this script as something you run while you play 
::in the background then set TIMER=1. It will ask you how often you want to run it (in minutes).
set /a TIMER=0
::Date format - Possible options are US, EU, YMD. Examples: US 08/17/2018 | EU 17/08/2018 | YMD 2018/08/17
set DATEFORMAT=US
::If you are not using default path for 7zip or WinRar you can change them here
::It is ok to not have either, then standard zip format will be used if thats the case
::Reasons to use 7zip - Better compression, free (WILL BE PREFERRED OVER WINRAR IF INSTALLED)
::Reasons to use WinRar - Has 5% baked in recovery in case recovery is needed
set SZIPPATH=C:\Program Files\7-Zip
set WRARPATH=C:\Program Files\WinRAR

26行目 CHANGE THESE AS NEEDED 以下の各行 set コマンドにある変数に、PC 環境やゲームのプレイスタイルにあわせてバックアップ設定をします。

このスクリプトではバックアップ上限数は設定できないため、古くなった不要なバックアップファイルは手動で削除する必要があります。

Monster Hunter World PC Save Backup で使用する変数リスト
  • PATH (セーブデータ保存場所) 必須
  • BACKUPPATH (セーブデータバックアップ先)
  • LOGPATH (ログファイル保存先)
  • CHK (フラグ設定)
  • TIMER (タイマー機能設定)
  • DATEFORMAT (ファイル名日付形式)
  • SZIPPATH と WRARPATH (アーカイバ(圧縮ソフト)パス名)

MHW セーブデータ保存場所パス名設定(必須

::Location of the saves (replace XXXXX with your user ID)
set PATH=C:\Program Files (x86)\Steam\userdata\XXXXX\582010

29行目の変数 PATHMHW のセーブデータが格納されているフォルダ を設定します。

MHW のセーブデータは Steam がインストールされているフォルダに格納されているため、PC 環境によってパス名が変わります。

ここでは Steam のデフォルトインストール先である C:\Program Files (x86)\Steam が設定されてますが、別のドライブやフォルダに Steam をインストールしてあれば、そのパス名に変更する必要があります。

XXXXX の部分は Steam のユーザー ID(数字) 部分のため、Steam アカウントごとに数字が異なります。

Steam がインストールされているフォルダの Steam\userdata 以下にある数字が Steam アカウントにおけるユーザー ID となっているので、XXXXX の部分にはその数字を設定します。

なお、数字の 582010 の部分は Monster Hunter: World の AppID です。

PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法、MHW セーブデータ保存場所パス名設定(必須)、変数 PATH のパス名が正しくないとスクリプト実行時にエラーが発生

変数 PATH のパス名が正しく設定されてないと、スクリプト実行時に画像のようなエラーが発生してバックアップできません。

また、このスクリプトは MHW のセーブデータフォルダだけに限定して動作するわけではないので、別のフォルダを指定してもバックアップが可能です。

そのため、使い方次第では MHW 以外のデータのバックアップも可能ということになります。

MHW セーブデータ - バックアップ先パス名設定

::Location to save the backups to
set BACKUPPATH=%USERPROFILE%\Documents\Monster Hunter World Save Backups

31行目の変数 BACKUPPATH にバックアップファイルの保存先パス名をを設定します。

デフォルトではマイドキュメントに Monster Hunter World Save Backups フォルダが作成されてそこにバックアップファイルが保存されます。

MHW バックアップログファイル保存先パス名設定

::Log path
set LOGPATH=%BACKUPPATH%

33行目の変数 LOGPATH にログファイル(MHW_saves_log.txt)保存先パス名を設定します。

デフォルトでは BACKUPPATH と同じパス名が設定されています。

MHW セーブデータ - バックアップフラグ設定

::FLAG to do a backup only if save has changed, set to 0 if want to backup no matter what
set /a CHK=1

35行目の変数 CHK にバックアップフラグを設定します。

CHK=1 の場合はセーブデータに変更があった場合バックアップします。変更がなければバックアップはしません。デフォルトではこちらの状態に設定されています。

CHK=1 の場合、初回バックアップ処理時や最後にバックアップしたセーブデータの MHW_last_cksum.txt (MD5 ハッシュ値) が生成されます。

MHW_last_cksum.txt がある状態でバックアップが実行されるとその時点でのセーブデータの MHW_curr_cksum.txt (MD5 ハッシュ値) が生成されて、この 2つのテキストファイルを比較してセーブデータの変更の判定を行います。

両テキストファイルを比較して内容が一致していなければバックアップを実行、一致している場合はセーブデータの変更はないと判定されてバックアップしません。

CHK=0 の場合はセーブデータ変更有無にかかわらずバックアップします。こちらの設定の場合は MHW_last_cksum.txtMHW_curr_cksum.txt は生成されません。

MHW セーブデータ - バックアップタイマー機能設定

::If you dont want to schedule it and instead would like to use this script as something you run while you play 
::in the background then set TIMER=1. It will ask you how often you want to run it (in minutes).
set /a TIMER=0

38行目の変数 TIMER にバックアップタイマー機能を設定します。

TIMER=0 の場合はバックアップタイマー機能はオフです。スクリプトを実行した際に一度だけバックアップファイルを作成して終了する処理になります。デフォルトではこちらの状態に設定されています。

特に確認していませんが、おそらく Windows のタスクスケジューラでバックアップ したいときの TIMER=0 設定かと思われます。

TIMER=1 の場合はバックアップタイマー機能はオンになります。スクリプト実行時にコマンドプロンプト画面に How often do you want to backup (enter minutes): というメッセージが表示されるので数値を入れると、入力した数値の分単位で自動的にバックアップするようになります。

そのため、指定したタイマーで自動的にセーブデータをバックアップしたい場合は TIMER=1 に設定する必要があります。

MHW セーブデータ - バックアップファイル名(日付形式)設定

::Date format - Possible options are US, EU, YMD. Examples: US 08/17/2018 | EU 17/08/2018 | YMD 2018/08/17
set DATEFORMAT=US

40行目の変数 DATEFORMAT にセーブデータのファイル名(日付形式)を設定します。

全部で 3つの日付形式(US ・・・ 月日年、EU ・・・ 日月年、YMD ・・・ 年月日)が用意されており、それぞれ年月日の並び順が異なります。デフォルトでは US に設定されています。

MHW セーブデータ - バックアップファイル、アーカイバ(圧縮ソフト)パス名設定

::If you are not using default path for 7zip or WinRar you can change them here
::It is ok to not have either, then standard zip format will be used if thats the case
::Reasons to use 7zip - Better compression, free (WILL BE PREFERRED OVER WINRAR IF INSTALLED)
::Reasons to use WinRar - Has 5% baked in recovery in case recovery is needed
set SZIPPATH=C:\Program Files\7-Zip
set WRARPATH=C:\Program Files\WinRAR

セーブデータをバックアップする際にいずれかの圧縮形式(7z、rar、zip)で保存します。

圧縮方法の優先順位はインストールされているアーカイバ(圧縮・解凍ソフト)で決まっており、「7-Zip(7z) > WinRAR(rar) > Windows 標準 zip」 の順番となっています。

7-ZipWinRAR どちらもインストールされていなくても Windows 標準の zip 形式で保存されるようになっています。

圧縮率違い以外では、WinRAR の場合はファイル破損時に修復用リカバリコードが組み込まれます。

45行目の変数 SZIPPATH7-Zip がインストールされているデフォルトパス名が、46行目の変数 WRARPATHWinRAR がインストールされているデフォルトパス名が設定されています。

7-ZipWinRAR のインストール先がデフォルトインストール先と異なる場合は、変数 SZIPPATH または WRARPATH のパス名を変更する必要があります。

どのアーカイバソフトを使ってセーブデータを圧縮しているかどうか判断する方法として、圧縮したファイルの拡張子以外にバックアップ中のコマンドプロンプト画面の文字の色で判断できます。

7-Zip(7z) はグリーン(緑)、WinRAR(rar) はパープル(紫)、Windows 標準 zip はホワイト(白)です。

Monster Hunter World PC Save Backup スクリプト実行時のバックアップ動作内容

以下、[Batch] Monster Hunter World PC Save Backup の変数 PATH (セーブデータ保存場所) が正しく設定されている状態で、各変数を変更した状態でスクリプトを実行した際のバックアップの動作内容を確認してみます。

PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法、Monster Hunter World PC Save Backup スクリプト実行、いずれかの圧縮形式(7z、rar、zip)にセーブデータをバックアップしてファイル名をバックアップした日付と時間に設定して保存、MHW_saves_log.txt はログファイルで LOGPATH に BACKUPPATH と同じフォルダを指定しているためバックアップファイルと同じフォルダにログファイルを保存、CHK=1 の場合に MHW_last_cksum.txt が生成
PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法、Monster Hunter World PC Save Backup スクリプト実行、PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法、Monster Hunter World PC Save Backup スクリプト実行、いずれかの圧縮形式(7z、rar、zip)にセーブデータをバックアップしてファイル名をバックアップした日付と時間に設定して保存、MHW_saves_log.txt はログファイルで LOGPATH に BACKUPPATH と同じフォルダを指定しているためバックアップファイルと同じフォルダにログファイルを保存、CHK=1 の場合に MHW_last_cksum.txt が生成、MHW_last_cksum.txt がある状態でバックアップが実行されると MHW_curr_cksum.txt を生成

TIMER=0 のままで、DATEFORMAT=YMD にした場合にスクリプトを実行すると次のように動作します。

コマンドプロンプト画面でバックアップ処理が流れた後自動的に画面が閉じて、BACKUPPATH で指定したフォルダにセーブデータを圧縮(ここでは 7z)、ファイル名をバックアップ時の日付+時間形式にして保存します。

MHW_saves_log.txt はログファイルで LOGPATH で指定した場所に保存されます。デフォルトでは BACKUPPATH と同じフォルダを指定しているので、圧縮したセーブデータのバックアップファイルと同じフォルダに生成されるようになっています。

MHW_last_cksum.txtCHK=1 の場合に生成されます。これは初回バックアップ処理や最後にバックアップしたセーブデータの最新 MD5 ハッシュ値テキストファイルです。

MHW_last_cksum.txt がある状態でバックアップが実行されると、その時点でのセーブデータの MD5 ハッシュ値 MHW_curr_cksum.txt が生成されます。

この 2つのテキストファイルはセーブデータが更新されたときに、新たにバックアップファイルを作成するかどうかをチェックするために使用するテキストファイル(MD5 ハッシュ値)です。

両方のテキストファイルを比較して内容が一致していればセーブデータは変更されていないと判定してバックアップは行わず、不一致の場合バックアップするという処理になっているようです。

PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法、Monster Hunter World PC Save Backup スクリプト実行、CHK=0 が場合、セーブデータ変更有無にかかわらず常にバックアップファイルを生成するため、バックアップチェック用 MHW_last_cksum.txt と MHW_curr_cksum.txt は生成されない

なお、CHK=0 の場合、MHW_last_cksum.txtMHW_curr_cksum.txt は生成されません。

CHK=0 はセーブデータの変更の有無にかかわらず常にバックアップするようになっているためか、バックアップチェック用テキストファイルを生成しないスクリプトになっているようです。

PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法、Monster Hunter World PC Save Backup スクリプト実行、TIMER=1 に設定してスクリプト実行した場合、コマンドプロンプト画面に How often do you want to backup (enter minutes): メッセージが表示、自動バックアップタイマーを分単位で設定

TIMER=1 に設定してスクリプト実行した場合に、コマンドプロンプト画面に How often do you want to backup (enter minutes): というメッセージが表示されるので、ここで自動バックアップタイマーの時間を設定します。

この画面で数値を入れると、分単位で自動的にセーブデータをバックアップするようになります。

PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法、Monster Hunter World PC Save Backup スクリプト実行、Monster Hunter World PC Save Backup スクリプト実行、自動バックアップタイマー設定後、初回バックアップ処理が実行、セーブデータのバックアップ処理完了後、次のバックアップが始まるまでのタイマーが作動、スクリプトが待機状態になり、自動バックアップスクリプトが正常に動作

自動バックアップタイマー設定後(上の画像では 5分に設定)、初回バックアップ処理が実行されます。

アーカイバに 7-Zip を使用しているため、画像の コマンドプロンプト画面の文字の色はグリーン(緑) となっています。

セーブデータのバックアップ処理完了後、次のバックアップが始まるまでのタイマーが作動(5分の場合は 300秒からスタート)します。

それまでスクリプトが待機状態になるので、これでこのコマンドプロンプト画面が表示している間は自動バックアップスクリプトが正常に動作していることになります。

PC ゲーム Monster Hunter World のセーブデータを自動的にバックアップする方法、Monster Hunter World PC Save Backup スクリプト実行、CHK=1 でバックアップ処理時にセーブデータに変更がなければバックアップは実行されない、セーブデータの変更しているかどうかは MHW_last_cksum.txt と MHW_curr_cksum.txt の二つのテキストファイル MD5 ハッシュ値を比較して判定

CHK=1 に設定した状態でバックアップ処理時にセーブデータに変更がなければ、同じ MD5 ハッシュ値が 2つ表示されてバックアップは実行されません。

セーブデータの変更しているかどうかは MHW_last_cksum.txtMHW_curr_cksum.txt の二つのテキストファイル MD5 ハッシュ値を比較して判定しています。

awgs
Posted by awgs