公式 (Ironclad Games) が提供している SolarForge などの MOD ツールを使用したカスタムマップと MOD の作成方法について、入門レベルの内容をまとめています。
目次
- まえがき (対象読者など)
- マップエディター (SolarForge) のインストール
- マップ (シナリオ) の新規作成
- マップ (シナリオ) の編集
- マップ (シナリオ) の保存・動作確認
- 既成 MOD の導入方法
- 【上級者向け】MOD の作成方法
- おわりに
まえがき (対象読者など)
本記事は、Steam 等で配信されている宇宙ゲーRTS「Sins of a Solar Empire II」において
- マップを自作したい
- MOD を作成してパラメーターなどをいじってみたい
と考えているものの、英語の情報ばかりで方法がよく分からないという方向けの記事です。
しかし、本記事執筆時点 (2024-11-26) では、公式で提供されている英語の情報でさえも詳細なドキュメントは後日公開予定とされており、敷居もやや高くなっています。
また、公式が提供しているツールも、初心者向けに配慮されているとはいいがたいですので、PC の操作方法をある程度習熟していることが前提の内容です。(例:エクスプローラー等を使用したファイルの操作ができる、メモ帳等で文字コードを変更して保存することができる、等)
本記事は決して万人向けの記事ではありませんが、公式 (英語) も含めて情報が不足している中、1人でも多くの方がマップや MOD の作成ができるようになっていただければと思い、執筆させていただきました。(特に日本語としてはかなり貴重な情報ではないかと思っております)
動作確認時の Sins 2 バージョン
本記事執筆時点 (2024-11-26) では、Steam 版の v1.3 (タイトル画面右下のバージョン表記:1.30.4) にて動作確認を行っています。
将来のバージョンアップ (特に大型のアップデート) が行われた際に、本記事の内容とは異なる点が出てきたり、動作しなくなる可能性もあります。あらかじめご了承ください。
マップエディター (SolarForge) のインストール
読者の目的が MOD の作成のみであれば必ずしもインストールする必要はありませんが、Sins 2 の MOD にはマップ (シナリオ) を同梱することもできるようになっているため、まずは公式のマップエディター「SolarForge」のインストール方法から説明します。
SolarForge のインストール (Steam 版の場合)
Steam 版の Sins 2 をプレイされている方は、Steam クライアントからインストールするのが手っ取り早いです。
Steam のアプリ一覧の中に「ツール」が表示されるように設定を行うと、Sins of a Solar Empire II - Modding Tools という項目が表示されるようになるはずです。
インストールしていない場合、「Sins of a Solar Empire II - Modding Tools」がグレー色になっていますので、他のゲームをインストールするときと同様のやり方でインストールしてみましょう。
起動方法は、他のゲームアプリとほぼ同様で、プレイの代わりに「起動」と表示されているボタンをクリックするだけです。
SolarForge のインストール (Steam 版以外の場合)
Epic 版など、他のプラットフォームで Sins 2 をプレイされている方は、Ironclad Games 公式が公開している GitHub にあるものを直接ダウンロードして入手しましょう。
- Steam 版と比べて更新が若干遅れており、古い可能性がありますのでご注意下さい。
Code ボタンの「Download ZIP」からダウンロードし、デスクトップなどの適当な場所に解凍して使用すると良いでしょう。
エディターの実行ファイル (SolarForge.exe) は、SolarForge → bin の中にあります。
SolarForge の初回起動時の設定
Steam の「起動」ボタン、あるいは実行ファイル (SolarForge.exe) から直接実行した際、初回起動時には以下のようなメッセージ (No Sins2 Folder) が表示されます。
OK をクリックすると、Sins 2 フォルダーの場所を指定するダイアログが表示されますので、まずは Sins2 本体がインストールされているフォルダーの場所を確認する必要があります。
Steam を使用している方は、Sins 2 のゲーム本体の右クリックメニューから、「管理」→「ローカルファイルの閲覧」を選ぶのが手っ取り早いです。(Epic 版など、他のプラットフォームを使用されている方は、申し訳ありませんが自力で調べて下さい…)
上記の方法で Sins 2 のフォルダーの場所を開いた後、エクスプローラーに表示されているファイルパスをコピー (Ctrl + C または右クリックメニューからコピー) すると良いでしょう。
上記でコピーした Sins 2 本体のパスを、ファイルダイアログ側に貼り付けて「フォルダーの選択」をクリックすれば完了です。
エラーが表示される場合は…
Sins 2 のゲーム本体側がバージョンアップされた直後など、運が悪い場合は、以下のような json 絡みのエラーメッセージが 1 回~複数回に渡って表示されることがあります。
これは、マップエディター (SolarForge) 側の更新が間に合っておらず、古い場合に表示されるエラーメッセージで、大抵の場合は無視して「OK」をクリックするだけで、問題なくマップの編集を行うことができます。
- もしマップの編集自体ができなかった場合は……Ironclad の中の人による SolarForge 側のアップデートを待つしかありません。(ご愁傷様です……)
マップ (シナリオ) の新規作成
SolarForge の File メニューから「New」→「Scenario」と辿ることで、マップ (シナリオ) の新規作成を行うことができます。
公式でも「英語で」説明されているのですが、この状態では「ランダムマップ」のままになってしまうため、まずは「Bake Preview」という操作を実行する必要があります。
- Bake Preview とは何なのかを気にしてはいけません。おそらく開発チーム特有の用語だと思います。そもそも上記リンク先にある Topology という用語 (※たぶんフェーズレーンなども含めたマップ構造のこと) についても何も説明されておらず、私にも正直よく分かりません……
Bake Preview を行う前に Properties の中にある Skybox を「skybox_random」に変更する必要がありますので、下記のスクリーンショットを手掛かりに skybox_random に設定してみましょう。
- 上記の公式ドキュメント (英語) にも書かれているとおり、この操作は、将来のバージョンアップで不要になる予定とのことです。SolarForge が便利になるのを待ちましょう。
Bake Preview の操作は、Scenario メニューから行います。
ランダムマップでなくなる旨の確認メッセージが表示されますが、問題ないので「OK」をクリックしましょう。
何もないまっさらな宇宙の状態から編集した方がやりやすいでしょうから、既に存在している恒星を削除しましょう。Nodes の中に既に存在している「random_star」をクリックし、Delete キーを押すと、惑星も含めたすべての星が消滅するはずです。
以下のように、マップ (宇宙) がまっさらな状態になっていれば OK です。
マップ (シナリオ) の編集
まずは、Name (マップ名)、Description (説明)、Player Count (プレイヤー数) を設定します。ここでは、例として以下のように設定します。
- Name には「:test map」を入力
- Description には「:test setsumei」を入力
- Player Count には「2」を入力
なお、最初に「コロン」(:) を含めている理由は、公式ドキュメントにも書かれているとおり、他言語への翻訳 (ローカライズ) を無効化し、入力した文字がそのまま表示されるように指定するためです。
- 多言語対応ついては、対応するのが非常に面倒なので、本記事では割愛いたします。
- また、日本語の文字など、英語以外の文字を入力すると文字化けが起こります (おそらく SolarForge 側のバグ) ので、必ずアルファベットや数字のみで入力するようにして下さい。
恒星の追加
マップ名、説明、プレイヤー数を設定したら、次はマップ上に「恒星」を追加してみましょう。
ここでは、例として赤色巨星 (random_red_star) を追加してみます。まっさらなマップ上を右クリックし、「random_red_star」を選択すると、恒星が追加されるはずです。
惑星の追加
惑星 (地球や小惑星など) も同様の操作で追加できます。
以下のように、恒星の周りに、各プレイヤー・NPC 用の母星 (player_home_planet) を 4 つと、中立の小惑星 (random_asteroid) を 2 つ追加してみましょう。
- なお、各惑星間の距離は、マップ上のグリッド線の 1 マス分くらいにすると程よい感じになります。
プレイヤーの母星の設定
ひととおり惑星を追加したら、次は各プレイヤーの母星を設定します。
プレイヤーの母星にするためには、OwnerPlayerIndex を 0 から順番に、一意に (つまり、番号が被らないように) 設定する必要があります。
ここでは、以下の例のように、恒星の左上と右上にあるそれぞれの母星に 0 と 1 を設定してみましょう。
- 各プレイヤーの開始母星の位置はランダムで決まるため、必ずしも「0 = プレイヤー1」、「1 = プレイヤー2」のようになるとは限りません。
- もし、0から順番にプレイヤーの位置を「固定」で割り当てたい場合は、別途、後述の「ArePlayerSlotsRandomized」を False に設定する必要があります。
海賊の母星の設定
次に、海賊の母星を設定してみましょう。
母星 (player_home_planet) を海賊に割り当てるためには、NPCName を「pirate」に設定する必要があります。
- 海賊が居ないマップを作りたい場合は、海賊用の母星 (player_home_planet) を配置することも含めて、本手順は不要です。
味方第三勢力 (メタル、クリスタルの売買勢力) の母星の設定
海賊以外にも、最低限、味方の第三勢力が居ないと、メタル、クリスタルの売買ができなくなりますので、設定してみましょう。
母星 (player_home_planet) をメタル、クリスタルの売買勢力に割り当てるためには、NPCType を「FriendlyFaction」に設定する必要があります。
- 他にも、例えば「復興アラクサイ王朝」のように敵の第三勢力も居たりしますが、本記事では割愛いたします。
フェーズレーンの設定
フェーズレーンが無ければ、当然フェーズジャンプができなくてゲームが進行不能になりますから、すべての星間が必ずどこかしらと繋がるように設定してみましょう。
2つの星の間にフェーズレーンを引くためには、片方の星 (どちらでも可) をクリックして選択した状態で、Ctrl キーを押しながらもう片方をクリックします。
とりあえず以下のように、合計 6 本のフェーズレーンを引き、マップを完成させてみましょう。
マップ (シナリオ) の保存・動作確認
作成したマップで遊ぶためには、当然、セーブしなければなりません。マップの保存は、File メニューの Save As... から行います。
Sins 2 のゲーム本体からマップを認識されるようにするためには、以下の場所にマップを保存する必要があります。
%LocalAppData%\sins2\drop_in_scenarios
上記のパスをコピーして、ファイルダイアログ上に貼り付け、Enter キーを押して保存先に移動してみましょう。(※ %LocalAppData% の部分は、自動的に C:\ユーザー\(ユーザー名)\AppData\Local など、Windows の設定などに合わせて置き換えられます)
指定のフォルダーパス (drop_in_scenarios フォルダー) に移動できたら、ファイル名を入力して保存します。ここではとりあえず TestMap と入力します。
これで、Sins 2 ゲーム本体を起動すれば、保存したマップが認識される状態になったはずです。
実際にプレイして、マップの構造が思ったとおりになったかを確認してみましょう。
- 敵 CPU を「簡単 AI」などに設定した状態で、初期状態で配置されているスカウトに偵察させるのが一番楽でしょう。
- Sins 2 ゲーム本体側で微調整が行われるため、マップエディターの配置どおりには厳密にならず、以下のように惑星の位置が微妙にずれることが多いです。
各プレイヤーの開始母星の位置を固定化するには…
各プレイヤーの開始母星の位置をランダムではなく固定化したい場合は、以下の ArePlayerSlotsRandomized を False に設定してマップを保存すれば OK です。
- この設定を行うことで、「0 = プレイヤー1」、「1 = プレイヤー2」のように初期配置が固定化されます。
既存のマップを参考にしたり、改造する方法
ゲーム本体側の Sins2 フォルダー (Steam 版の場合、上の方で説明した「ローカルファイルの閲覧」で開くことのできる場所) の中に、「Scenarios」というサブフォルダーがあります。
この中にある、public_ で始まるファイルが、標準で組み込まれている公式のマップです。
- 例えば、public_agamemnons_bounty.scenario というファイルは、プレイヤー数 2 (1vs1) の「アガメムノンの遺産」のマップファイルです。
これらの既存のマップも SolarForge で開くことができます (File → Open...) ので、参考にしたり、これらをベースに改造するのも有りでしょう。
既成 MOD の導入方法
MOD の作成方法を説明する前に、まずは既成の MOD を導入する方法を理解しておいた方が良いですので、筆者が作成したチート用 MOD を例に導入手順を説明します。
以下の MOD (cheat_mod.zip) をダウンロードして導入すると、本記事先頭のサムネイル用画像にもあるとおり、大量の初期資源 (希少資源も含む) とタイタン、キャピタルシップ群が配置される「TEC チート派」という新陣営が追加されます。
(決してサムネイル詐欺などではありません。思う存分、チートを楽しみましょう!!!!)
- cheat_mod.zip (15,888 bytes)
MOD (cheat_mod.zip) の導入手順
MOD の置き場所は以下のとおりです。
(マップファイルを置いた drop_in_scenarios フォルダーと同じ階層にあります)
%LocalAppData%\sins2\mods
上記のパスをエクスプローラー等に貼り付け、cheat_mod.zip を解凍した中身のフォルダー (cheat_mod フォルダー) を、以下のような階層構造になるように配置すれば OK です。
上記の場所に配置した MOD は、Sins 2 ゲーム本体を起動したうえで、以下のスクリーンショットの手順 (Mod → Mod 管理 → 有効化したい MOD 右側の「+」ボタン → 変更を適用) で有効化できます。
- 既に有効化した MOD を無効化する際は、右側にある MOD の「×」ボタンをクリックし、もう一度「変更を適用」を押せば OK です。
導入した MOD の動作確認
この MOD には、気持ち良くチート (つまり CPU プレイヤーをひたすらいじめる) ができるように調整した Cheat Mod Map という名称のマップも含まれていますので、MOD を有効化すると以下のマップも出現するはずです。
以下のように「TECチート派」という新陣営が選べるようになったことを確認してみましょう。
また、最高難易度である「勝利不可能 AI」が、CPU をひたすらいじめることに特化した「サンドバッグ AI」に置き換わっているはずですので、それも確認してみましょう。
さあ、これで、大量のクレジットとクリスタル、メタル、希少資源はあなたのものです!
初期配置されているタイタンと、隷下のキャピタルシップの大群達とともに、思う存分、敵 CPU を蹂躙しまくり、ストレス解消に励みましょう!!!!
【上級者向け】MOD の作成方法
細かく説明すると、かえって複雑になってしまうので、上記で有効化したチート用 MOD を例に説明していきます。
- テキストエディター (メモ帳など) をもちいたテキストファイルの編集作業などに習熟していることが前提の「上級者向け」の内容となっていますので、PC (Windows) のスキルに自信のある方だけ試すようにして下さい。
- 陣営名や説明文など、文章を入力できる箇所に関しては、日本語などの国際化対応文字を入力することができます。この場合、ファイルの保存時に文字コードを UTF-8 として保存する必要がありますので、ご注意ください。
MOD のフォルダー構造
MOD のフォルダー構造は、ゲーム本体側のフォルダー構造 (例えば Steam 版だと、既説の「ローカルファイルの閲覧」で開くことのできる場所) と同一の構造になっています。
つまり、MOD として書き換えたいファイルだけをゲーム本体からコピーしてきて、MOD フォルダー側で編集することで、独自の MOD の作成ができるようになっています。
- 洋ゲーだと、昔から頻繁に採用されているおなじみの手法ですので、他の洋ゲー用の MOD を制作した経験のある方なら、この情報だけでも大抵のものは作れると思います。
新陣営 (TEC チート派) の追加方法関連
新陣営の追加は、entities フォルダーの中にある player.entity_manifest を編集することで行います。
- 他の多くのファイルが「上書き」方式であることに対し、player.entity_manifest は「追記」方式になっている点に注意して下さい。(つまり以下の "ids" に指定した内容が、オリジナルの Sins2 側の "ids" の末尾に「追加」される仕組みで、「削除」はできません)
{ "ids": [ "trader_loyalist_cheat" ] }
新陣営の具体的な定義については、上記で追記した名前と同じファイル名で、拡張子が .player になっているファイルとして用意する必要があります。
既存の陣営の定義ファイルをコピーしたうえで、それを書き換える方法が最も簡単ですので、筆者は Sins 2 本体側の trader_loyalist.player をコピーして、MOD フォルダー側に trader_loyalist_cheat.player として作成する方法で作成しました。
どこを書き換えたのかは、テキストファイルの差分確認ツール (フリーソフトだと WinMerge や DF 等) で確認していただきたいのですが、例えば初期資源関連 (クレジット、クリスタル、メタル、希少資源) では以下のところを書き換えています。
(以下は WinMerge による比較例。左側が MOD 用に書き換えたもので、右側がオリジナル)
また、uniforms フォルダーの player.uniforms ファイルにも、同様の追記が必要です。
こちらのファイルは「上書き」方式になっていますので、オリジナルの Sins 2 フォルダー側から「player.uniforms」を丸々コピーしてきたうえで、trader_loyalist_cheat の行だけを追加してあげるという作業が必要になります。(WinMerge 等で比較されることをおすすめします)
MOD 用の追加マップ関連
drop_in_scenarios フォルダーの代わりに、MOD 内の scenarios フォルダーに入れることで、その MOD 専用のマップとして扱われるようになります。
加えて、scenarios フォルダーに追加したマップは、uniforms フォルダー内の scenario.uniforms ファイルにて、以下のようにマップファイル名と同じものを定義することで、MOD 側から認識できるようになります。
- 新陣営の追加方法と同じようなノリだと思っていただければ OK です。つまり scenario.uniforms も「追記」方式のファイルとして扱われており、既存マップの「削除」はできない仕組みになっています。
{ "scenarios": [ "cheat_mod_map" ], "fake_server_scenarios": [] }
AI 挙動の書き換え関連 (勝利不可能 AI → サンドバッグ AI)
uniforms フォルダー内の player_ai.uniforms ファイルを書き換えることで、AI の挙動 (AI の行動を決定するための各パラメーターなど) を書き換えることができます。
- こちらは「上書き」方式のファイルであるため、オリジナルの player_ai.uniforms をコピーしたうえで、書き換えを行っています。
オリジナルの勝利不可能 AI よりも資源ボーナスを増やしまくっていますが、Easy や Medium 側で定義されている内容を一部コピーしてきたうえで、数値を書き換えることで、「生産した戦力を逐次投入してくる」弱い AI に書き換えています。
- 戦力の逐次投入を制御しているパラメーターが fleet_will_probably_defeat_ratio_range (=勝てる見込みがある場合に戦場投入する確率の幅) の設定です。0 に近ければ逐次投入寄りの行動が多くなり、1 に近ければ準備が整うまで攻め込まない AI となります。(Hard 以上はこの設定が省略されているため、基本的には「1」相当の挙動となります)
- いくら Impossible (=勝利不可能) AI と言えど、下級工場や上級工場で生産されたばかりの艦を逐次投入してくるようでは、容易に各個撃破できますので、まさに「サンドバッグ」な挙動であると言えます。
.mod_meta_data ファイルの作成
各 mod のルートフォルダー (今回の例では cheat_mod フォルダーの直下) には、必ず「.mod_meta_data」という拡張子のみのファイルを用意する必要があります。
中身は、必ず以下の内容にします。
(このあたりは英語の公式ドキュメントにも書かれているとおりです)
{ "compatibility_version": 2 }
その他詳細情報
公式ドキュメントもまだ未完成であり、情報も不足していますが、各ファイルの JSON スキーマ定義は公式 GitHub 上に公開されていますので、参考にすると良いでしょう。
- 実は、今回のチート用 MOD で希少資源の初期値を設定する際も、このスキーマ定義があったからこそ実現するための手掛かりがつかめました。(オリジナルのゲーム側の Sins2 フォルダーには default_starting_exotics が含まれていないため、JSON スキーマが無ければ情報が得られませんでした)
- 他にも、上記の JSON スキーマの中にしか定義されていないパラメーターもあると思われますので、本格的な MOD 作成を試みたい方は、是非とも上記の JSON スキーマを参考にしてみましょう。
- もちろん、mod.io なども含めて、既に一般公開されている既成のユーザー MOD を参考にするのも良い方法です。
- なお、筆者は使用したことはないのですが、JSON スキーマ定義を読み込ませて、そのとおりの書式の JSON ファイルを出力できるフリーソフト等もあるようですので、本格的な MOD 制作の際は、それらのソフトの活用も検討してみると良いかもしれません。
おわりに
本記事では、Sins 2 (Sins of a Solar Empire II) のマップおよび MOD の作成方法について、基本的なところ (目的としては、最低限のマップや MOD の作成ができるようになること) を説明してきました。
これは他の洋ゲーでも同様ですが、一般的にマップ作成や MOD 作成の敷居は高いと言えますし、日本語の情報もなかなか得られないのが実情なので、マップや MOD を作るための最低限の情報を得るだけでも困難が伴うことだと思います。
本記事は、せめて、このような「最低限の情報」だけでも、「日本語で」得られるようにすることを第一の志向して執筆いたしました。
本記事が、Sins 2 のマップ作成、MOD 作成のための手掛かりになっていただければ幸いです。