Modding

Last-modified: 2020-10-19 (月) 13:56:35

Modding

MODを自作したい人向けの内容です。
作れるだけ作っておくので後で誰かきれいにまとめてね(投げやり)。

これ見てもよく分からない場合は英語版wikiかフォーラム見ることをオススメします。

ディレクトリまわり

SteamWorkshopのMOD格納場所

Steam Workshopから導入したMODは大抵の場合、

Cドライブ直下にインストールしているなら

C:\Program Files (x86)\Steam\steamapps\workshop\content\294100

Cドライブ以外の場合は

ドライブ名:\SteamLibrary\steamapps\workshop\content\294100

に入ってると思います。

またMacでは

/User/ユーザー名/Library/Application Support/Steam/steamapps/workshop/content/294100

(隠しファイルを表示する設定にすれば辿り着けます)

に入ってるはずです

自作MODの格納場所

Rimworldをインストールしたフォルダ内にModsというフォルダがあるので
その中に作ったMODを入れて下さい。

ディレクトリ的には以下となります。

C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods

Cドライブ以外の場合は

ドライブ名:\SteamLibrary\steamapps\common\RimWorld\Mods

Macでは

/User/ユーザー名/Library/Application Support/Steam/steamapps/common/RimWorld/RimWorld.app/Mods

※Modsフォルダ内にCoreフォルダがありますがこちらには入れないで下さい。

補足

MODを導入していれば294100フォルダ内に色々な数字フォルダが追加されます。
この数字がWorkshopにアップロードしたMODの登録番号となります。
※例えば294100はRimworldのアプリ番号(ストアページのURL末尾番号と同じ)です。なので

steamcommunity.com/sharedfiles/filedetails/?id=××××

この××××に入るのが294100フォルダ内の番号フォルダ名を入れてあげると
そのMODのWorkshopページに飛ぶことが出来ます。

※他人が作ったMODを解析したい場合はこの方法で探すといいです。
それ以外でMODの作り方を模索する場合はRimWorld\Mods\Core内(特にDefs)を見てみると良いです。

MODの構成

MODのフォルダ構成は以下のようになります。
絶対に必要なものは赤字にて記述。

YourModNameAbout
│├About.xml
│└Preview.png
├Assemblies
│└ProjectName.dll
├Defs
│└(..)
├Languages
│└English
│ └Strings
│  └NameBanks
├Sounds
├Source
│└ProjectName
│ └ProjectName.sln
└Textures

一連のフォルダをModsフォルダに入れることでMODとして認識されます。
※厳密には明確な決まりはありませんがこう分けておくと他者から分かりやすいようです。
但しTexPath等のパスまわりの話が出てくると一概にはこうではないのかも?

YourModName
これは自分が作ったフォルダ名を記述しておけば良いです。
Workshopへアップロードした後は上項の数字フォルダに名前が置き換わります。
About
ここに自分が作ったMODの名称、説明文、バージョン表記などの説明が入ります。
Assembly/とSource/
C#でプログラミングを行う場合のみ使用します。
Sourceフォルダは(ライセンスによっては必要になりますが)配布するときにはなくても構いません。
Defs/
ここにXMLで記述したソースコードが入ります。
自作のアイテム等を追加する場合はほぼこのフォルダは必須です。
Languages/
言語を追加する場合はここに入れます。
Sounds/とTextures/
音声や画像を付けたい場合はここに入れます。

自作MODのアップロード方法

  1. 自作MODをModsフォルダに突っ込み、バグ無く動作することを確認する
  2. メイン画面のオプションボタンから開発者モードにチェックを付ける
  3. MODから自作MODを選択し、Upload on Steam Workshopを押す
  4. 説明に従ってアップロードを実行する
  5. Workshopの内容と公開設定を設定し完了

XMLのみでのModの作成

作例:髪型追加MODを作る

必要なもの

MODフォルダ

  • About
    • About.xml
    • Preview.png
  • Defs
    • 適当な名前.xml
  • Textures
    • Hairs
      • ○○○○_back.png
      • ○○○○_front.png
      • ○○○○_side.png

About.xml

<?xml version="1.0" encoding="utf-8"?>
 <ModMetaData>
    <name>MOD名称</name>
    <author>作者名</author>
    <url>WorkshopのURLなど</url>
    <targetVersion>バージョン表記</targetVersion>
    <description>MODの説明文</description>
 </ModMetaData>
name
MODの名前を入れて下さい。
author
MOD作者名を入れて下さい。
url
フォーラムかワークショップのURLを入れるのが一般的です。
targetVersion
動作させるRimworldのバージョンを記入して下さい。
A16で動作させるのであれば現行の0.16.1393と書いておけばいいでしょう。
このバージョン表記が使用バージョンと合ってないとMODを動かせません。
逆にいえば作者の更新が止まっていてもこのバージョンを書き換えれば動くMODもあります。
description
MODの説明文を入れて下さい。

Preview.png

637*358のPNGファイルを入れて下さい。

適当な名前.xml

<?xml version="1.0" encoding="utf-8"?>
<DefPackage-HairDef>
 <HairDef>
   <label>髪型の名前</label>
   <hairGender>男性用か女性用か共用か</hairGender>
   <texPath>Hairs/○○○○</texPath>
   <defName>defの名前</defName>
		<hairTags>
			<li>ヘアータグ</li>
		</hairTags>
  </HairDef>
</DefPackage-HairDef>
label
実際に表示される髪型の名前となります。
hairGender
この髪型が使える性別を記入します。
男性用ならMale、女性用ならFemale、共用ならAnyと記入。
※頭文字は必ず大文字で書いて下さい。
defName
labelで付けた名前と同じでも良いです。
但し複数追加する場合は名前に被ると不味いっぽい?
hairTags
素生によって選ばれる模様?
いくつか種類がありますが判らなければ、Urbanと記入します。
他のタグにはPunk、Rural、Tribalなどがあります。
※頭文字は必ず大文字で書いて下さい。

○○○○_back_front_side.png

一つの髪型を追加するのに三枚の画像が必要です。
120*120(ビット深さ32bit)のPNG形式で作成して下さい。

  • ○○○○_back.png …後ろ向き姿時の髪型
  • ○○○○_front.png …前向き姿時の髪型
  • ○○○○_side.png …横向き時の髪型

texPathは必ず○○○○で揃えて下さい。

C#を用いたModの作成

開発環境

C#でModを作成する際にオススメのIDE(統合開発環境)になります

IDE対応OS詳細ダウンロードページ
Visual StudioWindows/Mac有償版、無償版、トライアル版がある。おそらく最も有名なIDE
小規模なチームや個人ではVisual Studio 2015を無料で利用できます
Mac用には無料のPreview版がリリースされています
Download(Win)
Download(Mac)
SharpDevelopWindowsC#用に作られたフリーのIDEですDownload
XamarinMac無償ですがDLに登録が求められます
Macでのみの動作になります
Visual Studio for Macと全く同じ機能になので好みの方をご利用ください
Download
MonoDevelopWindows/Mac/Linuxカスタマイズ可能なUIを備えたフリーのクロスプラットフォームIDE
リンク先のWindows/Mac版はXamarin Studioなので
Xamarinの登録が嫌な方はこちらを直接入れても良いかもしれません
Download

開発の準備

新規Modを作る際は.NETのライブラリとして作成するか有志によってつくられたテンプレートを利用するかのどちらかです
ここではライブラリとして作成する方法を記載します
有志によってつくられたテンプレートは英語ですがLudeon公式フォーラムにありますのでこちらのリンクから参照してください
[Tutorial] (Alpha 15c) How to make a .dll-mod (Power Generation)

  1. プロジェクトの作成
    1. 前項の開発環境にあげたIDEなどC#を扱えるIDEを起動する。
    2. メニューバーにあるファイル(File)→新規(New)→ソリューション(Solution)を開く。
    3. C#や.NETにあるライブラリ(Library)かクラスライブラリ(Class Library)を選択する。(ポータブル(portable)は選択しない)
    4. Modの名前をつける
    5. 場所(location)にSourceディレクトリを指定する。
      YourModName/Source
    6. 好みでソリューションのディレクトリを作成する(Create a directory for solution)/ソリューションのディレクトリ内にプロジェクトを作成する(Create a project within the solution directory)を無効にする
  2. Assembly-CSharp.dllとUnityEngine.dllを追加する
    1. 参照(References)をダブルクリックで開く
    2. .NET Assembly Browserのタブで"Browse..."をクリック
    3. Windowsでは、Steam版でCドライブ直下にインストールしているなら
      C:\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin_Data\Managed
      Cドライブ以外の場合は
      ドライブ名:\SteamLibrary\steamapps\common\RimWorld\RimWorldWin_Data\Managed
      Macでは
      /User/ユーザー名/Library/Application Support/Steam/steamapps/common/RimWorld/
       RimWorld.app/Contents/Resources/Data/Managed
      にある
      Assembly-CSharp.dll
      UnityEngine.dll
      を追加してOKを押す
    4. 追加した.dllを右クリックして"Local copy"を無効にする
  3. ターゲットフレームワークを.NET 3.5に変更する
    1. プロジェクトをダブルクリックしてオプションを開きターゲットフレームワーク(Target framework)を.NET 3.5にする
  4. 1つのファイルのみをビルドする
    1. プロジェクトのオプションを開きDebug infomationをなし(None)にする
  5. アセンブリフォルダへ出力する
    1. プロジェクトのオプションを開き出力(Output)のディレクトリを..\..\Assemblies\(YourModName/Assemblies)に変更する

注意: Monoフレームワークを利用してるユーザー

.NET 4.xではRimWorldのModは使えないため.NET 3.5があるMonoが必要
しかし.NET 3.xはMonoのかなり古いバージョンから探す必要があるのでModding以外に.NET 3.5を要するものがないのであれば.csprojファイルをテキストエディタで開いてTargetFrameworkVersionをv3.5に変更し、Assembly-CSharp.dllと同じディレクトリにある

System.Core.dll
System.Xml.Linq.dll

などを追加することで作れるようになります
また、プロジェクトのオプションにあるビルド(Build)→一般(General)のUse MSBuild build engine (recommended for this project type)を無効にしてください

コメント

最新の10件を表示しています。 コメントページを参照

  • このページを作ってくれた方に、心から感謝。 -- 2017-08-08 (火) 20:53:07
  • もうだいぶ古いから髪型追加だけども苦労した点を、_back_front_side.pngはnorth_ -- 2019-12-21 (土) 14:16:59
    • _back_front_side.pngはnorth_south_eastに、<DefPackage-HairDef>は<Defs>に、現行でも動いてるMOD参考にするのが一番早いか -- 2019-12-21 (土) 14:18:55
  • これからModdingする人へ -- 2020-10-02 (金) 16:37:14
    • 公式Core(\SteamLibrary\steamapps\common\RimWorld\Data\Core)を参考にすれば大体できるので -- 2020-10-02 (金) 16:38:01
  • ここにHarmonyの使い方(小技含めた詳細)とか作っていいかな?日本語の解説が無い上に英語のページでも○○ってどうすりゃ良いの?みたいなのが多い -- 2020-10-16 (金) 19:47:39
    • 最近Moddingに興味が出て色々知りたいので作ってもらえるとだいぶ助かります -- 2020-10-19 (月) 13:56:35
お名前: URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White