Stardew Valley:XNB置き換えmodをContent Patcherに対応させる

2019-08-04Stardew Valley

xnbファイルだけで構成される置き換え(リプレイス)型modをContent Patcher(以下CP)に対応させるためのチュートリアルです。

CPの導入や使い方についてはこちらをどうぞ。
https://aurifica.com/sv2/

CP対応化を行う利点としては以下が挙げられます。

・インストール/アンインストールが簡単
・vanillaのファイルを上書きしないで済む
・Vortexで管理が可能(他のmodとまとめて管理をしたい時や複数のmodを切り替えて使いたい場合に便利)

***

今回は髪型のリプレイスmod、Improved and New Hairstylesで実験してみます。

2021/4追記:現在当該modはCP用に変換されたものがDLできるようになっており、変換作業は不要になりました。
この記事はチュートリアルとして残しておきます。

※以下の解説は個人利用を想定しています。
modの二次利用(再配布)を配布元の許可なく行うことは絶対に避けてください。

 

xnbcliを使ってxnbをpngに変換

 
当該modをダウンロードし、適当な場所に解凍してxnbファイルを取り出しておきます。

xnbcliの導入方法&使い方はこちら。

正しくhairstyles.pngが作成できたら次へ。

 

ファイル構成の確認

 
置換したいファイルの場所を確認します。
xnbだけで構成されているmodは手動での置き換えが必須なので、大抵は作者の方がDescriptionにパスを書いてくれているはずです。

今回の例では、

Stardew Valley\Content\Characters\Farmer\hairstyles.xnb

になります。プレイヤーキャラの髪型のファイルですね。

場所がわかったので、次はこのファイルがゲーム内で読み込まれる時に代わりにCPフォルダ下に配置したhairstyles.pngが読み込まれるよう設定していきます。

 

jsonファイルの作成

content.json

メモ帳(またはお好きなテキストエディタ)を開き、必要な情報を記述します。

{
  "Format": "1.6",
  "Changes": [
       {
          "Action": "Load",
          "Target": "Characters/Farmer/hairstyles",
          "FromFile": "Characters/Farmer/hairstyles.png"
       }
    ]
}
項目の詳しい説明

Action: いろいろできるようですが、ここではLoadを使用します。
Target: 置き換えの対象になるファイル。拡張子は指定しません。
FromFile: Targetの代わりに読み込むファイルのパス。

記述できたらcontent.jsonという名前で保存します。
拡張子は.txtでなく.jsonになるようにしてください。

manifest.json

続いてもうひとつの設定ファイルを作成します。
先程同様にメモ帳(またはお好きなテキストエディタ)を開き、必要な情報を記述します。

{
   "Name": "Improved and New Hairstyles",
   "Author": "Chrysanthe",
   "Version": "1.0.0",
   "Description": "Tweaks to certain existing hairstyles. Also 12 new ones!",
   "UniqueID": "Chrysanthe.IaNH",
   "MinimumApiVersion": "2.9.0",
   "UpdateKeys": ["Nexus:132"],
   "ContentPackFor": {
      "UniqueID": "Pathoschild.ContentPatcher",
      "MinimumVersion": "1.6.0"
   }
}
項目の詳しい説明
Name: modの名前。
Author: modの作者名。
Version: modのバージョン。
Description: modの説明。自分専用なら適当でいいと思います。
UniqueID: 固有ID。他と被らなければなんでもいいと思います。
MinimumApiVersion: 起動に必要なゲーム本体のバージョン。
UpdateKeys:[“Nexus:xxx"]の形式でnexusIDを入力するとアップデートをチェックします。サンプルでは元modのIDが入っていますが、今回のように個人用途の時は[]で構いません。
ContentPackFor以下:Content Pactherで読み込むために必要な情報です。下手にいじると読み込まれなくなるのでそのままでOK

こちらはmanifest.jsonという名前で保存します。

ふたつのjsonファイルが作成できたら次へ。

 

各ファイルのパッケージング

 
ここまで作成したhairstyles.pngcontent.jsonmanifest.jsonの3つをmodとしてパッケージングします。

まず適当な名前のフォルダを作成します。ここでは仮にmod名の Improved and New Hairstyles とします。
作成できたらcontent.jsonmanifest.jsonを直下に置きます。

hairstyles.pngに関しては、先程content.jsonのFromFileに記述した通りのフォルダ構成にする必要があります。
よって直下にディレクトリを作成し、Characters/Farmer/hairstyles.pngとなるように配置します。

ここまで出来たらファイルの作成は完了です。お疲れさまでした。

 

インストールと動作確認

 
通常のCP対応modと同様にstardew valley/modに置くだけでOKです。
vortexを使う時は予め適切な形式に圧縮し、modタブを開いて画面下に圧縮ファイルをドロップ、続いてインストールと配置を行います。

ゲーム本体を起動し、SMAPIのログを見て当該modがちゃんと読み込まれていることを確認します。
(構文やファイル構成に不備があるとログに載らなかったり赤字でエラーを吐いたりします)

ちゃんと読み込まれているのに反映されない!という時はcontent.jsonのパスを確認してみてください。

スポンサーリンク