フレーバー化

提供:ck3wiki
ナビゲーションに移動 検索に移動


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

フレーバライズとは、キャラクターに表示される「称号」をゲームがどのように定義し、優先順位を付けるかという仕組みです。キャラクターは複数の称号の条件を満たすことが多いため、競合や不適切な称号表示を避けるために、フレーバライズ用ファイルで称号の要件と全体の優先度を定義します。

文法[編集 | ソースを編集]

フレーバライズのエントリは以下のように分解されています: <syntaxhighlight lang="CoffeeScript"> prince_male_roman = { # 称号のキー。ゲームがこれで見つけて参照します type = character # 対象は誰/何ですか? gender = male # どの性別向けですか?(type = character の場合のみ使用) special = ruler_child # 特殊な要件はありますか? tier = kingdom # どの階級である必要がありますか? priority = 40 # 優先度はどれくらい高いですか? name_lists = { name_list_roman } # この称号を得るにはどの名前リストに属している必要がありますか? governments = { feudal_government } # どの政体に属している必要がありますか? top_liege = no # 自国のトップ君主である必要がありますか? } </syntaxhighlight>

エントリ キャラクターで必須? タイトルで必須? 説明と値
type ✔️ ✔️ character または title を使用。キャラクターに適用するか称号に適用するかを定義。すべてで必須。
gender ✔️ male または female を使用。称号では使用しないこと。
special ✔️ ruler_child(王子・王女用)、queen_mothercouncilorhead_of_faithholder のいずれか。キャラクタータイプでは定義必須。最も一般的なのは holder
tier baronycounty duchykingdomempire が使用可。未定義の場合は列挙したすべての階級に適用。必須ではない。
priority ✔️ ✔️ 任意の数値。0〜2147483647の範囲に収めることを推奨。
name_lists ..game\common\culture\name_lists 内のファイルで定義。自作可。(例: name_list_anglo_saxon
heritages ..game\common\culture\pillars\00_heritage.txt で定義。自作可。(例: heritage_north_germanic
religions ..game\common\religion\religions 内のファイルで定義。自作可。(例: christianity_religion
faiths 宗教内の信仰で定義。自作可。(例: coptic
governments ..game\common\governments\00_government_types.txt で定義。自作可。(例: feudal_government
titles 土地称号を使用。(例: e_byzantium
council_position 定義済みの評議会職を使用。special = councilor が必須。称号では使用しないこと。(例: councillor_court_chaplain
only_independent yesno を使用。「小王」などの称号に使用。
only_holder yesno を使用。yes にすると配偶者は反対の性別称号を受け取らなくなる。市長や女性統治者に有用。
top_liege yesno を使用。top_liege = no を使うと、異なる宗教/文化の封臣が自分の称号を使えるようにできる。配偶者には適用されない。

カスタムフレーバーの例[編集 | ソースを編集]

 
この例の最終結果。

この例では、ロボットをテーマにした一連の称号を作成します。

最初の手順は、ゲーム内のフレーバライズ用ディレクトリ(game\common\flavorization)をあなたのMODフォルダ内に再現することです。例: ..Documents\Paradox Interactive\Crusader Kings III\mod\FlavourTestMod\common\flavorization

準備ができたら、新しいフレーバライズを保存するテキストファイルを作成します。この例では my_cool_flavorization.txt と名付けます。バニラのフレーバライズファイルをコピーして改変することもできますが、他のMODや将来のゲームバージョンとの互換性が低下する点には注意してください。

それでは、未来のロボット支配者とその土地の称号をスクリプト化していきましょう: <syntaxhighlight lang="CoffeeScript">

      1. Robots

king_robot = { # Roboto type = character gender = male special = holder tier = county priority = 5000 governments = { feudal_government } top_liege = no }

queen_robot = { # Robota type = character gender = female special = holder tier = county priority = 5000 governments = { feudal_government } top_liege = no }

county_robot = { # Roboland type = title tier = county priority = 5000 governments = { feudal_government tribal_government } # 角括弧内にはカンマなしで複数項目を追加できます。 top_liege = no } </syntaxhighlight> 新しい称号が機能しているかを明確に確認できるよう、非常に単純なルールを設定しました。封建制の政府で伯爵位(county)の称号を保持している者は対象です。
また、優先度を5000に設定しました。数値が高いほど優先度が高くなります。このくらい高い値なら、新しい称号は他のすべてを上書きします。

次に、ローカライズを保存するファイルを ..mod\FlavourTestMod\localization\english\culture に作成し、my_new_culture_titles_l_english.yml と名付けます。
必ず UTF8+Bom でエンコードしてください。

そのローカライズファイル内で、称号キーにテキストを追加します: <syntaxhighlight lang="yaml"> l_english:

      1. Robot ###
king_robot: "Roboto"
queen_robot: "Robota"
county_robot: "Roboland"

</syntaxhighlight>

両方のファイルを保存し、MODを有効にしてゲームを起動すると、ゲーム世界の至る所で「robotos」と「robotas」が自分たちの「robolands」を治めているのが見つかるはずです。初めてのフレーバライズ作成、おめでとうございます。

カスタマイズ可能なローカライズで機能を拡張[編集 | ソースを編集]

 
この拡張例の最終結果。同じ称号が所持金に応じて異なる表記になる様子を示しています。

フレーバライズは強力ですが、利用できるトリガーには制限があります。より多くのトリガーにアクセスしたい場合は、キーをカスタマイズ可能なローカライズキー(スクリプト動作を持つローカライズキー)に置き換える方法があります。

この例では、前のセクションの king_robot 称号を拡張してみます。

まず、カスタムローカライズのロジックを格納するファイルを ..Documents\Paradox Interactive\Crusader Kings III\mod\FlavourTestMod\common\customizable_localization に作成し、my_very_clever_custom_loc.txt と名付けます。

次に、ローカライズキーのカスタムロジックを記述します。
最初にキーとタイプを与えます。ここではそれぞれ king_robotcharacter を使用します。 <syntaxhighlight lang="CoffeeScript"> king_robot = {

   type = character

</syntaxhighlight> その後、使用可能なローカライズキーをすべて text ブロックとして定義します。各 text ブロックは、中括弧内にトリガーと、そのトリガーが成功した場合に使用したいローカライズのキーを含めます。カスタムローカライズは、トリガーを満たした最初の text ブロックを選びます。既定値を設定したい場合は fallback = yes を使用します(またはトリガーなしの text ブロックを末尾に置きます)。

<syntaxhighlight lang="CoffeeScript"> king_robot = {

   type = character
   text = {
       trigger = {
           gold > 1000 # いくつでもトリガーを追加できますが、この例では所持金が非常に多いかどうかだけを確認します。
       }
       localization_key = golden_king_robot # トリガーが通れば(条件が真であれば)、このローカライズキーが選ばれます!
   }

text = { fallback = yes # 他が何も通らなければ、トリガーを無視してこれが既定となります。

       localization_key = rusty_king_robot
   }

} </syntaxhighlight> ご覧のとおり、この例ではゴールドチェックを設定し、所持金が1000を超えるキャラクターの通常の「king robot」称号を「golden king robot」に置き換えています。
もちろん、root.faith = { has_doctrine = tenet_struggle_submission } のように、信仰が tenet_struggle_submission という教義を持っているか確認するトリガーなど、いくらでも複雑なトリガーを追加できます。

続いて、先ほどのローカライズファイルに、前述のスクリプトで使用した golden_king_robotrusty_king_robot のキーを追加します。
また、king_robot キーが使用されたときにカスタムローカライズのロジックを実行するよう、カスタムローカライズエントリ [CHARACTER.Custom('king_robot')] を使います。 <syntaxhighlight lang="yaml"> l_english:

      1. Robot ###
king_robot: "[CHARACTER.Custom('king_robot')]"
golden_king_robot: "Gold-Plated MegaBot"
rusty_king_robot: "Rust-Plated Microbot"
queen_robot: "Robota"
county_robot: "Roboland"

</syntaxhighlight>

これで、カスタムローカライズを使って称号にバリエーションを追加できました。おめでとうございます!

続きを読む[編集 | ソースを編集]

  • TheGib770 が Paradox フォーラムでフレーバライズの詳細と仕組みをさらに掘り下げた優れたガイド(リンク: forum:1449550)を作成しています。彼に気軽に連絡してください。


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