The Witcher 3 Mod:Meditation UI ChangesとFriendly HUDのマージ手順(2016/11/09追記)
お詫び:
本記事はScript Mergerを使ってMeditation UI ChangesとFriendly HUDをマージする際うまくマージできない場合があるよって記事だったんですが、私のScript Merger設定ミスが原因でした。Script Mergerを正しく設定していれば何もせずとも自動マージしてくれます。
反省の意味も込めてScript Mergerの正しい設定手順と、間違った手順を書き残しておきます。
補足(2016/11/09):
Friendly HUD 12.0以降、瞑想に関する機能はFriendly Meditationに移管されました。Friendly HUD 12.xを使っている場合、以下の競合が発生するのはFriendly Meditationを併用している場合のみとなります。
日本語化修正パッチ配布フォルダ(DropBox共有)に最新のFriendly HUD, Friendly Meditationの日本語化ファイルをアップしましたのでご活用ください。
Script Mergerの正しい設定手順
- NexusModsのScript MergerのFILESタブからMAIN FILESのWitcher Script Merger v0.5.xをダウンロードします。OPTIONAL FILESのWitcher Script Merger v0.5.x without dependenciesはKDiff3/QuickBMS/wcc_liteをバンドルしていない特殊なファイルなので通常は使いません。
- ZIPファイルを任意のフォルダに解凍します。私はC:\Witcher3wk\tools\ScriptMergerというフォルダに解凍しましたが、デスクトップなどでも問題なく動作するはずです。
- WitcherScriptMerger.exeを起動します。The Witcher 3のインストールフォルダを入力し、「Refresh」ボタンを押します。
以上で初期設定は完了です。以下はマージ手順の概要です。
- 左の一覧にマージが必要なスクリプトが表示されます(マージ不要の場合は空です)。マージするスクリプトをチェックして「Create Selected Merge」ボタンを押します。
- 確認メッセージが何度か表示されるので「OK」または「Continue」を押します。
- ほとんどの場合、これだけでマージが完了します。
- Script Mergerが自動的にマージできず、手作業によるマージの必要がある場合、KDiffによるマージ画面が表示されます。左:バニラ、中:MOD1、右:MOD2、計3つのリストが表示されるので見比べながらマージします。
- Friendly HUD v10.7とMeditation UI Change v1.22(またはImmersive CamのオプションImmersive Meditation v2.5.4)をマージするとき、playerInput.wsに対してKDiffマージ画面が表示されます。
ツールボタンを「C」「B」の順に押して次のようにマージすればOKです。 - マージが完了すると左の一覧が空になり、右にマージ後のスクリプトが表示されます。
マージをやり直したい場合は右の一覧でスクリプトをチェックし「Delete Selected Merge」ボタンを押します。
Script Mergerの間違った設定例
Descriptionに貼ってあった動画を参考にWitcherScriptMerger.exe.configを設定したのですが、参考ビデオは古いバージョンのもので最新版のconfigファイルと並びが異なっていたため、次のように間違った設定をしてしまいました。
<configuration> <appSettings> <add key="GameDirectory" value="C:\program files (x86)\steam\steamapps\common\The Witcher 3" /> <add key="ScriptsDirectory" value="C:\program files (x86)\steam\steamapps\common\The Witcher 3\Mods" /> <add key="ModsDirectory" />
本来ScriptsDirectoryにバニラのスクリプトフォルダ、ModsDirectoryにはModsフォルダを指定するのが正解で、省略すればGameDirectory下のフォルダを適切に選んでくれます。しかし、この設定だとバニラのスクリプトが正しく参照できないため比較精度が悪くなり、以前の記事のような現象となってしまいます。
最新のScript MergerではWitcherScriptMerger.exe.configを修正する必要は一切なく、画面でゲームフォルダを指定するだけでOKです。
上記のとおり、Script Mergerを正しく設定していれば以下の手順は不要です。
消さずに残しておきますが、参考になさらないでください。
Steamの半額セールに釣られてThe Witcher 3を購入しました。
ゲーム自身の完成度が高く、最初はMOD導入の必要性を感じませんでしたが、いななさんのブログの記事 【PC版】The Witcher 3 MOD導入のススメを読んでMOD遊びにハマってしまいました(おかげでクエストが全然進まない)。
最近のお気に入りは Meditation UI Changeです。瞑想画面を透明にするMODで、瞑想の様子や時間経過に伴う景色の変化が楽しめます。
Friendly HUDと併用する場合はScript Mergerを使ったスクリプトのマージが必要ですが、単純に左右を選ぶだけではうまくマージできませんでした。
この記事ではマージの考え方を交え、Meditation UI ChangesとFriendly HUDのマージ手順について説明します。
なお、MODの導入方法やScript Mergerを使ったスクリプトのマージ方法についてはいななさんのブログやGoogle検索を参照してください。
ご注意:本記事はThe Witcher 3 のバージョンv1.12が対象です。v1.21に対応したFriendly HUDとMeditation UI Changeのマージではマージ手順が異なる可能性があるので注意してください。とはいえ、Script MergerのDiff Alighnment機能は他MODのマージでも役立つので、一読されることをお勧めします。
アドバイス:最近知ったのですが、Friendly HUDではN(瞑想)キーの長押しでメニューを開かずリアルタイム瞑想できます。この機能で満足であれば、無理にMeditation UI Changeを使う必要はないかもしれませんね。
目次
- Script Mergerの正しい設定手順
- Script Mergerの間違った設定例
- 前提条件
- Script Mergerを使ったマージの基本(おさらい)
- Meditation UI ChangesとFriendlyHUDをマージする際の問題点
- playerInput.wsのマージ手順
- 謝辞と読者へのお願い
- 本記事の更新履歴
前提条件
The Witcher 3のバージョン: v1.12
マージ対象のMODは次のとおりです。
- Meditation UI Change by erxv
ファイル: modFriendlyHUD for patch 1.12 (version 9.2) - Friendly HUD by wghost81 aka Wasteland Ghost
ファイル: Meditation UI change 1.12 compatible (version 1.12)
利用したツールは次のとおりです。
- Script Merger by AnotherSymbiote
ファイル: Witcher Script Merger v0.5.8 (version 0.5.8)
Script Mergerを使ったマージの基本(おさらい)
Script Mergerを使ってスクリプトをマージする場合、大体次の2パターンがあります。
Meditation UI ChangesとFriendlyHUDをマージする際の問題点
ほとんどのスクリプトは先ほど示した基本どおりにマージできるのですが、content\scripts\game\player\playerInput.wsの関数OnIngameMenuのマージで問題があります。
上の図を見てください。左右の関数OnIngameMenuが1:1に対応していないのがお分かりでしょうか。右の関数OnIngameMenu1つに対して、左の関数OnToggleHud、Debug_ClearAllActionLocks、OnPinModuleModfier3つが対応付けられてしまいます。この場合、普通に左右を選択するだけでは複数の関数の処理が混ざってしまい、コンパイルエラーや動作不正となる可能性が高いです。
念のため他の有名ファイル差分ソフトWinMerge を使って比較してみました。
こちらでは関数の対応がうまく認識され、綺麗な差分が表示されます。KDiff3(Script Mergerに添付の差分ツール)よりもWinMergeの差分検出アルゴリズムが優れているせいでしょうか。
図中の青線に示すとおり、関数OnIngameMenuの左側の処理はすべて右側に包含されていることが分かります。
playerInput.wsのマージ手順
Diff Alighnment(差分基準点)の追加
Script Mergerに添付のKDiff3には、ファイル比較の基準点(比較単位)を手動で指定することで比較の精度を上げることのできるDiff Alignment機能があります。
関数OnIngameMenuをDiff Alignmentに追加して比較精度を上げてみましょう。
なお、この操作を行うとマージ結果がリセットされてしまいますので、playerInput.wsを開いた直後に行ってください。
まず、左のファイル(modFriendlyHUD)に対してDiff Alignmentを追加します。
マウスをドラッグして関数OnIngameMenu全体を範囲選択し、「DiffView - Add Manual Diff Alignment」メニューを選択します。
次に、右のファイル(modMeditationUI)に対してDiff Alignmentを追加します。
マウスをドラッグして関数OnIngameMenu全体を範囲選択し、「DiffView - Add Manual Diff Alignment」メニューを選択します。
マージ作業
後はいつもの手順でマージします。
このファイルでは基本的に左側(modFriendlyHUD)を選択すればOKですが、以下に示す箇所については右側(modMeditationUI)を選んでください。
お疲れ様でした。それでは瞑想を満喫してください!!!
プレイ上の注意点
私の環境では瞑想の前後に「今はその操作を実行できません」というメッセージが出てしまいますが、今のところ問題はないようです。
謝辞と読者へのお願い
本記事では次のMODの画面およびScriptの一部を使いました。作者のerxvさんとWasteland Ghostさんにこの場を借りて御礼申し上げます。
- Meditation UI Change by erxv
- Friendly HUD by wghost81 aka Wasteland Ghost
この記事を読んだ方へのお願い
- NexusModsで公開されたMODを導入した場合、忘れずにENDORSEをお願いします。
- ENDORSEは「このModはいいね!」という意味で、MODがどれくらい使われているのか、どれくらい好評なのかを示すバロメーターです。ENDORSEの数は作者の励みとなり、さらに良いMOD開発への原動力となります。
- MODのページ右上にある緑色の「ENDORSE」ボタンを押します。ダウンロード直後は押せませんので30分程度時間を置いてください。
- オレンジ色の「UNENDORSE」は既にENDORSE済みであることを示しています。
- ENDORSEをするのにお金などは一切かかりません。
本記事の更新履歴
- 2016/05/28 14:00 - 公開
- 2016/06/06 14:00 - Script Mergerの設定ミスが原因だったこと、お詫びを追記
- 2016/06/27 12:30 - Friendly HUD v10.7とMeditation UI Change v1.22(またはImmersive CamのオプションImmersive Meditation v2.5.4)のマージ手順を追記
- 2016/11/09 04:30 - Friendly HUD 12.x, Friendly Meditationに関する補足を追記
//