「Crusader Kings III」新DLC「West Slavic Attire」発売は11月27日!

「Hearts of Iron IV」開発日記2021年10月20日――Mod制作の変更点

HoI4 開発日記

「Hearts of Iron IV」開発日記2021年10月20日分が公開されていましたので、その内容をご紹介。今回は新機能のスクリプトについて。1.11「バルバロッサ」リリース前の開発日記です。

前回:開発日記2021年10月13日――将校団のまとめとAIの改善


スポンサーリンク

開発日記

開発日記2021年10月20日は、新機能のスクリプトについて。

  • 今回は1.11で登場する新機能でMod制作者が受ける影響とその使い方について。新たなスクリプトコマンドやデータベースの変更を聞いてもあまり楽しくない方向けに簡単に説明すると、ゲームの処理方法にいくつかの基本的な変更を加えたため、お気に入りのModのアップデートには時間がかかるだろう。一方で、こうした変更は今後面白い可能性をもたらす。
  • みなさんが発売日を期待してここを見ているなら、もう少しだけ我慢していただきたい。アナウンスまであとわずかのところまで来ていることはお約束できるが、今日ではない。

キャラクター

  • おそらく最大の変更点はバックエンドでの人間の扱いだ。現在リリースされているバージョンでは、ゲームには人の概念がなく、国家指導者、軍の司令官、政治・軍事顧問、諜報員としか認識していない。国家指導者が将軍でもあるような場合は手動で処理しなければならず、国家指導者が削除されたのに将軍は忘れられているなど、多くのバグにつながっている。
  • 私たちはゲームのこうした部分を抜本的に見直し、キャラクターを導入した。これにより、ゾンビの将軍になり得る数を劇的に減らした。

  • キャラクターはcommon/characterフォルダに定義されており、その定義はこのようになっている。

  • すべてのキャラクターは将軍(corp_commander)・顧問・国家指導者など、彼らが就任し得るさまざまな役割の入れ物として定義される。技術的な問題から諜報員は別枠となっている。キャラクターレベルでは、名前や性別などが扱われる。つまりキャラクターの名前をローカライズできるようになり、名前ではなくIDでキャラクターを参照できるようになった(これは英語以外の文字を含むキャラクター名で大変役に立つ。これによって一部のトリガーやエフェクトが壊れていたためだ)。

  • また、粛清などでキャラクターが取り除かれた場合、そのキャラクターが就いていたすべての役割からも自動的に取り除かれ、そうしたシステムをスクリプト側で行うのが非常に簡単になる。また、ジューコフが国家指導者になれるようにするには、characterファイルに上のように国家指導者の役割を追記するだけでよい。

  • このベリヤのように、国家方針・イベント・ディシジョンなどで後から役割を追加することもできる。
  • ポートレートや名前などは既に処理されているため、キャラクターを新たな役割に就かせる際の混乱や二度手間が大きく減る。ポートレートが壊れていても、1か所修正するだけで済む。
  • キャラクターを定義した後は、ゲームに追加するために国家のhistoryファイルで雇用する。最初のスクリーンショットにあるように、司令官については存在させたくない場合、visibleトリガーを使って表示しないようにできる。

  • キャラクターが国家指導者になり得る場合は、上のようにpromote_characterエフェクトを使う。これは現在リリースされているバージョンの書き方とは明らかに異なる。create_country_leaderなどの古いスクリプトもまだ使えるはずだが、統合されたキャラクターシステムの恩恵は得られない。

  • Mod制作者ができるようになる他のことについてもご紹介しよう。まず、キャラクターにフラグを設定したりチェックしたりできる。

  • 完全に新しい顧問を作ることなく、顧問の特性を変更できる。

  • あるキャラクターが特定のタイプのキャラクターであるかどうかをチェックできる。

  • キャラクターを変数として保存すれば、後でコンソールでデバッグメッセージをスパムするときなどに参照できる。

戦車デザイナー

  • 戦車デザイナーがバックエンドでどのように機能しているかについて説明する。モジュールやモジュールスロットなど、多くの概念を艦船デザイナーと共有しているが、それ以外の重要な点では少し異なる動作をしている。
  • システムは少数の車体(chassis。軽・中・重・超重・水陸両用・現代)しかないように見せているが、技術的にはそうではない。むしろシステムは動的に作成された他の車体のホスト全体を維持している。こうすることで、駆逐戦車の役割を持つ戦車設計が実際に駆逐戦車大隊などに配備されるようにしている。
  • しかし、こうした動的な車体はベースとなる車体から生成されるため、すべての変更は引き継がれる。

  • 役割の有効化・無効化は個々のモジュールで行う。

  • 新たなモジュールカテゴリーのアンロックのために、これをモジュールに使うことができる。(? 意味がよくわからず)

鉄道

  • 鉄道は他の建造物とは異なる機能を持っている。技術的には要塞のようなプロヴィンスの建造物だが、実際には2つのプロヴィンスをつなぐ建造物に近い。2つの補給結節点の間でもっとも低いレベルの鉄道が2つの補給結節点間の鉄道レベルを決める。

  • 史実の鉄道設定の変更や維持をしやすくするため、コンソールのnudgeコマンドでアクセスできるnudgerツールに鉄道を描くオプションを追加した。この鉄道設定はnudgerの補給メニューにある。参考となる地図を探すことも含めて(テスターの方々にも助けていただいた)、1936年のセットアップ全体を行うのに1週間半ほどかかった。

  • スクリプトから鉄道を追加したい場合はbuild_railwayというエフェクトが用意されている。これには多くのオプションがあるが、もっとも基本的なものはひとつずつ通るプロヴィンスを列挙することだ。

  • これは長い鉄道、特に正確な経路にこだわらない場合については明らかに面倒だ。この場合は始点と終点のプロヴィンスを定義するオプションがある。

  • プロヴィンスを探すのが面倒だったり、ある程度ダイナミックにしたい場合は、始点と終点のステートを使うこともできる(建設するレベルも指定できることに注目してほしい)。
  • 注意してほしいのは、このふたつを混在させて、例えば始点となるプロヴィンスと終点となるステートを指定することはできないということだ。

  • また、can_build_railwayやhas_railway_connectionなどの対応するトリガーもある。前者は2点間に鉄道が建設できるかをチェックし、後者はそのような接続が既に存在しているかをチェックする。

  • 最後に、has_railway_levelは指定されたステートがに指定されたレベルの鉄道があるかをチェックする。

その他の新たなエフェクト・トリガー・補正

  • 上記のものに加えて、みなさんが役に立つと思うであろうものを追加している。
    • building_cost_factor:建造物の建設コストに影響する新たな補正。これは00_buildingsファイルから建造物を取得するため、建造物を追加するModでも機能するはずだ。

    • core_stateのスコープリストでは、国家の中核ステートでエフェクトやトリガーを実行できるようにする。
    • Add_equipment_to_stockpileエフェクトでは正しい種類の装備を追加できるように派生型の名称を扱えるようになった。

質疑応答

Q:Modで補給結節点からのトラックが燃料を消費するようにできる?

A:できない。

Q:キャラクターの名前がソフトコード化されるということ? そうだとしたら、日本からたくさんの愛を込めて、遂に名前をローカライズできる。

A:そういうことだ。


次回:開発日記2021年10月27日――ロードスクリーンのアートその他

スポンサーリンク

コメント

  1. >日本からたくさんの愛を込めて、遂に名前をローカライズできる。

    ワロタwww

  2. 11月23日(日本時間11月24日)発売だそうです。
    https://store.steampowered.com/app/1348661/Expansion__Hearts_of_Iron_IV_No_Step_Back/

    • おっ、そうですか!
      そういやここで「発売日はウラヌス(11/19)じゃないか」と予想してた人がいたな
      11/23だったわけだが、ウラヌス作戦て調べてみたら11/23で終了ってことになってる
      ってことは、ある意味でこの人の予測も当たってたわけか

  3. 人物がキャラクター単位で設定されるってことは、ついにアウグストゥスもドイツに暗殺されてしまうってこと?

  4. 人物がキャラクター単位になるってどういう意味なんだろう
    今まではそうじゃなかったのかな

    • 例を出すと、理論家の顧問グデーリアンと将軍のグデーリアンはゲーム内では別人として扱われていた、それを今回のアプデで「キャラクター」というシステムを導入して、ゲーム内で同じ「グデーリアン」という同一人物として扱える様になったということ。

      • なるほど!ようやく理解した
        ありがとう

  5. このキャラクター化はかなり面倒なリファクタリングがあったんだろうなあと想像する……クラスの継承関係を想像するだけで頭が痛いw
    でもおかげで人物関連のmoddingはとても楽しくかつ楽にできそうだ.内戦での将軍の行き来もなんとかしてくれるかな?(ヴィシーフランスでドゴールが使えたりとかの問題)

タイトルとURLをコピーしました