FC2ブログ

非公開コマンド

コメント欄で宣言したコマンドの見直しをしている。
300個ほどあるので時間がかかったが、ようやく整理できた。

Wikiやevent commands.txtで記載されていないコマンドがあるので紹介しておく。

headofstate
headofgovernment
foreignminister
armamentminister
ministerofsecurity
ministerofintelligence
chiefofstaff
chiefofarmy
chiefofnavy
chiefofair
閣僚を変更するコマンドで、当たり前のように使っていたが、
Wikiにもevent commands.txtにも何故か記載が存在しない。

trickleback_mod
Wikiの方にはHoI2からあるコマンドとして記載されており、実際動作するようだ。

land_fort_eff
coast_fort_eff
convoy_def_eff
ground_def_eff
Wikiの記載ではDHからの新規コマンドのように見えるが、HoI2から機能する。

morale
nuke_damage
max_amphib_mod
Wikiやevent commands.txtには記載が存在しないが、
HoI2から技術効果で当たり前のように使われている。

sub_detection
sub_attack
convoy_attack
fort_attack
Wikiやevent commands.txtには記載が存在しないが、HoI2から動作する。

building_eff_mod
AoDのみ使われており動作する。

suppression
softness
toughness
Wikiやevent commands.txtには存在しないが、DHのみ動作する。

続きを読む

スポンサーサイト



DHのユニット改良システム

フォーラムの方で艦船ユニットの改良が話題になっている。
DHのユニット改良システムは公知の技術だと思っていたが、
実際にはあまり知られていないようなので紹介しておく。

まず、HoI2/AoD/DH共通仕様を先に説明する。
これらはハードコードで決められている。
  • ユニットは同じユニット種類の次のモデル番号が生産可能になった時点で自動改良可能になる。
  • ユニット番号に間が空いている場合は自動改良されない。
  • light_armor(軽戦車)の#2(3番目)は、armor(戦車)の#2(3番目)へ自動改良される。
  • 海軍ユニットは次のモデルが生産可能になっても自動改良されない。
  • 現在のモデル番号と最新との差があるほど、改良時間や改良コストが小さくなる。(いわゆる2段階改良)

次に、DHでの拡張内容を説明する。
これらの内容は、db/units/divisions以下のユニットモデル定義ファイルに記載する。
  • [ユニット種類名] = [モデル番号]と書くと、特定のユニット種類の特定モデルへ自動改良できる。
  • 上の方法で指定するモデル番号が次の数字でない場合は、途中のモデルを飛ばして自動改良される。
  • [ユニット種類名] = -2と書くと、そのモデルから先へ自動改良されない。
  • upgrade_time_boost = noと書くと、2段階改良が禁止される。
  • 以下のように書くと、ユニット種類単位で手動改良先を定義できる。
    upgrade = { type = [ユニット種類名] upgrade_time_factor = [改良時間係数] upgrade_cost_factor = [改良コスト係数] }

わかりにくいので例を挙げる。
light_armor.txt
# 2 - Improved Light Armored Division (1940)
model = {
...
armor = 0
upgrade_time_boost = no
...
}
軽戦車の#2 [改良型軽戦車]から、戦車の#0 [戦車 '39]に改良される。
上に挙げたルールにより戦車の#2 [戦車 '43]に改良されてしまうのを上書き設定している。
また、2段階改良は抑制されている。

flying_rocket.txt
# 0 - Flying Rocket V2A4 (1943)
model = {
...
flying_rocket = -2
...
}
戦略ロケットの#0 [戦略ロケット]は#1 [弾道ミサイル]に改良されない。

infantry.txt
upgrade = { type = garrison upgrade_time_factor = 0.32 upgrade_cost_factor = 0.69 }
upgrade = { type = bergsjaeger upgrade_time_factor = 0.50 upgrade_cost_factor = 0.93 }
upgrade = { type = paratrooper upgrade_time_factor = 0.50 upgrade_cost_factor = 1.42 }
upgrade = { type = marine upgrade_time_factor = 0.50 upgrade_cost_factor = 1.30 }
upgrade = { type = cavalry upgrade_time_factor = 0.72 upgrade_cost_factor = 0.81 }
upgrade = { type = motorized upgrade_time_factor = 0.52 upgrade_cost_factor = 1.34 }
upgrade = { type = mechanized upgrade_time_factor = 0.80 upgrade_cost_factor = 0.99 }
歩兵は守備師団/山岳兵/空挺兵/海兵/騎兵/自動車化歩兵/機械化歩兵へ手動改良できる。

研究速度 その2

おおよそわかってきた。計算式を公開する。

進捗率 = 基本進捗率 * 2倍時間補正 * 青写真補正 * 史実年度補正 * 閣僚補正 * 難易度補正 * 基本補正

・DDAの場合
基本進捗率 = (10.8 + 1.5 * (スキル + 特性一致補正 + 施設補正 - 1)) / (難易度 + 2)
・AoDの場合
基本進捗率 = (3.5 + 0.5 * (スキル + 特性一致補正 + 施設補正 - 1)) / (難易度 + 2)
・DHの場合
基本進捗率 = (10.5 + 1.5 * (スキル + 特性一致補正 + 施設補正 - 1)) / (難易度 + 2)

・特性一致補正
特性が一致する場合、(スキル + 6)を加算する。

・施設補正
小研究分野に対応する研究施設がある場合、
DDAの場合: (施設レベル * 10)
AoDの場合: ((√施設レベル) * 10)
DHの場合: (施設レベル * 5.62)
を加算する。

・2倍時間補正
見かけ上は難易度が2倍になっているように見えるが、実際は違う。
進捗率が200になった時に次の小研究へ移行するようになる。
進捗が半分になると言い換えてもよい。

・史実年度補正
史実年度よりも前に研究する場合、1日当たりmisc.txtの設定値の分、基本進捗率に掛け算する。
AoD/DHの場合、史実年度よりも後に研究する場合、1日当たりmisc.txtの設定値の分、基本進捗率に掛け算する。

・基本補正
AoDの場合、misc.txtの設定値の分、基本進捗率に掛け算する。
これの初期値が1.5なので、実質的にはDDAのおよそ半分の研究速度になる。

・小研究の数
DHの場合、小研究の数が5ではないことがある。
ゲーム上で表示される値は、進捗率の累計を小研究の数で割ったものになる。

続きを読む

研究速度について

ある理由で研究速度の計算式を調査している。
今回の投稿では解析できた部分までを紹介する。

DataWikiにも計算式が書いてあるが、実際の値とは少しずれている。
おそらく1日進めた時点の値を見て計算式を求めたのだと思うが、
HoI2のシステムがそれほど小数点以下の精度を持っていないため
保存する時に誤差が発生しているからだ。

誤差を少なくするため10日単位の実測値から計算式を求めた。
DDA日本語版1.2を使用。AoDやDHは異なると思う。

・内部では小研究ごとに進捗率を管理しており、その値が100になれば次の小研究に移動する。
 進捗率を5で割って0.20%単位に丸めたのがゲーム上で表示される値になる。
・基本的な計算式は以下の通り。
1日の進捗率 = 12 / (難易度 + 2) + 5 / 3 / (難易度 + 2) * (スキル - 1)
・特性が一致した場合、スキルを2倍してから6を加える。
 つまり、スキル1で特性が一致している研究機関と、スキル8で特性が一致しない研究機関は等価、
 スキル2で特性が一致している研究機関と、スキル10で特性が一致しない研究機関が等価、となる。
・研究施設の1レベルごとに、スキルが10上昇したとして扱う。
 つまり、建物が1レベルあるだけで、スキル1の研究機関がスキル11扱いとなる。

他の要素も調査した上で、もう少し整理した計算式を書くようにする。

----- 2014/02/16 追記
上の計算式はドイツの歩兵技術で測定していたので、閣僚補正の+10%が入っていた。
補正の比率は一律だったので、進捗率の係数が変わるだけで大枠は変わらない。

AoD用のMODをDHで動かすには (10)

■シナリオ
他の箇所で書いていない項目をここに記載する。

- province
provinceのsynthetic_oil/synthetic_rares/nuclear_powerはサポートしていないので削除。

- division_development/province_development/convoy_development
close_when_finished/retooling_timeはサポートしていないので削除。
プロフィール

dak

Author:dak

最新記事
最新コメント
カテゴリ
月別アーカイブ
検索フォーム
RSSリンクの表示
リンク