MODを作ろう!「Stellaris」編 第6回――惑星の改造その2とテラフォーミング

stellaris-modmaking6-top

前回詰まっていた惑星の補正に関する問題から。

前回:「Stellaris」編 第5回――FTL関連の作業その3と惑星の改造


スポンサーリンク

火星の改造(続き)

結論から言いますと、惑星の補正を盛り込むのは挫折しました……。

2016/08/10追記:ツイッターにて情報提供と検証をしていただき、on_press_beginを使う方法で惑星補正を追加することに成功しました! 本当にありがとうございます。

火星の設定に直接書き込む

stellaris-modmaking6-mars

最初に、このような設定をprescripted_species_systems.txtに記入してみましたが、これはうまくいかず。"low_gravity"のところを"pm_low_gravity"としてもダメ。

原因を探ってみますと、eventフォルダにあるgame_start.txtで規定されているgame_start.2というイベントが、ゲームスタート時に太陽系の惑星補正をすべて消去していることが判明。つまり太陽系は最初から惑星補正を記述していても、ゲームスタート時に消されてしまうので、このイベントの後になんらかの形で惑星補正を追加するという方式を取る必要があります

on_press_beginを使う

stellaris-modmaking6-mars2

次に、ツイッターにて情報をいただいた「on_press_beginを使う」という方法を試してみました。

このon_press_beginはcommon/on_actionフォルダにある00_on_actions.txtというファイルに記載があります。ゲームスタート時の「人類が20万年前に生まれて……」というあの画面で「開始」ボタンを押したときに発動するイベントを規定しているものです。

これにイベントIDを追加し、新たにファイルを作ってそれにイベントを記入するという方法を取ってみました。

stellaris-modmaking6-mars3

イベントの記述はこのとおり。上で書いたgame_start.txt内のgame_start.2というイベントを参考にしています。惑星のフラグを使っていますが、もちろん火星の記述のところでフラグを追加しています。

しかしながら、これもうまくいかず。

2016/08/09追記:この方法をご提案くださった方から、うまく惑星補正を追加できたという情報をいただきました。したがってアプローチとしては間違っていないようですが、私の環境で再現はできませんでした。いろいろと調べてみようと思います。

2016/08/10追記

stellaris-modmaking6-modifier

この方法をご提案くださった方のご厚意で、なぜ私の環境では再現できないのか検証していただきました。

その結果、どうやらイベントファイルの文字コードが原因らしいということが判明。localisationフォルダ内の.ymlファイルはUTF-8(BOMあり)だったので、イベントが記述されたファイルもUTF-8のまま編集していたのですが、どうやら.ymlファイル以外はWindows-1252で記述されているということでした。

イベント作成時の具体的な方法としては、まずゲームフォルダから適当なイベントファイルをコピーして記載内容をすべて削除し、そこに新たにイベントの記述を書き込むという方法がいいようです。

惑星補正を複数追加することもでき、それにはadd_modifierをコピペして補正を書き換えればOKです。

ツイッターにてon_press_beginを使うというアイディアをいただいたことをはじめとして、惑星補正の追加方法については、最初から最後までこの方法をご提案いただいた方にお世話になりました。まことにありがとうございました。

火星の設定でinit_effectに書き込む

stellaris-modmaking6-mars5

惑星の設定の部分にはinit_effectというものがあり、これはどうやらゲームが始まってから付与される影響を記載するところのようなのですが、ここにadd_modifierを記載してみました。

stellaris-modmaking6-mars4

その結果がこちら。なにか惑星補正がついているようではありますが、中身が消えてしまっています。というわけでこれもうまくいかず……。

ほかにも、戦略資源の設定などもうまくいかないようです。ここまでやって気力がなくなったので、この問題は一旦棚上げして次に行くことにしました。

テラフォーミング技術の改造

stellaris-modmaking6-terraforming

テラフォーミング技術はかなり序盤に出てくるようにするということだったので、技術のTierを1に設定し、コストも最小のtier1cost1に設定。

技術はこれでOKですが、これだけだとテラフォーミングには戦略資源が必要なままなので、このあたりもいじりましょう。

テラフォーミングに関連する戦略資源

stellaris-modmaking6-terraforming2

とりあえず海洋型惑星になれば充分住めるようになると思うので、極寒→海洋だけテラフォーミングガス・液状物質が不要になるように設定。

すべての惑星でこれが適用されてしまうので、本当なら火星固有の惑星クラス、例えば「火星(初期状態)」と「火星(海洋化)」などを設定して、その間のテラフォーミングならテラフォーミングガス・液状物質は不要などとするべきなのですが、だんだんめんどくさくなってきたので、とりあえずこれで行きます。

ひとまず完成

stellaris-modmaking6-folder

とりあえずMODに必要な要素は揃ったので、ひとまず完成です。ファイル構成はこのとおり。

ただ、公開できるクオリティでは当然ないので、しばらくテストプレイしてみて、既知の問題も含め、改良の余地を探ってみることにします。

対応バージョンの変更

stellaris-modmaking6-version

先日、「Stellaris」は1.2.3にバージョンアップされましたが、これに対応したMODであるということにするためには、.modファイル内のsupported_versionを変えてやればOKです。もちろん、MODの内容自体が問題ないか確認する必要はありますが、これで「このバージョンに対応してないよ!」と警告が出ることはなくなります。


というわけで、ちょっと短めですが、今回はここまでにして、しばらくいろいろとテストプレイしてみることにしようと思います。

それから、HoI4のMOD制作にも興味が出てきましたので、そちらのほうにも手を出してみようかなと思っています。

次回:MODを作ろう!「Stellaris」編 第7回――MOD、作りました!

2017/08/19追記:第7回で紹介しているMODには、ここまで説明してきたような内容の変更(FTL関連や惑星の変更)は含まれていない点にご注意ください。