「変数」の版間の差分

提供:ck3wiki
ナビゲーションに移動 検索に移動
(変数の日本語化(kagi))
 
(相違点なし)

2025年10月6日 (月) 05:24時点における最新版

※2025/10/6、英wikiよりkagi翻訳を通しました。機械翻訳なので一部不自然な日本語があるかもしれません。ぜひ編集してくれるとありがたいです。

変数は削除されるまで情報を永続的に保存します。

変数の設定[編集 | ソースを編集]

変数は、effectが実行されるscopeのコンテキストでset_variable effectを使用して設定されます。

set_variable = {
   name = X
   value = Y
}

変数の名前は任意に選択できる文字列です。変数を設定することで定義され、ゲーム内に既存または事前定義された変数のリストはありません。

変数の値は以下のようになります:

  • ブール値

set_variableエフェクトには、ブール値を設定する簡単な形式もあります。

set_variable = X

これは以下と同じです:

set_variable = {
   name = X
   value = yes
}

キャラクターscopeで使用する場合、紛らわしい名前のadd_character_flagエフェクトを使用するのと同じです:

add_character_flag = X
  • 数値

変数は任意の小数値に設定できます:

set_variable = {
   name = test
   value = 2.37
}

値はscript mathブロックを使用して動的に計算することもできます:

set_variable = {
   name = test
   value = {
      value = 5
      add = 2
      multiply = 3
   }
}

... またはスクリプト値に直接設定することもできます

set_variable = {
   name = test
   value = some_script_value
}

数値と比較する(つまり、<、<=、=、!=、>、>=演算子をサポートする)ほとんどのtriggersは、スクリプト値としても使用できることを思い出してください:

set_variable = {
   name = test
   value = prestige
}
set_variable = {
   name = test
   value = "culture.cultural_acceptance(culture:french)"
}
  • フラグ値

変数はフラグ値を保存できます:

set_variable = {
   name = test
   value = flag:some_flag
}

変数はスコープを保存できます:

set_variable = {
   name = test
   value = scope:some_scope
}

この例では保存されたスコープを使用していますが、スコープにアクセスする任意の手段をvalueパラメータに使用できます:データベースアクセス、イベントターゲットなど。

メイン記事へ: Scopes

変数はスコープのコピーを保存するのではなく、そのスコープへのポインタとして機能します。

変数の変更[編集 | ソースを編集]

変数がスコープに既に設定されている場合、同じ名前で新しい変数を設定すると、異なる性質の値を保存していても、既存の変数が置き換えられます。

変数が数値を保存している場合、change_variableエフェクトを使用して値を加算または乗算することで変更できます。

change_variable = {
   name = X
   add/multiply = Y
}

変数の削除[編集 | ソースを編集]

スコープに設定されると、変数は以下のいずれかが発生するまでそこに残ります:

  • スクリプトで手動で削除される
  • 保存されているスコープが破棄される
  • キャラクターに保存されている場合、そのキャラクターが死亡したとき

セーブゲームの肥大化を避けるため、その他の理由で、変数はremove_variableエフェクトを使用して不要になったときに削除する必要があります。

remove_variable = X

変数へのアクセス[編集 | ソースを編集]

変数は特定のスコープに設定されるため、var:<変数名>の構文を使用して、同じスコープからのみアクセスできます。

変数は設定されている場合にのみアクセスでき、これはhas_variableトリガーを使用して、変数が設定されたとされるスコープから確認できます。

イベントターゲットと同様に、変数は保存されているスコープにチェーンできます:

scope:some_scope.var:some_var

変数がスコープを保存している場合、有効なイベントターゲットをそこからチェーンできます:

# var:some_varの場合
scope:some_scope.var:some_var.father

同様に、変数がスコープを保存し、そのスコープに別の変数が設定されている場合、2番目の変数もチェーンできます:

scope:some_scope.var:some_var.var:other_var

グローバル変数[編集 | ソースを編集]

変数はスコープに設定され、そのスコープからアクセス可能ですが、グローバル変数はゲームステート自体に設定され、そのためあらゆるコンテキストからアクセス可能です。

それ以外では、グローバル変数はあらゆる点で変数と同じように機能します:

  • set_global_variableエフェクトを使用して設定される
  • 数値を持つ場合、change_global_variableエフェクトで変更できる
  • remove_global_variableエフェクトで削除される
  • global_var:some_global_varを使用してアクセスされる

ローカル変数[編集 | ソースを編集]

変数はスコープに設定され、そのスコープからアクセス可能ですが、ローカル変数はトップスコープに設定され、そのため同じトップスコープ内のあらゆるコンテキストからアクセス可能です。 実際には、トップスコープは本質的に一時的であるため、ローカル変数は通常の変数よりもはるかに永続性が低く、ほとんどの場合、保存されたスコープまたは保存されたスコープ値を使用する方が実用的です。

メイン記事へ: Saved scope

それ以外では、ローカル変数はあらゆる点で変数と同じように機能します:

  • set_local_variableエフェクトを使用して設定される
  • 数値を持つ場合、change_local_variableエフェクトで変更できる
  • remove_local_variableエフェクトで削除される
  • local_var:some_local_varを使用してアクセスされる

参考文献[編集 | ソースを編集]

ドキュメンテーション スクリプトスコープ効果トリガー変数補正リスト
スクリプト AIブックマークキャラクターコマンド評議会文化ディシジョン王朝イベント政府歴史領地ライフスタイル連隊宗教スクリプト値ストーリーサイクル闘争称号特性
インターフェース インターフェースデータ型ローカライズカスタムローカライズフレーバー化
マップ マップ地形
グラフィック 3Dモデルエクスポーター紋章グラフィックアセットフォントパーティクルシェーダーユニットモデル
オーディオ 音楽サウンド
その他 コンソールコマンドチェックサムModの構造Mod制作ツールトラブルシューティング