Top / MOD一覧 / MOD製作 / 概略FAQ

MOD製作/概略FAQ

MOD製作
(英語版Wiki、http://www.paradoxian.org/hoi2wiki/index.php/General_Modding_FAQより訳出)

Q : 新しい国を作りたいんだけど、どうすればいいの?
A : 新しい国を最初から作るってのは作業量多いぜ。最初にゲームディレクトリ下の\config\world_names.csvを開いて、ユーザー用の国 (U00〜U19)の一つを、作りたい新しい国用に変更する。これで、今名付けたばかりの新しい国のためのタグが手に入ったわけだ。その国のために、.incファイルを作らなきゃなんねえ。それと、ゲームディレクトリ下の\db\revolt.txtに、その国の中核州と首都も入れとくんだぜ。最後は盾と旗だ。ゲームディレクトリ下の\GFX\map\shieldsと\GFX\map\flagsにそれぞれ入れとけ。以上。
(訳注:なお、日本語版では、U00-U19の国タグを使用時に、操作国変更コマンドがゲーム中で働くと、ゲームが落ちるというバグが報告されています。)

Q : 閣僚と司令官はどうすればいいの?
A : んー、その国のために閣僚ファイルとリーダーファイルを作ってやる必要がある。タグはさっきworld_names.csvで定義したのを使え。

Q : イベントで使ってる画像ってどこにあるの?
A : ゲームディレクトリ下の\GFX\events_pics を参照。

Q : 国を独立させるときに必要なプロビンスを変更したい。どうすれば?
A : ゲームディレクトリ下の\db\revolt.txtを開くんだ。で、変更したい国のタグを探せ。date とexpirydate ってのが、その国を独立させられるようになる期日と独立させられなくなる期日だ。minimum ってのがその国を独立させるときに最低限必要なプロビンスのこと。独立させたらそこで指定してあるプロビンスは常に保有してるし、そのプロビ全部持ってる奴じゃないと独立させられないって寸法だ。extraは、もし独立時にコントロールしていたら、その国に追加して与えられるプロビンスだ。もしコントロールしてなかった場合、それは独立国の中核州指定がついた土地になる。capitalがその国の首都プロビンスになる。intrinsic_gov_typeってのが付いていた場合、そのタイプの政府の国でないと独立させることができない。それから、もし中核州が共通する国があった場合(訳注:regular_idで指定されている国があった場合、と解釈する方がいいかもしれません)、指定政体の国からのクーデターを喰らって政体が変化したら、その国に化けるってことでもある。
(訳注:他、revoltフィールドについても説明がない。)

Q : よく「EVT_2200_DESC」みたいなのを見るけど、これって何?
A : これは、文章を直接書くのじゃなくて、configファイルを外部参照している場合に使う。ゲームディレクトリ下の\configの中に、長文は外部参照することで楽々収納できる。外部参照させる文章は、対応している.csvファイルを開けばMODれる。例えばイベントのテキストなら、(普通は)event_txt.csvに入っている。技術関係ならtech_names.csvだ。これらの.csvもただのテキストファイルだから普通に編集できる。
何かを外部参照させる場合は、以下の3ステップで行う。
1. 外部参照させる名前(EVT_2200_DESCみたいなの)を決める。
2. (.csvファイルの中の新しい行に)上で決めた名前を書き、その後ろに半角のセミコロン(;)を入れる。
3. 外部参照される本文を書く。
本文の後にセミコロンを書くと、違う言語版で使うテキストになる。(要は英語版のテキストの後ろにセミコロンを入れると、次はフランス語版で参照するテキストを書く。さらにその後はドイツ語版のだ)

Q :政治モード地図での各国の色を変えたいけど、どうすれば?
A : ゲームディレクトリ下の\db\country.csvを開く。変えたい国のタグを検索して、色を変えればいい。注意して欲しいが、色によっては名が体を表してない。例えばLight greenってのは、むしろMint-whiteって色だ。

Q : イベントの画像とか閣僚写真とかリーダーの写真とかどうにかしたい!
A : そりゃここで扱うには大事過ぎる。詳しくはModding Graphicsとか見てくれ。

Q : どうやったら新しいユニットタイプを追加できる?
A : 無理。ユニットタイプはハードコードっぽい。


翻訳者による勝手な捕捉

新規国家追加編

さて、翻訳しといて言うのも何ですが、情報量的にちょっと不親切な気がするので一応手順を説明します。
まず新しい国を追加する場合、Uタグを使う方法と既存国家を乗っ取る方法があります。
UタグはMOD用に用意されている新規国家のためのタグですが、上記のように日本語版特有のバグがあることが知られています。極東統合など、これを回避するためにUタグ国が存在しているときには、一部のイベントをスリープするほどです。
既存国家を乗っ取る場合、ゲーム的な意味の少ないアフリカとかの独立してない国のデータを書き換えたりして使います。当然書き換え前のデータは消えてしまうので、MOD-DIRの使用が望ましいです。

  • Uタグの場合
    ゲームが落ちるとか脅しといて言うのもなんですが、まあ進行の都合上ということで。
    国名は上記のように、\config\world_names.csvに入っています。スクロールしていくと、
    U00;ユーザー定義用;;;;;;;;;;X
    こんな感じのがあるので、それを書き換えます。仮に「動物○国」とでもしましょうか。
    U00;動物○国;;;;;;;;;;X
    なお、セミコロンの数を変えると災いが起きるとの予言があるので、注意して下さい。
    次にU00を独立できるようにします。\db\revolt.txtに独立のための情報は入っています。とりあえず開いて下さい。こんな感じのがあると思います。
    AFG = {
    	date = { day = 1 month = january year = 1936 }
    	expirydate = { day = 30 month = december year = 1954 }
    	minimum = { 1486 }
    
    	extra = { 1493 1492 1484 }
    	capital =  1486
    }
    これをコピーして書き換えましょう。慣習的にはrevolt.txtの最後とかに足すことになっています。
# 動物○国
U00 = {
	date = { day = 1 month = january year = 1936 }
	expirydate = { day = 30 month = december year = 1954 }
	minimum = { 1179 1178 }

	extra = { 1177 1184 }
	capital =  1179
}

Uタグ国家を作る場合、1行目に#でコメントアウトして国名を書いておくと後々保守に役立ちます。
dateとexpirydateは建国可能になる年代と建国不可能になる年代です。EU2みたいな長期間のゲームでは大問題ですが、HOI2ではゲーム内全期間とかでも十分です。わざわざ変える必要はないでしょう。
minimumは独立させるのに最低限必要なプロヴィンスを指定します。1179は札幌、1178は旭川なので、動物○国を独立させるためには最低限北海道を占領している必要があります。
extraはその国の中核州となるプロヴィンスです。独立させた国が占領している場合は、最初から領土として与えられます。そうでない場合、国外中核州として指定が付いた状態になります。
capitalは見たとおり、その国の首都となるプロヴィンスです。普通はminimumで指定した場所のどこかを入れときますが、違っても平気です。極端な話、サラワク(SAR)みたいにextraでもminimumでもない場所を指定している場合でも独立できます。なお、ここのみ、プロヴィンス番号を括弧なしで書きます。
なお、イベントによる独立の場合はminimumのプロヴィンスのみが新規国家に与えられるので、手動独立との動作の違いに留意が必要です。

あと、今回は関係ないですが、場合によっては以下のような項目が追加されている場合もあります。

	revolt = no
	regular_id = GER
	intrinsic_gov_type = leninist

revoltスイッチは、その国が存在しない場合に独立に必要な地域をパルチザンが支配した場合、勝手に独立するかどうかを指定する物です。よってnoとしていても、操作して独立させる分には影響しません。
regular_idは兄弟国の扱いを定める物です。併合した場合にユニットを引き継いだり、政体転換で変身したりします(後述)。
intrinsic_gov_typeは政体の限定を指定します。この場合、レーニン主義もしくはそれに近い政体の国でないと建国できないことになります。同様にfascistとすればファシスト限定に、market_liberalなら自由経済派に近い政体限定となります。regular_idと組み合わさって、クーデターの成功時に国タグが化けたりすることにも繋がります。
例:ファシスト系の国が西ドイツ(DFR)のクーデターを成功させたらドイツ(GER)に化けた、など。
もっとも実際にはハードコードで制御されている事柄がある(好戦度縛り、戦争中縛りなど)ので、実際にこの通りの挙動かは未解明な部分もあります。使わない方が安全かもしれません。

本題に戻ります。このまま動物○国を独立させたとしても、たぶんゲームが落ちます。なぜかというと閣僚がいないからです。
閣僚は\db\ministersフォルダにministers_何とか.csvがあって、これで指定されています。
簡単にやるなら、ケベックの閣僚が10人ちょうどなので、ministers_que.csvをコピー&ministers_U00.csvに変更、idを重複しないように96001〜96010*1に変えてやれば完了です(ひでえ)。
まあ10人ぐらいなら簡単に設定できるので、名前と特性を考えて適当に作ってもいいでしょう。画像は後回しで。なお、DDAならデータのない国としてministers_U70.csvみたいなのがあるので、それをテンプレート代わりにする手もあります。

U00;Ruling Cabinet - Start;Name;Pool;Ideology;Personality;Loyalty;Picturename;x
;Replacements;;;;;;;x
96001;Head of State;Mutsugoro;36;ML;Die-hard Reformer;Very High;unknown;x
96002;Head of Government;Uma;36;ML;Silent Workhorse;Very High;unknown;x
96003;Foreign Minister;Kitsune;36;ML;The Cloak N Dagger Schemer;Very High;unknown;x
96004;Minister of Armament;Kuma;36;ML;Back Stabber;Very High;unknown;x
96005;Minister of Security;Inu;36;ML;Crime Fighter;Very High;unknown;x
96006;Head of Military Intelligence;Kitsune;36;ML;Dismal Enigma;Very High;unknown;x
96007;Chief of Staff;Uma;36;ML;School of Manoeuvre;Very High;unknown;x
96008;Chief of Army;Tora;36;ML;Guns and Butter Doctrine;Very High;unknown;x
96009;Chief of Navy;Neko;36;ML;Power Projection Doctrine;Very High;unknown;x
96010;Chief of Air Force;Tsuru;36;ML;Carpet Bombing Doctrine;Very High;unknown;x

やはりセミコロンの数が変わると不吉なことが起きるらしいので注意して下さい。どっかで見たことあるかもしれない閣僚ですが、仕様です。

さて、これで動物○国を独立させられるぞ、と思って日本でゲーム開始、「独立」を選ぼうとして・・・ないですよね。
理由は簡単。独立に必要な札幌も旭川も日本の中核州です。普通は中核州を手放すことはできないので、独立させられません。日本が韓国・北朝鮮を独立させられないのと同じ理屈です。
これでは建国できない(厳密に言うと他国で北海道を占領してから建国すればいいのですが面倒)なので、ちょっと日本の中核州を変更しましょう。

国の情報は.incファイルで定義されています。
日本の場合は(シナリオにもよりますが普通は)japan.incです。1936シナリオの場合、\scenarios\1936\japan.incになります。.incファイルも例によってテキストファイルなので開き、札幌のプロヴィンスIDの1179で検索してやれば、こういうのが見つかるはずです。

 nationalprovinces      = { 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187(略)
(略)
 ownedprovinces         = { 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187(略)
(略)
 controlledprovinces    = { 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 (略)
                          }
(略)

このうち、nationalprovincesが中核州の設定です。なので、このうちの1178と1179を消せば、動物○国は独立可能になります。
ついでに説明しておくと、ownedprovincesが領土を、controlledprovincesが占領状態を示します。こっちを消すとそれはそれで面倒の元、というかエラーが出ます。

国家カラー変更編

色名はcountry.csvで指定するのですが、この色名と対応する色って何よ?という疑問には、
\map\colorscales.csv
を開いてみましょう。

Black;;;
red;green;blue;index
120;120;120;0
60;60;60;29
40;40;40;50
10;10;10;64

一行目が

色名;;;

二行目がRGBのヘッダ
三行目以降がその色名に対応したカラースケールです。
選択したときの色、プロヴィンス自体の色、プロヴィンスの縁の色、戦場の霧内での色が定義され、R;G;B;indexの書式で表記されます*2
これを弄くれば、普段は白いけど選択すると青くなる国を作ったりも可能だと思われます。
また、下の方には国境線の色や水域の色の定義もあります。
なお、もしかしたら新しい色を追加できそうな気もしますが、筆者は未確認です。


*1 閣僚IDの空きを探すのは大変なので、ここではSMEPのU00で使っているIDを使いました。
*2 indexの効果は未確認

Top / MOD一覧 / MOD製作 / 概略FAQ