作成の経緯
- 食中毒になったらベッドに向かうという、
Bed Rest For Food Poisoning
のmodを日本語環境で適用したいと思ったので、試行錯誤した
- なお、RimWorldのmodは今まで作成したことはないので、以下が正しいかも不明
- C#言語も、今まで扱ったことはない
調査
- 日本語の環境で、そのままの状態では、何も起こらないことを確認した
- コメントによると、
「This mod is not compatible with non English game environments. If you want it to be compatible, you need to translate "initial" and "major" in the DLL into your language.」
とのことで、日本語に翻訳する必要がありそうと思った
- modフォルダにソースファイルを発見した
- ソースファイル内に、
"initial"
と "major"
の文字列を発見した
[MustTranslate]
とも書いてあり、やはり翻訳が必要の様だった
- Assembliesフォルダに、DLLがある事を発見した。このMODはDLLの様だと思った
- xmlファイルはない様で、単純には日本語適用できそうにない気がした
"initial"
と "major"
が何を意味するのか不明だったが、どうやら、食中毒(初期症状)、食中毒(重大)
が、英語でFood posisoning(initial)、Food posisoning(major)
の様で、カッコ内の文字列に対応しているようだった
- 英語環境では、食中毒でベッドに行けることが分かった
- DLL内文字列をバイナリエディタでいじれるか試してみたが、やっぱり無理だった
- よって、日本語環境で適用するには、再コンパイルが必要である気がしたので、やってみた
Bed Rest For Food Poisoning 再コンパイル
Bed Rest For Food Poisoning
のmodフォルダのソースファイルを一式コピー(2567901366\1.5\Source
)
- プロジェクトぽいファイルを開き、以下環境設定する
- (ここは既にされている?)ソリューションエクスプローラーで、レンチアイコン[プロパティ]をダブルクリック
- [アプリケーション]
- 必要であれば、[アセンブリ] と [名前空間] の名前を任意の名前に変更
- [ビルド]
- [出力パス] を
..\..\Assemblies\
(または Assemblies フォルダーがある場所)
- 「詳細」を開き、「デバッグ情報」を「なし」に設定
- ソリューション エクスプローラーで「参照」を右クリックし「参照の追加」をクリック
- 「参照…」をクリックします。
- フォルダに移動
RimWorldInstallPath/RimWorld******_Data/Managed
- ファイル選択
Assembly-CSharp.dll
UnityEngine.CoreModule.dll
- 「追加」をクリック
- 「OK」をクリックして、参照マネージャーを閉じます。
- ソリューション エクスプローラーの「参照」内、
[Assembly-CSharp.dll]
と [UnityEngine.dll]
を右クリックし、[プロパティ] ペインをひらく
- [プロパティ] ペインにて、[ローカルにコピー] を [False] に設定する
- 同様に、HarmonyMod(https://github.com/pardeike/HarmonyRimWorld)のDLLも追加する
- HarmonyModを適当な場所にコピー
- 参照、追加で、
[0Harmony.dll]
、[HarmonyMod.dll]
を追加
- [プロパティ] ペインにて、[ローカルにコピー] を [False] に設定する
- ここで、リビルドしてみる
- ビルド後のコマンド
[powershell -ExecutionPolicy Bypass ....\Deploy.ps1]
が不明だが、Assemblies フォルダーにDLLが更新作成できていれば成功
"initial" 、 "major"
を、"初期症状"、"重大"
に変更、再リビルドし、DLLを入れ替える
- 日本語環境で、
食中毒(初期症状)、食中毒(重大)
でベッドに行けるようになっていたら完了
疑問点
- C#にて、DLLの参照は、DLL指定するだけで良いのか?
- C++の、ヘッダファイルやライブラリファイルは不要になったのか?
- RimWorldのmodは、”.NET Framework 4.7.2″である必要があるらしい
コメント