変数¶
旧版を含む資料
原文は3.6向けです。現在の構文は実ファイルでも確認してください。
スクリプト定義変数を使うと、スクリプトやイベント内で計算できます。変数は作成したスコープに保存され、後から取得できます。3.1以降はスコープ間コピーやローカライズのブラケットコマンドでも利用できます。
利用可能なスコープ¶
3.1以降はほぼすべてのスコープで使えます。設定した変数はそのスコープへ結び付いて保持されます。
megastructure planet country ship pop fleet galactic_object leader army
ambient_object species pop_faction war federation starbase deposit sector
archaeological_site first_contact spy_network espionage_operation espionage_asset
コマンド¶
設定¶
set_variable = { which = star_temperature value = @G2V_star_temperature }
ほかに次を利用できます。
get_galaxy_setup_value: 銀河設定値を取得。export_trigger_value_to_variable: 単一数値を比較するトリガーの値を取得。3.3以降はcount_x系にも対応し、ブロック型トリガーにはparameters = {}を指定できます。export_modifier_to_variable: 現スコープへ適用される指定補正の合計値を取得。
詳しくは制限と補足も参照してください。
- export_resource_income_to_variable / export_resource_stockpile_to_variable: 国家の月間資源収入/現在備蓄を取得。
- set_variable_to_random_value = { which = <変数> min = -100 max = 100 rounded = yes/no }: 3.6以降。範囲内のランダム値を設定。
演算¶
change_variable: 加算。subtract_variable: 減算。multiply_variable: 乗算。divide_variable: 除算。modulo_variable: 剰余(X % Y)。
いずれもwhich = <変数>とvalue = <小数>/<変数>/<スコープ.変数>/trigger:<トリガー>を取ります。丸め系以外ではドットスコープやトリガー値も使えます。
multiply_variable = {
which = my_var # ここは変数を直接指定する
value = fromfromfrom.owner.trigger:num_pops
}
不要になった変数はclear_variable = <変数>で消します。トリガー内だけで計算するなら、演算を何個でも並べられるcheck_variable_arithmeticを使えます。
値の比較¶
check_variable = {
which = <変数>
value = <小数>/<変数>/<スコープ.変数>/trigger:<トリガー>/modifier:<補正>
}
演算子=、>=、>、<=、<に対応し、script valueも比較できます。owner.capital_scope.my_var、trigger:num_pops、owner.capital_scope.trigger:num_pops、3.3以降はmodifier:pop_growth_speed_reductionも指定できます。ただし、基本変数効果・条件で操作対象の変数を指定するwhichには直接の変数名が必要です。
check_variable_arithmetic = {
which = <変数>/value:<script_value>
add/subtract/multiply/divide/modulo = <小数>/<変数>/<スコープ.変数>/trigger:<トリガー>
value > <比較値>
}
演算行は何度でも記述でき、元の変数値は変更しません。バニラの例:
check_variable_arithmetic = {
which = value:situation_machine_uprising_pops_monthly_progress
value > 0.5
}
スコープ間コピー¶
3.1以降はドットスコープを使います。
set_variable = { which = var1 value = owner.capital_scope.my_var }
3.1以前は、同名変数をvalue = ownerでコピーするか、value = { scope = owner variable = var2 }でスコープと変数名を指定していました。現在は旧構文です。
制限と補足¶
事前の初期化は必須ではなく、最初の利用時は0とみなされます。ただし未設定変数を使うとエラーになるため、is_variable_set = <変数>で確認してください。
export_modifier_to_variable = { modifier = pop_growth_speed_reduction variable = my_var }
export_resource_stockpile_to_variable = { resource = energy variable = my_var }
export_resource_income_to_variable = { resource = energy variable = my_var }
get_galaxy_setup_value = { which = my_var setting = num_empires scale_by = 2 }
銀河設定で取得できる値:
num_empires num_advanced_empires num_fallen_empires num_marauder_empires
mid_game_year end_game_year victory_year num_guaranteed_colonies num_gateways
num_wormhole_pairs num_hyperlanes habitable_worlds_scale primitive_worlds_scale
crisis_strength_scale tech_costs_scale
3.1以前のexport_trigger_value_to_variableは単純数値トリガーだけに対応し、3.0では実質fleet_powerだけを取得できました。
変数を使える場所¶
- 単一数値を比較する条件(ブロック型を含む)。例:
num_pops > my_var。 - 単一数値を使う効果。例:
add_experience = my_var。 whileループのcount。add_modifierのmultiplierやadd_resourceのmult。- 資源表・条件付き資源表の
multiplier。変数は惑星スコープに置き、ドットスコープは使えません。
resources = {
category = planet_buildings
cost = {
trigger = { <条件> }
minerals = 100
multiplier = my_var/trigger:num_pops
}
}
- MTTHやAI確率の補正。
ai_chance = {
factor = 1
modifier = {
add/factor = my_var/trigger:num_pops
is_variable_set = my_var
}
}
- 順序付きスクリプトリストで、変数・トリガー値が最大、3番目、最小などの国家を選択。
- ローカライズの
[This.my_var]で設定済み変数値を表示。
精度と丸め¶
round_variable = <変数>: 最も近い整数へ丸める。floor_variable = <変数>: 切り下げ。ceiling_variable = <変数>: 切り上げ。round_variable_to_closest: 指定値の倍数のうち最も近い値へ丸める。
3.0以前は、100000で割って掛け直すなどの演算で切り下げていました。0以上で四捨五入するなら先に0.5、切り上げなら0.99999を加えます。ほぼすべての浮動小数点数の精度は5桁です。
出典: Stellaris Wiki — Variables(原文更新日: 2023年4月16日、版ID 73617)
翻訳日: 2026年8月31日 / 対応バージョン: 3.6
本ページは原文Wiki(CC BY-SA 3.0)の内容を翻訳した非公式ファン翻訳です。