隠れ態度補正

AIの態度/隠れ態度補正
Last-modified: 2013-12-14 23:45:20

AIの態度/隠れ態度補正 †

AI指導者の態度に影響する要素のうち、ゲーム中に表示されないマスクデータのみをまとめ。BtSv3.13準拠。
参考スレ(civilization fanatics'):
http://forums.civfanatics.com/showthread.php?t=177450 (Controlling AI to AI relations)
http://forums.civfanatics.com/showthread.php?t=204328 (AI Attitude Explained)
など
Fanatics'抄訳/AIの態度も参照されたし。


指導者の性格によるもの †

態度基本値 †

態度基本値は-1~+2の範囲で、各指導者に設定されている。(CIV4LeaderHeadInfos.xml <iBaseAttitude>)
数値が高いほど友好的な指導者と言える。

AI間平和度補正 &dagger;

計算式: +4 - |両者の平和志向度の差|
平和志向度は0~10の範囲で、各指導者に設定されている。(CIV4LeaderHeadInfos.xml <iBasePeaceWeight>)
この値が近い指導者同士ほど、相性が良い。実際のゲームでは、これに0~3のランダム値を加えた値が使用される。(同 <iPeaceWeightRand>)
よって補正は最良で+4、最悪で-9。この補正は人間プレイヤーに対しては働かない。

AI間戦争屋補正 &dagger;

計算式: +(両者の戦争屋補正のうち低い方)
戦争屋補正は0~2の範囲で、各指導者に設定されている。(CIV4LeaderHeadInfos.xml <iWarmongerRespect>)
両者の値を比べ、より低い値をそれぞれの態度に加える。
この補正は人間プレイヤーに対しては働かない。

 

ゲーム設定によるもの &dagger;

対人間プレイヤー難易度補正 &dagger;

この補正は人間プレイヤーに対してのみ働く。

対人間プレイヤー「Aggressive AI」オプション補正(無印・WLのみ) &dagger;

「攻撃的なAI」オプションがONの場合、全てのAIは人間プレイヤーに対して態度を悪化させる。BtSでこの補正は無くなった。

 

ゲーム進行によるもの &dagger;

チーム戦人数補正 &dagger;

計算式: -(対象の属するチームの人数 - 自分の属するチームの人数) ただし括弧内はプラスにはならない
AIは、自分たちよりも人数が多いチームに属する文明に対して態度を悪化させる。

高順位ペナルティ &dagger;

計算式: +( 順位差×嫉妬度 / (総文明数+1) ) 端数は切り捨て 自分よりも順位が高い相手に対してのみ
AIは、自分より順位の高い相手に対して態度を悪化させる。
嫉妬度は-3~0の範囲で、各指導者に設定されている。(CIV4LeaderHeadInfos.xml <iWorseRankDifferenceAttitudeChange>)
総文明数には、既に滅亡した文明も含む。

例1
総文明数が7、始皇帝の順位が1位、ユスティニアヌス1世の順位が5位の場合を考える。順位差は4、ユスティニアヌスの嫉妬度は-2。
4 * (-2) / (7 + 1) = -1
ユスティニアヌスは、自分より上位の始皇帝に対して-1の態度ペナルティを持つ。

低順位ボーナス &dagger;

計算式: +( 順位差×恩情度 / (総文明数+1) ) 端数は切り捨て 自分よりも順位が低い相手に対してのみ
AIは、自分より順位の低い相手に対して態度を軟化させる。
恩情度は-1~4の範囲で、各指導者に設定されている。(CIV4LeaderHeadInfos.xml <iBetterRankDifferenceAttitudeChange>)
総文明数には、既に滅亡した文明も含む。

総文明数が9、ハンムラビの順位が1位、王建の順位が9位の場合を考える。順位差は8、ハンムラビの恩情度は1。
8 * 1 / (9 + 1) = 0.8 端数切り捨てなので0

嫉妬度および恩情度の1、-1は実質0と同じである。

下位国間ボーナス &dagger;

計算式: 両者の順位が下半分に属していれば、互いに+1
奇数は切り上げる。7文明が存在すれば、4位以下の文明同士の関係が全て+1される。

戦勝ペナルティ &dagger;

対象の戦勝点が自分より高ければ-1。(CIV4LeaderHeadInfos.xml <iLostWarAttitudeChange>)
戦勝点(WarSuccess)はユニット殺害数と考えられている。

態度レベル &dagger;

非表示も含めた関係補正値をすべて合計した値によって、AIの態度は決定する。

属国平均化 &dagger;

従属国を持つ文明に対しては、宗主国への態度値と、属国への態度値&&を平均化した値が、実質的な態度値となる。
:例| ブレヌスはフリードリヒを属国として従えている。シッティング・ブルのブレヌスに対する態度値は4(満足)、フリードリヒに対する態度値は-12(激怒)。
平均化すると ( 4 - 12 ) / 2 = -4(苛立)。
シッティング・ブルのブレヌスに対する本当の態度は苛立となる。表示上の態度は「満足」のままなので、注意が必要。

従属国を持つ文明に対しては、宗主国への態度と属国への態度の段階を平均化したものが実際の態度になる。そのため、表示上の態度と実際の態度が乖離する。
例1:
ブレヌスはフリードリヒを属国として従えている。シッティング・ブルのブレヌスに対する態度値は4(満足)、フリードリヒに対する態度値は-12(激怒)。この場合、「満足」と「激怒」を平均化した「苛立」が真の態度になる。表示上の態度は「満足」のままなので、注意が必要。

例2:
ブレヌスはフリードリヒを属国として従えている。シッティング・ブルのブレヌスに対する態度値は10(友好)、フリードリヒに対する態度値は-9(激怒)。この場合「友好」と「激怒」の中間で「警戒」が真の態度になる。

例3:
シッティング・ブルのブレヌスに対する態度値は2(警戒)、フリードリヒに対する態度値は-3(苛立)。この場合「警戒」と「苛立」を平均化し、端数を切り捨てた「苛立」が真の態度になる。

 

早見表 &dagger;

この表は、宗教や順位などの後天的な理由を除いた、指導者の性格に起因するAI同士の相性を表しています。

Augustus
(アウグストゥス)
Shaka
(シャカ)
Hammurabi
(ハンムラビ)
Stalin
(スターリン)
Isabella
(イザベル)
Sitting Bull
(シッティング・ブル)
De Gaulle
(ド・ゴール)
Tokugawa
(徳川家康)
Mehmed II
(メフメド2世)
Joao II
(ジョアン2世)
Victoria
(ヴィクトリア)
Montezuma
(モンテズマ)
Mao Zedong
(毛沢東)
Huayna Capac
(ワイナ・カパク)
Charlemagne
(カール大帝)
Wang Kon
(王建)
Genghis Khan
(チンギス)
Louis XIV
(ルイ14世)
Hannibal
(ハンニバル)
Suleiman
(スレイマン)
Ramasses II
(ラムセス2世)
Washington
(ワシントン)
Napoleon
(ナポレオン)
Kublai Khan
(フビライ)
Gilgamesh
(ギルガメシュ)
Julius Caesar
(ユリウス・カエサル)
Churchill
(チャーチル)
Darius I
(ダリウス1世)
Lincoln
(リンカーン)
Ragnar
(ラグナル)
Peter
(ピョートル)
Boudica
(ブーディカ)
Saladin
(サラディン)
Bismarck
(ビスマルク)
Roosevelt
(ルーズベルト)
Elizabeth
(エリザベス)
Brennus
(ブレヌス)
Suryavarman II
(スーリヤヴァルマン)
Qin Shi Huang
(始皇帝)
Willem van Oranje
(ウィレム)
Pericles
(ペリクレス)
Frederick
(フリードリヒ)
Mansa Musa
(マンサ・ムサ)
Alexander
(アレクサンダー)
Pacal II
(パカル2世)
Catherine
(エカテリーナ)
Cyrus
(大キュロス)
Justinian I
(ユスティニアヌス)
Zara Yaqob
(ザラ・ヤコブ)
Asoka
(アショーカ)
Hatshepsut
(ハトシェプスト)
Gandhi
(ガンジー)
012345678910
 
凡例
態度基本値:+2+10-1
戦争屋補正:Normal
0
Italic
+1
Bold
+2
ザラ・ヤコブ vs ラグナル
両者の平和志向度の差による態度補正は、4 - (6 - 0) = -2。
ラグナルの戦争屋補正は2。ザラ・ヤコブは1。より低い1の値が互いの態度に加えられる。
最後に態度基本値を、それぞれの態度に加える。ラグナルは-1、ザラ・ヤコブは+2。
  • ラグナル: -2 + 1 + (-1) = -2
  • ザラ・ヤコブ: -2 + 1 + 2 = +1
ラグナルのザラ・ヤコブに対する基礎態度値は-2。ザラ・ヤコブのラグナルに対する基礎態度値は+1となる。