2017年7月16日日曜日

HoI4 気づいたTipsとか情報収集したものメモ書き


HoI4のちょっとしたことについて調べた内容をメモっておきます。
不定期&無通知更新。某かの参考にどうぞ。

----------リンク----------

本家Wiki  日本語Wiki

----------@1.3の時に知ったこと↓ ----------

〇増援確率について
日本語Wikiのコメントや本家Wikiより
増援が戦闘に参加しようとするとき、実際に参加できるかどうかの判定は戦闘幅に余裕があるときに増援確率を用いて毎時行われる。
つまり増援確率が $ X(0 \leq X \leq 1) $ のとき、毎時確率Xで戦闘に参加するか判定される。
ここで戦闘幅にいつも余裕があるとして予備師団に加わってから1日中に戦闘に参加する確率を求めると、これは”丸一日経っても参加しない(=判定24回すべてで参加しない)”とちょうど排反であるから、$ 1-(1-X)^{24} $ で表される。

〇通信中隊について
本家Wikiより
Signal (SIG): Signal companies provide an Initiative stat, which speeds up joining a combat from reserve and planning speed. Used in the right place, these can be great. Given that the base planning speed is 2 % per day, a signal company 1 saves you 4 days to reach the standard 50 % bonus(II:5 days; III: 7 days; IV: 8 days). Whether this bonus expedites preparation of invasions or paradrops is unconfirmed. In general these are most useful for troops in frequent front-line combat, or for reserves in critical positions where rapid reinforcement is needed.”
つまり通信中隊の効果は増援確率の上昇と計画ボーナス増加量上昇の2つ。
通常は25日で計画ボーナスが50%溜まる。
通信Ⅰで21日に短縮(増加量が19%強、つまり約20%上昇)。
通信Ⅱで20日に短縮(増加量が25%上昇)。
通信Ⅲで18日に短縮(増加量が38%強、つまり約39%上昇) 。
通信Ⅳで17日に短縮(増加量が端数を切捨てて約47%上昇)。
日数での計算なので、より正確な変化は満タンになる前日の値をみて計算するとよいかも。

〇空母過密について
本家Wikiより
”Carrier overcrowding: This doctrine reduces the penalty for crowding too many planes on an aircraft carrier. Its significance is that it allows carriers to bring more aircraft to a fight. More is better.”
つまり空母に飛行機が乗っかりすぎている際に生じるペナルティを軽減するということになる。
1つの艦隊戦闘に空母は4つまでという原則は変わらない。

----------@1.4の時に知ったこと↓ ----------
 ○"Reconnaissance advantage translates to a flat bonus equal to 5 leader skill points.This is added to the commander's skill level increasing the overall chance of picking a successful tactic from the available list."
つまり偵察レベルで上回っていることのアドバンテージは、指揮官スキルの5相当のボーナスになるということです。そしてこのボーナスは指揮官のスキル値に加えられる形で反映されるようです。つまり素のスキルが低い指揮官であっても電撃戦などの戦術をとれる機会が発生し得るということです(もちろん他の要件があれば満たす必要があります)。

○補給について、港から出入庫される値は港1レベルにつき3です。つまり、例えば入庫側と出庫側共に10レベルの港(エリア単位で合算)を持っていた場合の供給量は30です。値が異なる場合は小さいほうの値を用いて算出されます。なので首都から海を越えて補給が行われる場合はインフラだけでなく港も強化する必要があります。
下図は日本において九州周辺と淅江周辺に各60レベルの港と10レベルのインフラを整備したときの、淅江への入庫を表した図です。

○通信中隊の先制攻撃力による計画準備ボーナスの増加速度です。
この図はExpertAIの研究追加Add下で先制攻撃力を+68%得た状態の画像です。先制攻撃力の値に%をつけた分だけ増加速度が上昇します。
図68.00%にぎりぎり届いていないのは他国の支援装備が混ざっているからです。
なので優先度の高い師団は自国生産の装備をつかうように設定すると良いです。師団テンプレートの師団装備ボタンから変更できます。

○生産&更新をしてて気づいたことですが、更新優先度が中だと更新需要があっても最新型装備がある程度備蓄に回されるようです。優先度を高にしたら備蓄がすべて更新に回ったので、少なくとも主力の装備更新中は優先度を上げておくと良いかもしれません。

○連鎖攻撃線みたいなのが組めるようです。
既に攻撃線が引かれている戦線の師団を任意に選択して新たな攻撃線を引くだけです。
というのは偶然だったので編集モード内で連鎖させる手法を検証しました
修正してリンクしておきます(偶然できた理由はまだ判っていません)。

○陸軍でフィールド上の師団を複数選んでいるとき、ある師団をダブルクリックすると同じテンプレートの師団だけが全て再選択されます。軍としてまとめているときなどに便利です。

2017年7月15日土曜日

インフラと”建物”に関する考察(2)@1.4.1oak

(要JavaScript)
さて前回インフラを増設したときに元を取れる建設コストについて考えましたが、今回はこれの式変形と数値計算をさくっとつけておきます。

前回でてきた変数はインフラを1レベル上げるコストを $I$ 、インフラ補正前出力を $a$ 、現在のインフラによる”建物”への出力倍率を $b$ 、建てる予定の”建物”総コストを $x$ としたものでした。このときインフラを $n$ レベル上げるとき、元を取るためのコストは
$ x > b(10b+n)I $ 
で表されるというところまで行きました。このときインフラと”建物”をすべて建てきる迄にかかる日数を $d$ とすると、$x$ の建設における出力倍率がインフラ増設後の値であることから
$ d > \frac{nI}{a} + \frac{b(10b+n)I}{(b+0.1n)a} $ 
つまり
$ d > \frac{(n+10b)I}{a} $ 
となります。
これをエクセルかなんかで計算してみると、不等式の右辺は「インフラ増設前のレベルに関わらず」インフラ増設後のレベルにより一律に決定されることが判ります。
例えば15工場を使うものとすると a = 15*5 = 75 であり I = 3000 であることから、インフラ増設後のレベルが{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }のとき、インフラと建設 x をすべて終わるまでの日数は少なくとも{ 440, 480, 520, 560, 600, 640, 680, 720, 760, 800 }を上回ります。
これを増設後インフラレベルをベースに考えてみます。
増設前インフラレベルが1増えると増設前出力倍率 b は 0.1 上がり増設レベル数 n は 1 下がることになります。このとき先ほどの不等式で 10b という計算があることから、式 $n+10b$ において b と n の増減がちょうど相殺されて、式の結果が増設前インフラレベルによらず一定になります。計算してて結構面白かったです。
また上記の結果は前回における余計なこと、つまりインフラと”建物”の各々に個別にかかる倍率については無視していることに留意してください。

2017年7月14日金曜日

インフラと”建物”に関する考察(1)@1.4.1oak



(要JavaScript)
今回はインフラ建設の元をとる話について考えます。
Ver1.4.1ではインフラを建設するとその1レベル毎に民需や軍需等の”建物”カテゴリの建設出力に+10%の補正がつきます。例えばインフラが8ならば出力は+80%されます。従ってインフラを増やすほど出力はおいしくなるのですが、インフラにもコストがあるのでそのバランスをどうしようかという話になります。

という訳で本稿の話題は、インフラを1上げたときどれだけの出力を建物カテゴリにつかえば元が取れるかということになります。インフラを増やさずに建設するのと増やして建設するのにかかる総時間を指針に計算します。

まず変数を用意します。インフラを1レベル上げるコストを $I$ 、インフラ補正前出力を $a$ 、現在のインフラによる”建物”への出力倍率を $b$ 、建てる予定の”建物”総コストを $x$ とします。
$b$ についていえば $b \in \{1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0\} $ です、実際のところ2.0は使われませんが。またインフラの増設にはインフラによる倍率補正がないことに注意します。
このとき、
インフラを増やさずに建てる場合の所要時間: $ \frac{x}{ba} $
インフラを増やした後に建てる場合の所要時間:$ \frac{I}{a} + \frac{x}{(b+0.1)a} $
後者が前者より小さくなれば元が取れていると判断できるので
$ \frac{I}{a} + \frac{x}{(b+0.1)a} < \frac{x}{ba} $
これを $x$ について整理すると
$ x > b(10b+1)I $
となります。出力 $a$ が消えて関係なくなっています。”出力”と少し大まかな言い方にしたのも結局式から消えるので民需を1使おうが15使おうがどう想定しても関係なかったという訳です。
さて、文字 $I$ を置きましたがインフラ1レベルはコスト3000なので I=3000 です。
例えば、インフラ6のときb=1.6になるので x > 1.6(16+1)*3000 = 81600 です。かなり大きい数字です。というのも、インフラを1レベル上げたときに出力が何倍になるか考えてみると、インフラ0->1の場合は1.1倍になりますがインフラ6->7だと大体1.06倍という数字になります。差分が元々の出力の10%になるので、インフラが高いとレベルを上げたときの上昇は相対的に小さくなる、つまり元を取るにはより大きいコストが必要というからくりです。

上記の内容を拡張して、インフラを数レベル上げる場合についても計算してみます。
先ほどと同じ変数と、インフラを上げるレベル数を $n$ でおきます。
インフラを増やさずに建てる場合の所要時間: $ \frac{x}{ba} $
インフラを増やした後に建てる場合の所要時間:$ n(\frac{I}{a}) + \frac{x}{(b+0.1n)a} $
後者が前者より小さくなれば元が取れていると判断できるので
$ n(\frac{I}{a}) + \frac{x}{(b+0.1n)a} < \frac{x}{ba} $
これを $x$ について整理すると
$ x > b(10b+n)I $
インフラ1レベルはコスト3000なので(ry
例えば、インフラ4から n=4 レベル上げつつ元をとることを考えると x > 1.4(14+4)*3000 = 75600 になります。あ、インフラ6から1レベル上げるよりコストが小さくて済んでます。

さて本題としては以上なのですが、少し余計なことをやってみます。
それは、インフラにかかる出力倍率 $ i $ と”建物”建設にかかる「インフラ以外」の出力倍率 $k$ を計算にいれることです。これまでは出力に関する倍率を”建物”に関するインフラの効果だけに絞っていましたが、ちょっと他のも考えてみたいなという感じです。ゲームシステム的に $ i $ と $k$ であっさり表せるか確証をとってないので割と雑な話にはなります。
さてインフラを $n$ レベル上げることとして
インフラを増やさずに建てる場合の所要時間: $ \frac{x}{bka} $
インフラを増やした後に建てる場合の所要時間:$ n(\frac{I}{ia}) + \frac{x}{(b+0.1n)ka} $
このとき $ c = \frac{k}{i} $ としつつこれまでと同様に
$ n(\frac{I}{a}) + \frac{x}{(b+0.1)ca} < \frac{x}{bca} $
これを $x$ について整理すると
$ x > cb(10b+n)I $
つまり新たに係数 $c$ がついただけです。$c$ は分母にインフラにかかる出力倍率を、分子に”建物”にかかる出力倍率をおいた比率を表しています。共通部分は約分されて消えるので残るのは個々に特別にかかる倍率です。結局インフラに相対的に高い出力があれば元を取るに要するコストが安くなるよという話でした。


ちょっと数値計算してみた話→(2)


余談:本稿ではbloggerでMathJaxをつかう手法を取り入れてます。
参考リンクはこちら(MathJax in Blogger (II) )。この都合で要JavaScript。
不等式を解くよりMathJax入れる方が余程時間かかってたり。