【Stardew Valley】MODの仕組みとエラーに対する心構え
はじめに
MODというものは本来のゲームにはない機能を追加したり、既存のデータを上書きすることでよりプレイヤーにとって理想の環境を作ることができる魔法の様な存在です。そして、ありがたいことにスタバレのMODは殊更導入が簡単で、雪だるま方式で数が増えることもしばしば。
ただそうなってくると怖いのが「予期せぬエラー」。
見覚えのないエラーログが出た、追加したはずのアイテムが見つからない、セーブデータが読み込まれない、起動しない……様々な問題が起こりえる危険性を承知の上で導入しているとはいえ、避けられるなら避けたいのが心情というもの。
そういうことで今回はMODの仕組みから、こうしたエラーが起きた場合にどうすればいいのかを書いていこうと思います。
MODの仕組み
一口にMODといっても、その種類は様々。今回はスタバレ界でも特に有名な「Stardew Valley Expanded」を例に説明していきます。(以下、SVEと表記)
まずMODをDLすると、これだけのフォルダが同梱されています。
上から順に
アプリケーション
追加される住民のダイアログやハートイベント、スケジュールや歩行グラ、ポートレートの読み込み用
追加マップでの採取アイテムのスポーンデータ
新規アイテム
専用の音楽
専用ショップ用データ
となっています。頭文字についている[CP]や[JA]は、そのMODが読み込まれるために必要な前提MODのことを指しています。
たとえばSTFことShop Tile Framework(カスタムショップを追加・編集できるようになるMOD)がないと[STF]Stardew Valley Expantedは正しく動きません。
今回はざっくり[CP]と[JA]がどのように動いているのかを解説します。
CP(Content Patcher)
SVEでは数人の住民が追加され、既存のマップデータにも変更点が多くあります。その住民のデータ、マップに対する変更、ロケーションの追加はCPによって行われています。
その為、多くの目に見える追加要素はこのCPによって実装されています。例えば「住民のポートレートがおかしい!」や「会話文に誤字があった!!」という場合はCP内のデータに問題があることになります。
まず見てほしいのはcontent.jsonとassetsのふたつです。
これらをすごく簡単に説明すると、まずcontent.jsonがゲーム本体に対する「AというデータをバニラデータのB部分に上書きしてね/Cという新規データを追加してね」という指示書の役割を持ち、指示された内容を含む各種データがassetsに入っているという感じで
す。
またcontent.jsonのみで指示と上書きするデータを保持していることもあります。これは各MODによりけりなので、必要な場合と不要な場合があるくらいの認識で大丈夫だと思います。
SVE日本語訳ではまずSVE本体のデータを取得し、台詞や説明文などのゲーム内で見える部分だけに手を加えることで日本語化しています。なので本家SVEのバグが日本語訳でも発生することがあるのです。(コードや数値は触らないから)
JA(Json Assets)
同じく新たに追加されているアイテムですが、これはJAことJson Assetsを使って追加されています。またアイテムの画像や説明文、価格といったデータもこの[JA]フォルダに同梱されています。
さまざまなフォルダがありますが、中でも「i18n」が異彩を放っていますね。これには翻訳用のデータが入っています。
他のMODでも、この「i18n」があれば簡単に翻訳できる……という話はまたどこかでやるとして、SVEではここにja.jsonという日本語訳専用データを作成して翻訳をしています。
それぞれのフォルダですが、上から順に
クラフト品や装飾アイテム
作物の種と成長中の姿
料理や魚、実った作物
武器
といったものがそれぞれが含まれています。で、このフォルダを開くと個々のデータフォルダがいくつも入っていて、更に~と階層式になっているのです。もし「バターフィッシュ」の値段がおかしい場合は以下の様な確認手順になります。
この最後の「object.json」内には名前、説明、金額、誰の好物かなどの必要なデータがほぼ含まれています。(釣れる場所や魚の池用データはまた別)
料理の場合はそれに加えてレシピそのものや、ガスがレシピを販売する条件などが記載されています。
もしエラーが発生したら
大抵の場合、エラーが発生するとSMAPIが赤文字でそのエラーを教えてくれます。とはいえ、そのままでは読みづらいので公式のログパーサーを使いましょう。
Windowsの場合、キーボードのWindowsキーとRキーを同時に押すと検索ウィンドウが出てきます。そこに「%appdata%\StardewValley\ErrorLogs」と入力したらEnterキーを押して検索しましょう。
上記画像が表示されます。そうしたらこれをドラッグアンドドロップしてログパーサーに読み込ませます。
そうするとSMAPIが起動してから、ゲームを終了するまでの間に読み込まれたMODやそのほかのデータについて読むことができます。
そうするとゲームを起動した時点からのログを見ることができます。ざっくり赤文字の部分がエラーであり、その部分を翻訳などすれば内容が分かるはずです。
(もし「赤文字は見つけたけど具体的なことが分からない!」時は、私でよければお手伝いしますのでお気軽にお声がけください)
このエラーログはバグ報告時によく添付をお願いされます。なので、もしバグ報告や不具合に関して訪ねたい場合はそれに合わせてログのURLも貼っておくとまるいです。
エラーを防ぐためにできること
MODを導入する前に致命的なバグがないか確認する
前提MODが必要な場合、前提MODそのものにバグがないかも確認する
使用しているMODの更新が来た場合、変更ログや投稿欄の様子を見て一呼吸置いてから更新するかしないかを決める
自分が入れているMODの内容をしっかり把握しておく
MODが最新の環境に対応しているかを確認する
MOD製作者を信頼できるかどうかも大事
私が愛してやまないMOD「Sprite Master」は更新直後のバージョンは不安定なことが多く、結果的に前のバージョンの方が安定してるから~という理由で更新を待つことが多いです。
そうした情報共有はバグ欄よりも投稿欄の方が活発で、たまにバグの修正方法が載っていることもあります。
またMODの中には非公式修正版が出ているものも多く、他にも海外版5ch「reddit」でもスタバレMOD専用スレッドがあったりします。
やはり本家が海外ということもあり、正直日本語であれこれ探すよりも翻訳ツールを駆使して検索したほうが簡単に解決したりします。
↑スタバレの公式フォーラム、この中に非公式修正スレッドがある
↑スタバレMOD総合スレッド MOD名+bug辺りで検索するとたまにヒットする
とはいえ、結局のところMODは自己責任で導入するものです。
その為に一番大事なことは自分自身が使っているMODフォルダの中身を簡単にでもいいから説明できるくらいに把握しておくことです。
分からないMODの数だけリスクは増えますし、その逆も然り。
基本も基本!なところに着地しましたが今回はこれで締めます。
素敵なMODライフを!