キャラクター Mod
※2025/10/6、英wikiよりkagi翻訳を通しました。機械翻訳なので一部不自然な日本語があるかもしれません。ぜひ編集してくれるとありがたいです。
キャラクターのModは、見た目、データ、振る舞いを変更することを指します。金銭や信心を追加するような小さな調整から、新しい視覚効果のスクリプト化などの複雑な変更までさまざまです。
スクリプトによる外見の変更[編集 | ソースを編集]
Crusader Kings 3では、キャラクターの外見を定義するためにDNAシステムを使用しており、Crusader Kings 2で使われていたものから変更されています。これにより、より具体的で現実的な外見が可能になりました。
dna_modifiersを使ってキャラクターのDNAを変更できます。gfx/portraits/portrait_modifiers に任意のファイル名でファイルを作成し、次を追加します:
dna_change_example_modifier = {
usage = game
priority = 50 # アクセサリを表示するにはpriority行が必須のようです。
dna_change_example_modifier = {
dna_modifiers = {
accessory = {
mode = add
gene = headgear
template = western_imperial
value = 1.0
}
color = {
mode = modify
gene = hair_color
x = 0.5
y = -0.5
}
}
weight = {
base = 0
modifier = {
add = 100
has_character_flag = dna_change_example_modifier
}
}
}
}
(priorityが高いほど、後に適用され、以前のものを上書きします。デフォルトは0。2つのグループが同じpriorityの場合、ファイル内の出現順で適用されます。)
これにより、「dna_change_example_modifier」フラグを持つ任意のキャラクターに western_imperial の頭装備が追加され、髪の色が変更されます。キャラクターにフラグを追加するには、次のように add_character_flag コマンドを使用します:
add_character_flag = {
flag = dna_change_example_modifier
}
問題が発生した場合は、ゲームの error.log を確認し、特定のエラーメッセージに従ってスクリプトを修正してください。
Outfitタグ[編集 | ソースを編集]
キャラクターの着せ替えは、Crusader Kings 3 が提示する中世ファンタジーを魅力的に見せるうえで非常に重要です。
Outfitタグは、イベント中に特定の衣服や衣服グループをキャラクターに強制できるようにすることで、そのファンタジーの表現を助けます。
注意点として、Outfitタグでキャラクターに鎧を適用すべきではありません。代わりに、イベントの immediate で single_combat_duel_armor キャラクターフラグをセットし、after ブロックで削除してください。
outfit_tags の使用[編集 | ソースを編集]
有効なOutfitタグの一覧は現在整備されていません。そのため、標準的な方法としては、..game\events と ..game\gfx\portraits\portrait_modifiers フォルダ内でキーワード outfit_tags を検索します。
使用したいOutfitタグを見つけたら、それをポートレートに直接追加できます。 <syntaxhighlight lang="CoffeeScript"> right_portrait = { character = scope:undercover_thief animation = scheme outfit_tags = { # これらのタグは体の異なる部分をカバーするため、互いに上書きされません western_stealth_hood # 頭を覆うフード sub_saharan_high_nobility # 胴体と脚の主衣装 mena_war_legwear # 靴 } } </syntaxhighlight>
または、triggered_outfit を使って条件付きにできます(例:所持金が一定以上のときだけ、配偶者が死んでいるときだけ、など)。
<syntaxhighlight lang="CoffeeScript">
right_portrait = {
character = scope:merchant_with_funny_wooden_statues_for_sale
animation = personality_rational
triggered_outfit = {
trigger = {} # ここにトリガーを記述。失敗した場合、Outfitは上書きされません
outfit_tags = {} # 使用したいタグをここに挿入
remove_default_outfit = # yes/no を使用。yesの場合、イベントタグのいずれにも一致しないポートレート修飾カテゴリは完全に無効化されます(デフォルトはno)
hide_info = # yes/no を使用。ポートレートのみが表示され、識別可能な要素(紋章、ツールチップ、クリック等)は表示されません(デフォルトはno)
}
}
</syntaxhighlight>
outfit_tags の作成[編集 | ソースを編集]
スクリプトを書く前に、まずポートレートエディタで衣装をプレビューして、どのアイテムにOutfitタグを追加したいかの目星をつけましょう。
まず、ポートレートエディタ(コンソールメニュー内の右側の小さな緑のボタン)を開きます。
任意で「randomize DNA」をクリックして、より人間らしい見た目のキャラクターにできます。その後、「gene」の直下のフィールドをクリックしてドロップダウンメニューを表示し、プレビューしたいカテゴリを選択(または入力)します。
選択したら、「subgroup」の直下にあるボタンをクリックし、同様に特定の衣装(gene)を選びます。
おめでとうございます! これでポートレートエディタでgeneをプレビューできるようになりました。サブグループ名に注意し、使いたいものを書き留めておきましょう。
次のステップは、サブグループのOutfitタグを見つけるか作成することです。
キャラクターが身につけられる衣服(実際には髪も含むgene)は、..game\gfx\portraits\portrait_modifiers にあるファイルに格納されています。
衣装テンプレートはおおむね次のような見た目になります: <syntaxhighlight lang="CoffeeScript"> deal_with_it_sunglasses = {
dna_modifiers = {
accessory = {
mode = add
gene = clothes
template = deal_with_it_sunglasses_headgear # 読み込む3Dモデルへの参照を持つサブグループ
range = { 0 1 } # 乱数が正しく機能するため
}
}
outfit_tags = { deal_with_it_sunglasses_headgear } # ポートレート画面で使用するタグ。この行がない場合は追加し、適切な名前を付ける。
weight = { # ..通常は、出自のサブグループ名に合わせて新しいOutfitタグを命名するのがよい(この例では deal_with_it_sunglasses_headgear)。
base = 200
}
}
</syntaxhighlight>
コメントにあるように、衣装に outfit_tags 行がない場合は、追加して構いません。
サブグループ名を手がかりにファイル内を探しても目的の衣装が見つからない場合は、テンプレートを一から作成できます。
まず、目的に近いテンプレートを選び、コピーします。
その後、dna_modifiers の accessory の下で template = some_name_here をポートレートエディタに表示されているサブグループ名に置き換え、テンプレートの名前とOutfitタグを一意(かつ一貫性のためにサブグループ名にある程度合わせて)になるよう更新します。ポートレートエディタを使いたくない場合は、..game\common\genes に行くと、ゲーム内の全てのgeneが記載されています。
新規キャラクターの追加または既存キャラクターの変更[編集 | ソースを編集]
トータルコンバージョンのような一部のModでは、新しいキャラクターが必要です。Crusader Kings 3ではこの種のキャラクターModは比較的簡単です。
Modの作成(別記事参照)の後、example-mod/history/characters フォルダ内の既存のtxtファイルを編集するか、新規に作成します。
この例ではファイル名は example.txt とします。キャラクターの例は次のようになります:
999001 = {
name = "Henri" #Henri de Lyon
dna = lyon_twin_dna_entry
dynasty = 2100001 #Lyon
martial = 14
diplomacy = 23
intrigue = 10
stewardship = 21
religion = catholic
culture = french
trait = diligent
trait = education_learning_4
trait = just
trait = twin
trait = physique_good_3
trait = intellect_good_3
trait = beauty_good_3
trait = shrewd
disallow_random_traits = yes
father = 999003
mother = 999004
846.7.29 = {
birth = yes
}
920.5.25 = {
death = yes
}
}
- まず、キャラクターIDを割り当てます。IDは一意である必要があります。900000以降にしておけば安全でしょう。また、ID文字列内に "modChar0" のような文字を使用することも可能です。少数のキャラクターを含む小規模なModの場合、全キャラクター間で一意である限り、キャラクター名そのものをIDとして使うのも有用です。このIDはゲームファイル内でキャラクターを参照するために使用され、新しいゲーム作成時には動的なIDに置き換えられます。
- キャラクターの名は
name = "NAME"で設定できます。ゲーム内では文化に応じて名前が変化する場合があります(culture modding 参照)。 - dna行には特定のDNAへのパスを挿入できます。
common/dna_dataの00_dna.txtにある既存のDNAを使用するか、ポートレートエディタで新規作成したものを使えます。 - キャラクターの性別を女性に設定するには、
female = yesを使用します。 - 既存または新規の王朝にキャラクターを所属させられます。家のない王朝には
dynasty = DYNASTY_ID、そうでない場合はdynasty_house = HOUSE_IDを使用します。王朝IDと家IDはそれぞれcommon/dynastiesとcommon\dynasty_housesにあります。dynasties modding 参照。 - 主要能力値は自由に設定できます。値は100で上限です。未設定の場合、ゲームがランダムに生成します。これはキャラクターの「基礎」能力値に加算されるだけなので、特性などの要素により最終値は小さくも大きくもなり得ます。能力値は以下の通りです:
martialprowessdiplomacyintriguestewardshiplearning
- 特性は
trait = TRAIT_IDで追加できます。TRAIT_IDは適切な trait ID に置き換えてください。追加数に制限はありません。特に指定しない限り、ゲームがランダムに特性を生成します。ゲーム開始時に特性が変更されないようにするには、disallow_random_traits = yesを使用します。 - 両親は
father = CHARACTER_IDとmother = CHARACTER_IDで任意に設定できます。名前ではなく対象キャラクターのIDを使用してください。家族の作成に便利です。 - 性的指向は
sexuality = SEXUALITY_IDで設定できます。使用可能なのは以下の通りです:
asexualheterosexualhomosexualbisexual
- 体力の基礎値は
health = HEALTH_VALUE、生殖力はfertility = FERTILITY_VALUEで設定します。
- 最後に、キャラクターの誕生と死を定義します。Crusader Kings 3では日付形式に
yyyy.mm.ddを使用します。DATE = {...}で日付ブロックを定義し、...をbirth = yesまたはdeath = yesに置き換えます。あるいは、yesの代わりに引用符(")で囲んだ日付を指定します。日付ブロックの高度な使い方 も参照してください。
同じ手順は既存キャラクターの変更にも有効です。シャルルマーニュのように、既に多くの行が用意されている場合もあります。
日付ブロックの高度な使い方[編集 | ソースを編集]
- 配偶者の追加/削除には
add_spouse = CHARACTER_ID、remove_spouse = CHARACTER_ID。 - あだ名の付与には
give_nickname = NICKNAME_ID。後のgive_nicknameは古いあだ名を置き換えます。nickname ID 参照。 employer = CHARACTER_IDはset_employer = CHARACTER_IDと同様で、対象キャラクターを指定キャラクターの宮廷に移動させます。- 役職に就けるには
give_council_position = COUNCILLOR_IDを使用します。以下が使用可能です:
councillor_marshalcouncillor_spymastercouncillor_chancellorcouncillor_court_chaplaincouncillor_steward
- 先のセクションで定義した割り当て(
trait = TRAIT_IDなど)は、日付ブロック内でも使用できます。 - キャラクタースコープを持つ様々な effect を、日付ブロック内で直接、または
effectサブブロック内で使用できます。以下はゲームファイルからの例で、キャラクターフラグを追加し、性的指向をランダムに設定します:[1]
101515 = {
...
1019.1.1 = {
...
effect = {
add_character_flag = has_scripted_appearance
random_list = {
50 = { set_sexuality = heterosexual }
50 = { set_sexuality = bisexual }
}
}
}
...
}
スクリプト化されたキャラクターの髪型とひげ[編集 | ソースを編集]
スクリプト化されたキャラクターがゲーム内で正しい髪型とひげを使用するようにするには、gfx\portraits\portrait_modifiers\99_beards_scripted_characters.txt と gfx\portraits\portrait_modifiers\99_hairstyles_scripted_characters.txt にエントリを追加する必要があります。目的の髪型のエントリの下に、次を追加します:
modifier = {
add = 200
exists = character:<history_id>
this = character:<history_id>
}
他のスクリプトからキャラクターを呼び出す[編集 | ソースを編集]
Modは、他のスコープと同様に、スクリプトから既存の定義済みキャラクターと相互作用できます。character:<id> の記法でキャラクターを参照します。以下はゲームファイルからの例です: <syntaxhighlight lang="text">
- このコードは /common/on_action/game_start.txt の15行目(バージョン 1.5.1.1)にあります
character:74025 = { if = { limit = { is_alive = yes is_landed = yes } } trigger_event = bookmark.0200 } </syntaxhighlight>
参考[編集 | ソースを編集]
- ↑
game\history\characters\danish.txt, character101515
| ドキュメンテーション | スクリプト • スコープ • 効果 • トリガー • 変数 • 補正リスト |
| スクリプト | AI • ブックマーク • キャラクター • コマンド • 評議会 • 文化 • ディシジョン • 王朝 • イベント • 政府 • 歴史 • 領地 • ライフスタイル • 連隊 • 宗教 • スクリプト値 • ストーリーサイクル • 闘争 • 称号 • 特性 |
| インターフェース | インターフェース • データ型 • ローカライズ • カスタムローカライズ • フレーバー化 |
| マップ | マップ • 地形 |
| グラフィック | 3Dモデル • エクスポーター • 紋章 • グラフィックアセット • フォント • パーティクル • シェーダー • ユニットモデル |
| オーディオ | 音楽 • サウンド |
| その他 | コンソールコマンド • チェックサム • Modの構造 • Mod制作ツール • トラブルシューティング |