“自文明の市民からの圧力が他文明からの圧力を上回れば、都市の忠誠心は高まります (1ターン最大+20)。”
“他文明からの圧力が上回った場合、都市の忠誠心は下がります (1ターン最大-20)。”
“すべての市民は基本的に圧力1を及ぼしますが、この値はさまざまな修正を受けます。”
“市民の圧力は9タイル以内の都市に影響を与えますが、1タイル離れるごとに影響は10%減少します。”
相手都市の距離 | 相手の人口 | こちらの人口 | 市民圧力による忠誠心 |
4 | 1 | 1 | +6.7 |
5 | 1 | 1 | +10 |
6 | 1 | 1 | +15.1 |
相手都市の距離 | 市民圧力による忠誠心 | 256分率 |
4 | +6.71875 | +1720 /256 |
5 | +10 | +2560 /256 |
6 | +15.078125 | +3860 /256 |
UIでは市民圧力による忠誠心は四捨五入されているので正確な値を確認すると上記に
数値的にいつもの256分率である
市民1人につき圧力1で、1タイル離れるごとに10%減少
という説明にしては細かすぎる数値が出てきたので
ヴェステロースに届いている市民圧力がいかほどか内部数値から確認する
相手都市の距離 | 相手都市の人口 | 市民圧力値 | 256分率 |
4 | 1 | 0.59765625 | 153 /256 |
5 | 1 | 0.5 | 128 /256 |
6 | 1 | 0.3984375 | 102 /256 |
UPDATE GlobalParameters SET Value = 0 WHERE Name = 'CITY_MIN_RANGE' ;
都心から3タイル以内にも別の都市を建てられるようにして
各距離での人口に対する市民圧力値を確認すると
距離 | 市民圧力の減少 | |
1 | x 230 /256 | 256 -25.6 = 230.4 |
2 | x 204 /256 | 256 -51.2 = 204.8 |
3 | x 179 /256 | 256 -76.8 = 179.2 |
4 | x 153 /256 | 256 -102.4 = 153.6 |
5 | x 128 /256 | 256 -128.0 = 128 |
6 | x 102 /256 | 256 -153.6 = 102.4 |
7 | x 76 /256 | 256 -179.2 = 76.8 |
8 | x 51 /256 | 256 -204.8 = 51.2 |
9 | x 25 /256 | 256 -230.4 = 25.6 |
10 | x 0 /256 | 256 -256.0 = 0 |
10%減少=25.6/256ずつ減少して、分子の小数点以下を切り捨て
(切り捨て) | ||||||
256 | - | 25.6 | = | 230.4 | ⇒ | 230 |
256 | 256 | 256 | 256 | |||
100% | - | 10% | = | 90% | ⇒ | 89.84375% |
市民圧力Pの距離L地点での影響力
= P x floor(256 - 25.6 x L) / 256
GameInfo | Name | Value |
<GlobalParameters> | CITIZEN_IDENTITY_PRESSURE_BASE | 1 |
CITIZEN_IDENTITY_PRESSURE_CAPITAL | 1 | |
CITIZEN_IDENTITY_PRESSURE_RADIUS_CUTOFF | 10 | |
LOYALTY_PER_TURN_FROM_NEARBY_CITIZEN_PRESSURE_MAX_LOYALTY | 20 | |
LOYALTY_PER_TURN_FROM_NEARBY_CITIZEN_PRESSURE_MAX_RATIO | 3.0 | |
LOYALTY_PER_TURN_FROM_NEARBY_CITIZEN_PRESSURE_NEUTRAL_LOYALTY | 0 | |
LOYALTY_PER_TURN_FROM_NEARBY_CITIZEN_PRESSURE_NEUTRAL_RATIO | 1.0 |
<GlobalParameters>からCitizen Pressure(市民圧力)絡みと思われる要素を探すと上記のわかりやすい7項目が出てくる
上の3つに関しては名前と値から、シヴィロペディアにある
のことだとすぐわかるので、他の4つを見ると
MAX_LOYALTYという名前で値が20なのが、市民圧力での忠誠心の変動が最高20までなことを指してると思われるので
MAX_RATIOがこの"市民双方の圧力の比較により"という部分だと仮定して
計算しやすい5タイル距離間の2都市の人口を調整して検証する
ヴェステロース | ワンガヌイ | |
人口 | 1 | 2 |
相手からの市民圧力 | 1 2 x 50% |
0.5 1 x 50% |
比率 | 1: 1 1 : 1 |
1: 4 0.5 : 2 |
忠誠心 | +0 | +20 |
人口 | 2 | 3 |
相手からの市民圧力 | 1.5 3 x 50% |
1 2 x 50% |
比率 | 1: 1.333... 1.5 : 2 |
1: 3 1 : 3 |
忠誠心 | +3.3 (+3.28125) |
+20 |
市民圧力による忠誠心は
ヴェステロース | ワンガヌイ | |
人口 | 20 | 29 |
相手からの市民圧力 | 14.5 29 x 50% |
10 20 x 50% |
比率 | 1: 1.379・・・ 14.5 : 20 |
1: 2.9 10 : 29 |
忠誠心 | +3.8 (+3.75) |
+19 (+18.984375) |
人口 | 20 | 30 |
相手からの市民圧力 | 15 30 x 50% |
10 20 x 50% |
比率 | 1: 1.333... 15 : 20 |
1: 3 10 : 30 |
忠誠心 | +3.3 (+3.28125) |
+20 |
3倍の圧力差で、市民圧力による忠誠心は最大の20になる
最大レシオ(MAX_RATIO)の時に最大忠誠心(MAX_LOYALTY:20)で
中間レシオ(NEUTRAL_RATIO)の時に中間値(NEUTRAL_LOYALTY:20)なのはわかりやすいが
その間での忠誠心の数値を求めるには、圧力比を256分率にして忠誠心を当てはめる必要がある
比率 | 1: 1 1 : 1 |
1: 1.333... 15 : 20 |
1: 1.379・・・ 14.5 : 20 |
1: 2.9 10 : 29 |
1: 3 10 : 30 |
忠誠心 (UI表示) |
+0 | +3.3 | +3.8 | +19 | +20 |
忠誠心 (詳細) |
+0 | +3.28125 | +3.75 | +18.984375 | +20 |
検証した中で出てきた圧力比のうち、比率1: 1.333...(15:20)を例にとると
中間レシオ~最大レシオまでの数直線上に20/15を配置して
0/256~256/256までの数直線に変換させて比率R/256を求めるとなると
上記のようになるので
Rx2+256 | = | 20 |
256 | 15 | |
R | = | 42.666... |
256 | 256 |
となるが、Civ6の256分率のお約束で分子の小数点は切り捨てになるので
20/15 ⇒ 42/256になる
あとは42/256を、+0~+20の数直線と合わせれば
市民圧力による忠誠心+3.28125が出る