Top / MOD / DHに固有特性付き閣僚が追加されるまで

MOD/DHに固有特性付き閣僚が追加されるまで

MOD

DHに固有特性付き閣僚が追加されるまで

はじめに

マンシュタイン.pngDHにはユニークな能力を持った閣僚を追加できる……というのは皆ご存知のことと思う。
グデーリアン.pngおう。
マンシュタイン.pngということで、今回はその固有閣僚の追加の仕方を説明していく。
グデーリアン.pngなんでいきなりそんなことを。
マンシュタイン.pngTwitterで依頼されたもので。
グデーリアン.pngおう。

で、誰を?

グデーリアン.pngところで誰を追加するんだい。
マンシュタイン.png我々……はもうあるからなぁ。

マンシュタインとグデーリアン@FEPK-DHSA

マンシュタイン.pngこのへんでいいかなと。

愚将3号ぐらい

   ↑こいつ
グデーリアン.png決め方が雑すぎやしないかい? ついでに言うと、もう誰か作ってたような……?
マンシュタイン.pngやり方が分かればいいのだ。誰を選ぶか、はこの際些細な違いだよ。

閣僚ファイルの構造

マンシュタイン.pngさて、DHでの閣僚のデータは……2つから4つのファイルの組み合わせでできている。必須なものは2つ。minister_personalities.txtとministers_【国タグ】.csv――ここでは花谷正だから、ministers_jap.csvだ。
マンシュタイン.pngそして、当然閣僚画像は存在していたほうが見栄えするし、あとは閣僚の説明を行うテキストもconfig内に入れておいたほうがメンテナンス性に優れる。DH Fullではこのテキストはdarkest_hour.csvに格納されている。表にしよう。

必要度ファイル名場所説明
必須minister_personalities.txtdb\ministers閣僚の特性を記述してあるファイル
ministers_【国タグ】.csvdb\ministers閣僚の名前や閣内での場所、登場年等のリストがここに入っている
できればM【閣僚ID】.bmpgfx\interface\pics閣僚、指揮官、研究機関の画像が入っている
darkest_hour.csvconfig閣僚についてのテキストや、一部のゲーム内で使用されるテキストが入っている

グデーリアン.png画像はまあ、確かにゲーム内でも画像が無いやついるから「できれば」なのは分かるが、テキストが「できれば」なのはなんでだい?
マンシュタイン.pngそれについてはminister_personalities.txtの中身を説明する段で詳しく話そう。

minister_personalities.txtって?

マンシュタイン.pngいきなり本題だ。そして最も難しいポイントでもある。minister_personalities.txtについてだ。ここにはその閣僚がどのような能力を持つのか、自体が書いてある。我らが総統閣下を例に見てみよう。

至急メーメルくれや

マンシュタイン.pngこのうち「偏執的〜」から「- 備蓄: +10.0%」までがminister_personalities.txtに書かれている。見てみよう。

	minister =  { 
		trait		= "Paranoid megalomaniac" # Hitler
		id			= 81
		name		= NPERSONALITY_HITLER
		desc		= DPERSONALITY_HITLER
		position	= headofstate
		value		= 0
		command		= { type = production which = production when = non_national value = -0.1000 }
		command		= { type = populationgrowth value = 0.1000 }
		command		= { type = unit when = morale value = 0.1000 }
		command		= { type = unit when = speed value = 0.1000 }
		command		= { type = dissent value = -0.1000 }
		command		= { type = diplomacy_chances which = alliance when = dictatorships value = 25 }
		command		= { type = diplomacy_chances which = alliance when = democracies value = -15 }
		command		= { type = diplomacy_chances which = influence_nation value = 10 }
		command		= { type = leader_skill value = -0.0500 }
		command		= { type = belligerence which = peace value = -0.4000 } 
		command		= { type = belligerence which = war value = 0.2000 }
		command		= { type = stockpile value = 0.1000 }
	}

グデーリアン.png「偏執的誇大妄想家」も紹介文も無いじゃないか! しかも、traitだのidだのvalueだの!
マンシュタイン.png……一行ずつ見ていこう。

minister = {

マンシュタイン.pngここから閣僚特性の記述を開始します、の意。その認識でとりあえずよろしい。

trait		= "Paranoid megalomaniac" # Hitler

マンシュタイン.pngtrait……「特性名」。ここで指定した文字列が、minister_XXX.csv内で閣僚の特性を指定する段で使用する文字列になる。#以下はコメントだ、ゲーム内の挙動には影響しない。実際にFullのminister_GER.txtを見てみると2行目に

1;Head of State;アドルフ・ヒトラー;1933;1964;1999;NS;Paranoid megalomaniac;High;2634;X

マンシュタイン.pngと記述されている。「Paranoid megalomaniac」と書かれているのが分かると思う。自分で閣僚特性を決める段では、こことminister_XXX.csvに新しいtraitを入力することになる。Full風に英語で特性名を書くのもいいが、英語に自信がないときは「HanayaCoS」とか、「名前+部門」ぐらいの記述でも問題ない。とにかく大事なのは他と被らないことだ。
グデーリアン.png日本語で書いてもいいか? 「花谷正参謀」とか。
マンシュタイン.png駄目とは言い切らないが勧めない。バージョンによっては、configとコメントアウト以外に日本語を記述するとゲームが落ちる場合がある。筆者はこれのために他人のModの日本語記述を抜くために半日を要する羽目になったことがある。次。

id			= 81

マンシュタイン.png閣僚特性のIDだ。閣僚IDではない。このIDはminister_personalities.txt内で被りが発生してはいけない。
マンシュタイン.pngFullでは81がアドルフ・ヒトラー、82がスターリン、83がチャーチル、84がムッソリーニ……と次々番号が並んでいる。自作の閣僚特性を作る場合には、IDの数は200か300あたりから連番にするのがわかり易くなろうと思う。

name		= NPERSONALITY_HITLER

マンシュタイン.png「偏執的誇大妄想家」と書いてある。
グデーリアン.png書いてない。
マンシュタイン.png書いてあるんだ。NPERSONALITY_HITLERというstring nameで、config/darkest_hour.csvを参照しているんだ。
グデーリアン.png……。
マンシュタイン.png「NPERSONALITY_HITLER」というのは例えるならば図書館で図書検索機から印刷されてきたレシートだ。そのレシートを持って、実際の本を探しに行くだろう。そしてその実際の本というのがdarkest_hour.csvという本棚に入っている「偏執的誇大妄想家」という文面になる。
グデーリアン.png直接「偏執的誇大妄想家」ってこのファイルに書いておいたらいかんの?
マンシュタイン.png実用上は……問題ないと思う。私はあまり勧めないが。ただ、次のDPERSONALITY_HITLERではそれでは駄目だ。

desc		= DPERSONALITY_HITLER

グデーリアン.pngならこれには、「『アドルフ・ヒトラー』(1889年4月20日 - 1945年4月30日)は、〜」と書いてあると。
マンシュタイン.pngまさしく。
グデーリアン.png何故これを直接minister_personalities.txtに書いてはならないと?
マンシュタイン.png256文字以上の日本語をconfigファイル以外に記述するとゲームが読み込まれなくなる。これは閣僚ファイルのみならず、eventファイルに於いても同じことだ。256文字はあっという間だ。descはしっかりとDPERSONALITY_【人名】と書いて、その内容をdarkest_hour.csvに記入することを強く勧める。

position	= headofstate

マンシュタイン.png閣僚の役職だ。後にminister_XXX.csvで記述する閣僚の役職と一致していないとエラーが出るから注意すること。どの閣僚でどういう記述をするべきか、はここに書いてあるのと同じだ。ここからでもいいし、もしくはminister_personalities.txt内からコピペしても良い。

value		= 0

マンシュタイン.pngこの値はまたちょっと細かい話でな。値が0のとき、ゲーム内で閣僚の「強さ」が自動的に計算される。0でないときは、強さはそのvalueとして計算される。そしてこれは、閣僚がゲーム内で自動的に変更される場合の閣僚の優先度に使用される。
グデーリアン.png何言ってんのかわからんのだけれど。
マンシュタイン.pngこれも具体例を出そう。
マンシュタイン.png例によってFEPKを例に取るが……陸軍総司令官がフォン・ハマーシュタイン=エクヴォルト上級大将の状態で彼が死すと、

エクヴォルトが死した時@FEPK-DHSA

マンシュタイン.pngグデーリアンが陸軍総司令官として登用される。
マンシュタイン.pngこれはグデーリアンの能力である「電撃戦の創始者」が、他のあらゆる選択可能な陸軍総司令官候補より高いスコアを持つためだ。実際に表を見てみよう。

能力名代表的な能力所有者スコア
電撃戦の創始者ハインツ・グデーリアン70
特殊部隊の提唱者エルヴィン・ロンメル20
機甲突撃ドクトリンヴィルヘルム・カイテル30
決戦ドクトリンアドルフ・ヒトラー20
静的防御ドクトリンエルヴィン・フォン・ヴィッツレーベン23
軍備優先ドクトリンユリウス・リンゲル60

マンシュタイン.pngminister_personalities.txtではこれらのvalueは0と設定されている。つまり、これらのスコアは全てゲームが自動で計算し、利用している値である……というわけだ。
グデーリアン.pngならこのvalueの値に……例えば私のvalueを-10あたりに設定したとすれば、次点の60であるユリウス・リンゲルが選ばれてくると。
マンシュタイン.pngまさしく。
グデーリアン.png閣僚特性がvalue≠0で設定されている例はあるのかい?
マンシュタイン.png-1の特性が設定されている。「裏工作の名人」、「泥棒政治家」、「ならず者政治家」……。
グデーリアン.pngつまりできれば指名したくない連中か。
マンシュタイン.pngうむ。まあスコアが-1でも、それ以外に選択肢が無いなら選ばれるのが閣僚ファイルの定めというものだ。
グデーリアン.png……人材が豊富って、いいことだなあ。
マンシュタイン.pngで、ここから実際の能力に映っていくわけだが、command = {から始まるテキストはゲーム内での能力の表示と一対一対応している。それを知った上で画像を見て、更にminister_personalities.txt内に表記されている、「Minister record format」をまるっと訳してしまおう。これを見た上で、実際に花谷正の能力を設定してみることにしようか。

+  Minister record format

マンシュタイン.png以上。このドキュメントと総統閣下のゲーム内での能力表示、そしてminister_personalities.txtでの表記を見比べて、それぞれがどう対応しているのかなんとなくわかってほしい。
マンシュタイン.pngもちろん、総統閣下は全てを網羅しているわけではない。しかし、代表的なところはおおよそ網羅しているはずだ。
グデーリアン.pngゲーム内で見覚えのない設定項目がないか?
マンシュタイン.png知る限り、research(研究補正)でwhen = cost(研究価格)に補正をしている閣僚は見たことがないし、diplomacy_cost(外交コスト)でwhen = nationalを指定しているのも見たことがない。「どういうときに使うんだコレ」みたいなのがあることは否定できんな。
グデーリアン.pngFullで使ってないのに設定されてるやつはどういう用途を想定してるんだろうなー。

minister_personalities.txtを編集してみよう

グデーリアン.pngじゃあ花谷正、作ってみてくれよ。
マンシュタイン.pngでは、やるかね。
マンシュタイン.png今回はあくまでサンプルだ。彼の「愚将」としての評判を拡大解釈し、「おおよそありとあらゆる負の補正を持つ閣僚」として設定してみよう。
マンシュタイン.pngFEPKでid = 222までは使っているから、今回はid = 300で書いてみようか。
マンシュタイン.pngああそうだ。作業の前にdarkest_hour.csv、minister_JAP.csv、minister_personalities.txtの3点のバックアップをとっておくように
グデーリアン.pngその3ファイルの置き場所が解らない場合は?
マンシュタイン.png心を落ち着けてこのテキストを読み直したまえ。わかるまで繰り返し。……改めて、やるぞ。

下書き(personalities)

グデーリアン.pngあれ、id = 222がだぞ。
マンシュタイン.png直前の閣僚であるヨーゼフ・シュンペーターからコピペした際に間違えた。撮影後に直したから問題はない。
マンシュタイン.png更に、nameとdescをdarkest_hour.csvに移し替えていく。

閣僚テキスト

マンシュタイン.png今回のテキストは429文字あるので、これをminister_personalities.txtに直書きするとおそらくゲームの起動に失敗するだろう。いちいち文字数を見ながらゲームが起動できるかどうかの瀬戸際で怖がる手間を惜しむためには、darkest_hour.csvにテキストを移し替える手間を惜しむべきではない、ということだ。
マンシュタイン.pngminister_personalities.txtとdarkest_hour.csvでの作業はこれで終わりだ。minister_JAP.csvに移ろう。

minister_XXX.csvを追加する

マンシュタイン.pngAlternative HoI2 Editor Ver 0.53*1を使ってしまっても構わないんだが。
グデーリアン.pngなぜオルタエディタじゃいかんのだ。
マンシュタイン.pngオルタエディタはテキストの構造を理解してから使ったほうが良い。
グデーリアン.png慎重すぎやしないか? むしろ意地悪にすら……。
マンシュタイン.pngテキストが扱えればオルタエディタは扱える。その逆は真ではない。とりあえずテキスト上で読んでくれたまえ。同じ作業をオルタエディタ上で行うのは容易なはずだ。
マンシュタイン.png始めるぞ。

閣僚ファイル

このファイルの最終行に、以下の1行を追加する。

5691;Chief of Staff;花谷正;35;SC;The foolish commander;Medium;L101030;x

グデーリアン.pngこれの意
マンシュタイン.pngでは表で示そう。
グデーリアン.png遮るなよ……。

5691Chief of Staff花谷正35SCThe foolish commanderMediumL101030
閣僚ID役職名名前登場年政体能力名忠誠度画像名

マンシュタイン.png正直閣僚の追加方法なんぞ議論は10年以上前に終わったことだろう。ここを参照してくれ。それ以上は今回は触れん。
グデーリアン.pngざっくりだな。
マンシュタイン.png「特性名のところに今回新規作成したtraitの"The foolish commander"が入っている」ということだけ注目してくれればよろしい。
グデーリアン.pngなら、これで完成?
マンシュタイン.pngバグがなければな。祈れ。

Loading minister personalities...
The generic minister personality is loaded and set.
	ERROR : (Missing = in statement.) '= = all' Line = 4020 file = Mods\FEPK-DHSA0.462\db\ministers\minister_personalities.txt

グデーリアン.png落ちた。「文中に足りないものがあるよ」だって。
マンシュタイン.png……4020行目。

command = { type = resource which = all = -0.4 }

マンシュタイン.png「all」の後に「value」を入れ忘れた。こういうこともある。

ERROR : (Error in command for minister personality.) 'value = 0.9000' Line = 4035 file = Mods\FEPK-DHSA0.462\db\ministers\minister_personalities.txt

グデーリアン.pngまた
マンシュタイン.png4035行目……。

command = { type = belligerence value = 9.0000 }

マンシュタイン.png「閣僚特性command不正」。好戦性補正は平時、戦時、参戦時をいずれか指定しないと動かないのだった。which = peace追加。起動。
グデーリアン.pngどうなるのーっと。

花谷がおそってきたぞ

グデーリアン.pngお、おお……ある意味壮観だな……。なんというか、モスクワ並みの赤さを感じるよな……。
マンシュタイン.png日付を一日進めてみよう。

破滅

グデーリアン.pngICは減ってないのが逆に酷いな。
グデーリアン.png……代わりに35年末に完了するはずの工場生産は3月いっぱいまでかかるようになり、そもそも消費ICが7.5になっている。そして、おお、この海軍に、TC……。

マントイフェル,left,around

『有能な司令官ならば、誰でも装甲師団を指揮することが出来る。だが、その補給には天才が必要だ。』 ― ハッソ・フォン・マントイフェル(1897年-1978年)

グデーリアン.pngいかな天才であろうと、TCを7割減らされては手も足も出んさ。戦車にガソリンを足すのに素手しか使えないようなものじゃないか。
マンシュタイン.png閣僚評価はその程度で良かろう。本題はそれではない。「正常に動いた」というのが本題だ。
グデーリアン.png……そうだったな。
マンシュタイン.pngこれでまた一つ、この世に新規閣僚特性が生まれた。
マンシュタイン.png制作に際して恐れることはなにもない。バックアップの1組があれば、何度でもやり直せる。何度でも失敗を繰り返せる。
マンシュタイン.pngエラーを前にして怖がる必要もない。正常に動いている別の閣僚データを見つける。その文法と自分の書いた内容を見比べる。それでも分からなければ人に聞く。HoI2コミュニティはなおも専門家を多数有する。
マンシュタイン.pngこの文章が新たなるModder達の道筋の一つとなることを願う。

おまけ

グデーリアン.pngデータくれって要望があったよ。
マンシュタイン.pngまあ、単純に実際のデータがあれば学習の役にもたつか。
グデーリアン.png疑似とて難プレイにするってさ。
マンシュタイン.png……。

軍最高責任者と化したMoron

The Greatest Moron Mod

なんかあれば

  • ツイッターで要望を出したものです!!!!!色々ツイッターで進捗状況を見ていて、とても苦労をされていたので、もうどう感謝したら良いか.....とりあえずこのAARを参考にジョージ5世とイーデン外相に固有特性追加して来ます!!! -- 2018-09-17 (月) 00:10:50
  • ツイッターで要望を出したものです!!!!!色々ツイッターで進捗状況を見ていて、とても苦労をされていたので、もうどう感謝したら良いか.....とりあえずこのAARを参考にジョージ5世とイーデン外相に固有特性追加して来ます!!! -- 2018-09-17 (月) 00:10:51
  • あぁ連投すいません..... -- 2018-09-17 (月) 00:11:53
  • configに書けば256文字以上書けることと、aiの閣僚選定基準は知らなかった -- 2018-09-17 (月) 00:49:28
  • 前に先生ゴッコやろうとした作者に、内容が初心者以下っていう事実を指摘したら、その作者逆ギレしたうえに暴言吐きまくりで大暴れしたAARかあってな。それと同じだったら徹底的に叩こうかと思ったら無茶苦茶マトモな内容じゃねーかよ(賞賛 -- 2018-09-17 (月) 17:31:16
  • ↑そら(FEPKDH版の作者だから)そう(クッソわかりやすいまともな内容)よ -- 2018-09-27 (木) 16:50:23
  • ↑↑クリエイター潰しても、マルパの研究ラインは5枠にならんぞ -- 2018-09-27 (木) 21:37:22


*1 以下オルタエディタ

Top / MOD / DHに固有特性付き閣僚が追加されるまで