【HoI4】MOD制作講座|第1回『国家』

こんにちは。

第1回は新規国家の追加についてです。

少しずつ複雑になりますが順を追って説明しますので大丈夫です。


前回をご覧になっていない方はこちらをご覧下さい。

関連記事

サイトリニューアル前に途中まで投稿していた内容です。 今更感がありますが、改めてHoI4のMOD制作方法を解説します。 動作環境 この記事は以下の条件で執筆しています。 Windows/Steam バージョン:[…]

動作環境

この記事は以下の条件で執筆しています。

  • Windows/Steam
  • バージョン:1.12.14
  • DLC
    • Together for Victory
    • Death or Dishonor
    • Waking the Tiger
    • Man The Guns
    • La Résistance
    • Battle for the Bosporus
    • No Step Back
    • By Blood Alone

新規国家の追加

国別ファイルの作成

※当サイトでは国別ファイルと呼ばせて頂きます。

これは汎用の政治顧問や国家指導者をその地域に沿った(アジアの国ならアジア人風の)ものが出るようにしたり、マップ上で表示される国家の色を設定するファイルです。

  1. MODフォルダの中にcommonフォルダを作成する。
    …/common
  2. commonフォルダの中にcountriesフォルダを作成する。
    …/common/countries
  3. countriesフォルダの中に国別ファイルを作成する。
    …/common/countries/sarawak.txt
    ※追加する国家名などで大丈夫です。
    ※他のファイルをコピーして編集しても大丈夫です。
  4. ファイルを編集する。
graphical_culture = commonwealth_gfx
graphical_culture_2d = commonwealth_2d
項目 設定値 コメント
graphical_culture eastern_european_gfx 東ヨーロッパ
western_european_gfx 西ヨーロッパ
middle_eastern_gfx 中東
southamerican_gfx 南米
asian_gfx アジア
african_gfx アフリカ
commonwealth_gfx 英連邦
graphical_culture_2d eastern_european_2d 東ヨーロッパ
western_european_2d 西ヨーロッパ
middle_eastern_2d 中東
southamerican_2d 南米
asian_2d アジア
african_2d アフリカ
commonwealth_2d 英連邦

国家タグの追加

国家タグとはアルファベット3文字(ドイツならGER、日本ならJAP)で各国家ごとに定義されており、国家方針やイベントの紐付けなどあらゆる設定に幅広く使用されます。

  1. commonフォルダの中にcountry_tagsフォルダを作成する。
    …/common/country_tags
  2. country_tagsフォルダの中に01_countries.txtファイルを作成する。
    …/common/country_tags/01_countries.txt
    ※先頭の番号は00以外なら(他のMODと競合しない限り)大丈夫です。
  3. ファイルを編集する。

下記を参考に記述して下さい。
※先頭のSARが国家タグです。既存の国家タグと重複しないように注意して下さい。
※countries/の後ろ側は国別ファイルを指定して下さい。

SAR = "countries/sarawak.txt"

色の設定

マップ上に表示される色を設定しましょう。

オリジナルファイルでは国別ファイルとcolorsファイルの両方に色を定義していますので本講座でもそれに準拠しますが、国別ファイルに記述しなくてもcolorsファイルだけで色は設定できます。
※colorsファイルで上書きされます。

graphical_culture = commonwealth_gfx
graphical_culture_2d = commonwealth_2d
color = { 220 190 75 }

colorsファイルにも色の設定を記述しましょう。

オリジナルファイルをコピーして末尾など分かりやすい場所に記述することをおススメします。

オリジナルファイルを上書きするので本体のアップデート時にエラーが出る可能性があります。
  1. countriesフォルダの中にcolorsファイルをコピーする。
    …/common/countries/colors.txt
  2. ファイルを編集する。
SAR = {
	color = rgb { 220 190 75 }
	color_ui = rgb { 255 255 255 }
}
項目 設定値 コメント
color RGB(Red Green Blue) 白色なら{ 255 255 255 }
color_ui RGB(Red Green Blue) 詳細不明

国家ファイルの作成

※当サイトでは国家ファイルと呼ばせて頂きます。

首都を始め、初期研究やイデオロギーなどを設定するのが国家ファイルです。

  1. Modフォルダの中にhistoryフォルダを作成する。
    …/history
  2. historyフォルダの中にcountriesフォルダを作成する。
    …/history/countries
  3. countriesフォルダの中に国家ファイルを作成する。
    …/history/countries/SAR – sarawak.txt
    ※ファイル名の先頭は国家タグです。
    ※他のファイルをコピーして編集しても大丈夫です。
  4. ファイルを編集する。
※下の項目以外にも多くの設定項目がありますので、オリジナルファイルを確認しつつ作業することをおすすめします。
capital = 333

oob = "SAR_1936"

set_research_slots = 2
set_stability = 0.5
set_war_support = 0.5
set_convoys = 10

set_technology = {
	infantry_weapons = 1
}

set_politics = {
	ruling_party = neutrality
	last_election = "1917.5.17"
	election_frequency = 48
	elections_allowed = no
}
set_popularities = {
	democratic = 0
	fascism = 0
	communism = 0
	neutrality = 100
}
項目 設定値 コメント
capital 州(ステート)ID 首都に設定する州
oob ユニットファイル 初期のユニット
set_research_slots 0~X 初期の研究スロット
set_stability 0~1(0.5で50%、1で100%) 初期の安定度
set_war_support 0~1(0.5で50%、1で100%) 初期の戦争協力度
set_convoys 0~X 初期の輸送船
set_technology 技術 ゲーム開始時に研究が完了している技術
set_politics ruling_party democratic 民主主義
fascism ファシズム
communism 共産主義
neutrality 中道主義
last_election YYYY.MM.DD 最後に行った選挙年月日
election_frequency XX(12で1年、48で4年) 選挙が行われる間隔
elections_allowed yes/no 選挙が行われるかどうか
set_popularities democratic 0~100(4つ合計で100) 各イデオロギーの支持率
fascism
communism
neutrality

国家指導者の追加

追加するには「国家ファイルに記述する方法」と「charactersファイルの定義を呼び出す方法」の2種類があります。

前者は簡単に追加できるという点で中小の国家、後者は管理のしやすさという点で大国におススメです。

国家ファイルに記述する方法

下記を参考に記述して下さい。

create_country_leader = {
	name = "Vyner Brooke"
	desc = "POLITICS_Vyner_Brooke_DESC"
	picture = "Portrait_Sawarak_Vyner_Brooke.dds"
	expire = "1965.1.1"
	ideology = despotism
	traits = {  }
}
項目 設定値 コメント
name XXXX 国家指導者の名前
desc XXXX 国家指導者の説明(マウスを重ねると表示される)
※別途localisationファイルに記述が必要
picture(portrait_path) 画像(ポートレート)ファイル 他の(自分の国家タグと違う)フォルダに入っている画像を使用する場合はportrait_pathで記述
expire YYYY.MM.DD 国家指導者が登場しなくなる年月日
ideology XXXX fascism_ideology、despotismなど
※…/common/ideologies/00_ideologies.txtを参照
traits XXXX dictator、warrior_codeなど
※…/common/country_leader/00_traits.txtを参照

画像(ポートレート)ファイルは156×210のddsファイルです。wikipediaなどからパブリックドメインの画像を用意し、ペイントなどでサイズを加工した後、フリーソフトやWebサービスを利用してddsファイルに変換しましょう。画像が準備できたらModフォルダにgfxフォルダ、その中にleadersフォルダを作成し、画像を使用する国家の国家タグでフォルダを作成します。例えばドイツで使用したければ、…/gfx/leaders/GERとなるようにフォルダを作成し、そのGERフォルダにddsファイルを追加します。

運営者は「NvcompressFrontEnd」というフリーソフトを使用しています。

charactersファイルの定義を呼び出す方法

characersファイルに定義した国家指導者や将軍は、「recruit_character」というコードで簡単に呼び出すことが出来ます。一つの名前で国家指導者や将軍、閣僚としても登録でき、国家方針やイベントなどでも呼び出すことが出来るのでコードが煩雑化せずに管理しやすくなります。

  1. commonフォルダの中にcharactersフォルダを作成する。
    …/common/characters
  2. charactersフォルダの中に国家タグ名のファイルを作成する。
    …/common/characters/SAR.txt
  3. ファイルを編集する。
characters = {
	
	SAR_vyner_brooke = {
		name = "Vyner Brooke"
		portraits = {
			civilian = {
				large = GFX_portrait_Vyner_Brooke
			}
		}
		country_leader = {
			ideology = despotism
			expire = "1965.1.1.1"
			traits = { }
			id = -1
		}
	}
	
}
項目 設定値 コメント
name XXXX 国家指導者の名前
portraits 画像(ポートレート)ファイル interfaceフォルダにて定義
※civilian(army or navy):リーダーのタイプ(今回は国家指導者なのでcivilian)
※large(small):画像サイズ(閣僚などの小さいサイズはsmall)
expire YYYY.MM.DD 国家指導者が登場しなくなる年月日
ideology XXXX fascism_ideology、despotismなど
※…/common/ideologies/00_ideologies.txtを参照
traits XXXX dictator、warrior_codeなど
※…/common/country_leader/00_traits.txtを参照

画像ファイルを登録しましょう。

interfaceフォルダ内に登録しておけば、簡単に呼び出すことが出来るので煩雑化しません。

  1. MODフォルダの中にinterfaceフォルダを作成する。
    …/interface
  2. interfaceフォルダの中に画像登録用のファイルを作成する。
    …/interface/SAR_leader_portraits.gfx
    ※ファイル名は何でも大丈夫ですが拡張子に注意して下さい。
  3. ファイルを編集する。
spriteTypes = {

	spriteType = {
		name = "GFX_portrait_Vyner_Brooke"
		texturefile = "gfx/leaders/SAR/Portrait_Sawarak_Vyner_Brooke.dds"
	}

}

それではcharacersファイルに定義した国家指導者を呼び出しましょう。

以下を参考に国家ファイルに記述して下さい。

recruit_character = SAR_vyner_brooke

州(ステート)ファイルの編集

人口、資源、建築物、領有国、中核州、勝利点などを設定するのが州ファイルです。

1.12.14現在は908の州に分割されています。新しく増やすことも出来ますが、今回は編集のみ行います。

  1. historyフォルダの中にstatesフォルダを作成する。
    …/history/states
  2. 編集するオリジナルファイルをコピーする。
    …/history/states/333-British Borneo.txt
    ※本MODの場合333-British Borneoをコピーします
  3. ファイルを編集する。
※下の項目以外にも多くの設定項目がありますので、オリジナルファイルを確認しつつ作業することをおすすめします。
state = {
	id = 333
	name = "STATE_333"
	manpower = 889800
	resources = {
		rubber = 40 # was: 72
		oil = 12 # was: 18
	}
	
	state_category = rural
	
	history = {
		owner = SAR
		add_core_of = SAR
		victory_points = {
			7371 1
		}
		victory_points = {
			1208 1
		}
		buildings = {
			infrastructure = 2
			industrial_complex = 1
			arms_factory = 1
			air_base = 1
			1208 = {
				naval_base = 1
			}
			7371 = {
				naval_base = 2
			}
		}
	}
	
	provinces = {
		1208 1306 1335 2117 4216 4282 4338 4396 7358 7371 7387 7443 8091 10143 10199 10212 10240 10269 10285 12171 12186 12228 12283 12905 
	}
	
	local_supplies = 0.0
}
項目 設定値 コメント
id XXXX ステートID※変更する必要はありません
name XXXX ステート名※localisationで定義します
manpower XXXX ステートの人口
resources oil(石油)
aluminium(アルミニウム)
rubber(ゴム)
tungsten(タングステン)
steel(鋼鉄)
chromium(クロム)
ステートの資源
state_category wasteland(荒れ地)
city(都市化した地域)
large_city(高密度に都市化した地域)
metropolis(大都市化した地域)
megalopolis(巨大都市化した地域)
town(開発済みの牧歌的地域)
large_town(低密度の都市化地域)
rural(牧歌的地域)
enclave(飛び地)
small_island(小島)
tiny_island(極小島)
pastoral(牧畜地域)
ステートの種類
owner 国家タグ ステートの領有国
add_core_of 国家タグ ステートを中核州とする国家
add_claim_by 国家タグ ステートを請求している国家
set_demilitarized_zone yes/no ステートが非武装地帯かどうか
victory_points プロヴィンスIDと勝利点
infrastructure 0~1 ステートのインフラ
industrial_complex 1~X 民需工場
arms_factory 1~X 軍需工場
dockyard 1~X 海軍造船所
air_base 1~10 航空基地
naval_base 1~10 海軍基地
bunker 1~10 陸上要塞
coastal_bunker 1~10 沿岸要塞
anti_air_building 1~5 対空砲

それではゲームを起動して現在の状態を確認してみましょう。

新しい国家が追加されて、指導者も表示されていますね。

国名や政党名の設定

先ほどの画像をご覧下さい。本来はマップ上に表示されている国名が表示されていないことが分かります。右枠の与党も「非同盟/中道主義」と表示されていて、何だか味気ないですよね?これはlocalisationファイルで設定することができます。
※Kaiserreichなどは国家毎にlocalisationファイルを作成していますが、本講座ではオリジナルファイルを基に解説します。

  1. MODフォルダの中にlocalisationフォルダを作成する。
    …/localisation
  2. localisationフォルダの中にjapaneseフォルダを作成する。
    …/localisation/japanese
  3. japaneseフォルダの中に国名ファイルを作成する。
    …/localisation/japanese/SAR_countries_l_japanese.yml

    ※XXXX_countries_l_japanese.ymlなど。
  4. japaneseフォルダの中に政党ファイルを作成する。
    …/localisation/japanese/SAR_parties_l_japanese.yml
    ※XXXX_parties_l_japanese.ymlなど。
  5. ファイルを編集する。

では国名ファイルから編集しましょう。

※先頭のl_japanese:は必須です。
※国家タグ_イデオロギー:0 “XXXX”と記述します。

l_japanese:

SAR_fascism:0 "サラワク国"
SAR_fascism_DEF:0 "サラワク国"
SAR_fascism_ADJ:0 "サラワク"
SAR_democratic:0 "サラワク共和国"
SAR_democratic_DEF:0 "サラワク共和国"
SAR_democratic_ADJ:0 "サラワク"
SAR_neutrality:0 "サラワク王国"
SAR_neutrality_DEF:0 "サラワク王国"
SAR_neutrality_ADJ:0 "サラワク"
SAR_communism:0 "サラワク人民共和国"
SAR_communism_DEF:0 "サラワク人民共和国"
SAR_communism_ADJ:0 "サラワク"

次は政党ファイルを編集しましょう。

※先頭のl_japanese:は必須です。
※国家タグ_イデオロギー_party:0 “XXXX”と記述します。
※party_longは省略しない正式名称です。省略して記述することもできます。

l_japanese:

SAR_neutrality_party:0 "ブルック朝"
SAR_neutrality_party_long:0 "ブルック王朝"

それでは確認してみましょう。

無事に表示されました。

国旗の作成と設定

国旗を表示させるには最低限1種類が必要です。ただ1種類だけだと民主主義から共産主義に変わった場合に国旗が変更されないなどのデメリットがあります。

例えば下記の画像では、XXX.tgaという国家タグのみのtgaファイルと民主主義と共産主義用のtgaファイルを準備した場合の表示され方です。この場合、中道主義から共産主義に変わったら国旗が変更されますが、ファシズムなら変更されません。

 

下記のように各イデオロギー毎に国旗ファイルを準備していれば、その都度イデオロギーに沿った国旗が表示されます。


では国旗を作成してみましょう。こちらも国家指導者の画像と同様にwikipediaなどからパブリックドメインの画像を用意し、ペイントなどでサイズを加工したのち、フリーソフトやWebサービスを利用してtgaファイルに変換しましょう。画像が準備できたらgfxフォルダにflagsフォルダ、flagsフォルダの中にmediumフォルダ、smallフォルダを作成し、その中に画像を移動しましょう。国旗ファイルは1種類毎に大中小の三つが必要です。イデオロギー毎に国旗を作成する場合は4×3の12ファイル必要です。

運営者は「XnConvert」というフリーソフトを使用しています。
  1. gfxフォルダの中にflagsフォルダを作成する。
    …/gfx/flags
  2. flagsフォルダの中に、mediumフォルダ、smallフォルダを作成する。
    …/gfx/flags/medium
    …/gfx/flags/small
  3. 準備した画像を各フォルダに移動する。

下記のように画像を配置します。

  • 大:82×52※flagsフォルダへ
  • 中:41×26※mediumフォルダへ
  • 小:10×7※smallフォルダへ


それでは確認してみましょう。

下記のように表示されていれば大丈夫です。

最後に

第1回はこれで終了です。

皆さんは無事に国家を追加出来ましたか?

もしエラーが出たりした場合はファイル名や拡張子、コード内のカッコ{}が抜けていないかなど確認してみて下さい。