HoI4 開発者日記 第250回 Mod製作の変更 2021/10/20

スポンサーリンク
更新情報

Hearts of Iron IV 開発者日記 第250回目を紹介。

今回はMod製作の変更点についてです。

以下、パラドックスフォーラムの内容を意訳したものとなります。
正確を期すよう努めていますが詳細はパラドックスサイトの原文をお読みください。

[記事内の画像はパラドフォーラムより引用]

スポンサーリンク

Hearts of Iron IV 開発者日記 2021年10月20日分(第250回)

今回の日記担当はHoI4 コンテンツデザインのArchangel85さんです。

冒頭の挨拶

こんにちはNo Step backとVer1.11 Barbarossaの開発日記にようこそ。

本日は1.11で実装される新機能がMod製作者にどのように影響を与え、また利用できるかを紹介します。

新しいスクリプトコマンドやデータベースへの変更と聞いて、あまり興味が無い方のために説明すると次のようになります。
ゲームの処理方法に根本的な変更を加えたのでお気に入りのModがアップデートされるのに時間がかかるかもしれません。
その一方でこれらの変更は将来的にいくつかのエキサイティングな可能性をも可能にします。
もし今日の日記をリリース日について希望してやって来られたのでしたら、もう少しお待ちいただくことになります。
発表は近いと約束しますが今日は違います。

以下Mod製作についての説明となります。
管理人は詳しいところまでは分からないので、できる範囲での紹介となります。

Characters

おそらく最大の変更点はバックエンドでの人間の扱い方でしょう(ポニーの場合も同様ですその点に差別はありません)。
つまり現在のライブバージョンにおいてゲームには人という概念がないのです。
国の指導者、軍の指導者、政治的・軍事的アドバイザー、そして工作員についてのみゲームは知っています。
国の指導者が将軍でもあるようなケースは手動で処理しなければならず、国の指導者が削除されたのに将軍が忘れられていたなど、たくさんのエキサイティングなバグが発生しました。

今回キャラクターを導入することで、その面を一から見直しました。
これにより潜在的なゾンビ将軍の数を劇的に減らすことができ、ゾンビ以外の人々にも喜んでもらえると思います。

キャラクターはcommon/characterフォルダで定義され、その定義は次のようになります。

すべてのキャラクターは、将軍(corp_commander)、顧問、国のリーダーなど、遂行可能なさまざまな役割のコンテナ(容器)として定義されています。技術的な問題から工作員は独立したものとなっています。
キャラクターレベルでは名前や性別などが扱われます。
またキャラクターの名前をローカライズできるようになり、名前ではなくIDでキャラクターを参照できるようになりました(これは英語以外の文字を含むキャラクター名に大いに役立ちますーそしてこれがいくつかのトリガーと効果を壊していることが判明しました)。

これはまたキャラクターがゲームプレイから除外される(たとえばパージなどによって)と、そのキャラクターが持っていたすべての役割から自動的に外されるので、このようなシステムをスクリプト側で行うのが非常に簡単になります。
またZhukovに国のリーダーになることを許可する場合は次のように、キャラクターファイルに国のリーダーの役割を追加するだけで済みます。

また今回のBeriyaでやっているように、フォーカス、イベント、決定などで後から役割を追加することもできます。

つまりポートレートや名前などはすでに処理されているので、キャラクターを新しい役に就かせる際に必要な混乱や重複した作業が大幅に減ります。
壊れたポートレートの修正は5か所ではなく1か所だけで済みます。

キャラクターは定義されると、ゲームに追加するために国別の履歴ファイルに追加されます。
最初のスクリーンショットにあるように、ユニットリーダーには可視化トリガーを使用することで、表示させたくない場合は非表示にすることができます。

国のリーダーになる可能性のあるキャラクターはpromote_characterの効果を使って、次のように国のリーダーにします。

これはゲームのライブバージョンの慣習からは明らかな逸脱であり、あなたはこの効果を使って新しい国のリーダーを作成できます。
create_country_leaderなどの効果を持つ古いスクリプトはまだ機能しているはずですが、それでは統合されたキャラクターシステムの恩恵は全く受けられません。

それでは、この機能を使って実行できる他の機能について説明します!

キャラクターのフラグを設定したり、チェックしたりして、不正な目的に使うことができます。

まったく新しいアドバイザーを作成しなくても、アドバイザーの特性を変更できます。

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

コンソールコマンドでデバッグメッセージをスパムする用途など、後で参照するためにキャラクターを変数として保存できます!

戦車デザイナー

次に戦車デザイナーがバックエンドでどのように機能しているかについて説明します。
モジュールやモジュールスロットなど、シップデザイナーと多くのコンセプトを共有しています。
しかし他の重要な部分では少し異なる挙動をしています。

システムはわずかな数のシャシー(ライト、ミディアム、ヘビー、スーパーヘビー、水陸両用、モダン)しかないように見せかけていますが、これは技術的には真実ではありません。
代わりにシステムは動的に作成された他のシャシーのホスト全体を維持しています。
これにより駆逐戦車の役割を持つ戦車の設計が、実際に駆逐戦車大隊などに組み込まれるようになります。

ただしこれらのダイナミックシャシーはベースシャシーから生成されているため、変更は引き継がれます。

役割は個々のモジュールで有効化・無効化されます。

新しいモジュールカテゴリをアンロックするには、モジュールでこれを使用することで、そのカテゴリーのロックを解除することができます。

鉄道

鉄道は他の建物とは少し違った機能を持っています。
厳密には砦のようなプロヴィンスの建物ですが、実際には2つのプロヴィンスを繋ぐ建物に近いものです。
鉄道は事実上、2つのプロヴィンスを繋ぐ一連のものであり、その連鎖の中で最も低いものが2つの供給拠点間の鉄道接続レベルを決定します。

歴史的な鉄道の設定の変更と維持を簡単にするため、コンソールのnudgeコマンドを使用してアクセスできるnudgerツールに対して鉄道を描画するオプションを追加しました。

線路の設定はnudgerの供給メニューにあり、この方法で既存の設定に新しい線路を簡単に追加できます。
参照マップの追跡を含めた1936年のセットアップ全体を行うのに約一週間半かかりました(テスターの協力もありました)。

スクリプトを使用して鉄道を追加する場合は、build_railing効果があります。
多くの選択肢がありますが、最も基本的な選択肢は一度に1つのプロヴィンスに線路をレイアウトすることです。

これは長い鉄道の場合、特に正確な経路にはこだわらない場合には少し面倒です。
そのため、始点と終点のプロヴィンスを定義するオプションがあります。

このゲームはブロックチェーン(どうやって動いているのかさっぱりわからないですが、これはすごいと思う)を利用した高度なニューラルネットワークベースの自己学習アルゴリズムを用いて一方の端から他方の端までのパスを自動的に生成します。

プロヴィンスの検索に手間がかかる場合、またはある程度動的にする場合は、開始と終了の州を使用することもできます(構築する接続レベルを指定することもできます)。

これらを混在させることはできませんので、例えば開始のプロヴィンスと目標の州を定義することはできません。

can_build_railwayやhas_railway_connectionのような対応するトリガもあります。

前者は2つの場所の間に鉄道が建設できるかどうかをチェックし、後者はそのような接続がすでに存在するかどうかをチェックします。

最後に、has_railway_levelは指定された州に指定されたレベルの鉄道があるかどうかを調べるものです。

その他の新しいエフェクト、トリガー、改造要素

上記のものに加えて、皆さんにとって便利だと思われるものをいくつか追加しました。

  • Building_cost_factor: 建物の建設コストに影響を与える新しい改造要素です。
    これは00_buildingsファイルから建物を取得するので、建物を追加するModでも動作するはずです。
  • Core_state scope list: 国のコアとなる州に対してエフェクトやトリガーを実行できます。

  • Add_equipment_to_stockpile:エフェクトに派生名を付けられるようになり、適切な種類の機器を追加できるようになりました。

本日は以上です。
皆さんがこれらの小さな洞察を楽しんでくださったことを願っています。
皆さんが新しいツールを自由に使用してどのようなクレイジーなことをするのか、私たちは皆興奮しています。


以上

振り返り感想

長いものでついに250回目の日記です。
自分でもよくまあここまで続けられたなぁと思います。
また300回、400回、500回(あるかなー?)と節目を迎えるたびにしみじみ思うんでしょうね。

今回はMod製作者向けに実装される新たな機能についてでした。

キャラクターの要素が導入される意味はとても大きいと思います。
これは様々なModにも影響を与えそうですね。
また多岐にわたる内容のため、既存のModが対応するにはたしかに少し時間がかかりそうな印象を持ちました。
ただ使いこなせるようになればいろいろなことができる可能性を秘めていそうです。

場合によっては自分で使っているModが対応するまで時間がかかるかもしれませんが、その場合は気長に待ちましょう。


管理人の体調コーナー

とうとう具合悪くなって3ヶ月になりました。
ハッキリ言ってこれは相当異常な事だと思います。
ただ快方に向かっているのもまた事実です(ものすごくスローペースだけど😥)。

先日行った病院で言われたのは、これだけ長期間具合が悪くて、もし酷い病気であれば途中で良くなるというのは無くて、ずーっと悪い状態が続いて更により悪くなっていく、少しずつでも快方に向かっているのなら酷いことにはなっていないので慌てなくても良い、とのことでした。

いつ全快するかは私にも全く分かりませんが、当面は無理などせず生活していきたいと思います😥