※2025/10/6、英wikiよりkagi翻訳を通しました。機械翻訳なので一部不自然な日本語があるかもしれません。ぜひ編集してくれるとありがたいです。
AIの一部はゲームコード内で処理されており、MODでは変更できません。これを「ハードコードされている」と言います。
例えば、軍隊の挙動は完全にハードコードされています。
AIに影響を与えられるのは次のとおりです:
* '''defines''' - コードで使われる数値
* '''chance と triggers''' - その状況に基づいて、AIがイベントの選択肢を選ぶ・決断を下す可能性や、実行可能かどうか
* '''AIの性格値''' - 特性や修正で影響を受け、スクリプトで参照される値
* '''スクリプト''' - 征服者向けの戦争処理のように、AI用のカスタムイベントを書けます
== Defines ==
<code>common/defines/ai</code> フォルダには、ゲームコードから参照される数値が入っています。
コードが具体的に何をしているかは分かりませんが、開発者コメントから、これらの数値が何に影響するかが説明されています。例:
<code>BETROTHAL_MIN_AGE = 12 # AIはこの年齢未満のキャラクターとは婚約せず、婚約も求めません。</code>
いくつかのAI用defineは <code>common/defines/00_defines.txt</code> にもあります。
== Chance ==
多くのインタラクションには、AI向けにスクリプト化された確率があります。
例えばイベントでは、AIは ai_chance が高い選択肢を選びやすくなります。<syntaxhighlight lang="c">
ai_chance = {
base = 10
modifier = {
add = 100
has_trait = chaste
}
modifier = {
factor = 0
has_trait = deviant
}
ai_value_modifier = {
ai_zeal = 1
}
}
</syntaxhighlight><code>modifier</code> は、その条件が真のときに基礎値を変更します。複数の条件を含められます。
この場合、キャラクターが貞淑(chaste)特性を持っていれば100を加算します。
<code>factor</code> は乗算を意味し、ここではキャラクターが逸脱者(deviant)なら0倍にします。
<code>ai_value_modifier</code> は、キャラクターの性格値に基づいて加減算し、その数値を掛けます。
ここでは、ai_zeal の1ポイントごとに1として数えます。
<code>trigger = { is_ai = no }</code> は、AIに対してイベントやその選択肢を完全に無効化できます。
一部の効果は、<code>limit = { is_ai = yes }</code> を使うことでAIとプレイヤーで差別化できます。
他の場所では、<code>ai_will_do, ai_potential, ai_score</code> のようなオプションもあります。
ここですべてを列挙するのは多すぎます。
ゲームフォルダ内の .info ファイルを読みましょう。利用可能なオプションが一覧化され、コメントで動作が説明されています。
== AIの性格 ==
特性や修正は、ai_zeal のようなAIの性格値を変化させます。
これらの値は多くの箇所でスクリプトから参照され、AIの挙動を変えます。
[[File:Ai values.png|alt=debug tooltip showing ai values|thumb|AI values tooltip]]
特性や修正で使われる全パラメータ:
* ai_amenity_spending
* ai_amenity_target_baseline
* ai_boldness
* ai_compassion
* ai_energy
* ai_greed
* ai_honor
* ai_rationality
* ai_sociability
* ai_vengefulness
* ai_war_chance
* ai_war_cooldown
* ai_zeal
ゲーム内では、キャラクターウィンドウ上部の頭アイコンにカーソルを合わせると確認できます。
-debug_mode を付けてゲームを起動すると表示されます。
== スクリプト ==
ストーリーサイクル、イベント、on_actions を通じて、AIの挙動を自作できます。
例として、ゲームが征服者をどのように処理しているかを見てみましょう。
1〜2か月ごとに効果を発火するストーリーサイクルがあります:
<code>common\story_cycles\story_cycle_conqueror.txt</code>
その後、スクリプト化された効果 <code>ai_conqueror_yearly_effect</code> を発火します:
<code>common\scripted_effects\00_ai_conqueror_effects.txt</code>
この効果は約2000行あり、工作、予算編成、宣戦を管理します。
生存している全キャラクターに複雑なスクリプトを適用して、パフォーマンスを損なわないよう注意してください。
{{Modding navbox}}