差分

ナビゲーションに移動 検索に移動
キャラクター mod の日本語化(kagi)
{{version|1.1}}

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

キャラクターのModは、見た目、データ、振る舞いを変更することを指します。金銭や信心を追加するような小さな調整から、新しい視覚効果のスクリプト化などの複雑な変更までさまざまです。

== スクリプトによる外見の変更 ==
Crusader Kings 3では、キャラクターの外見を定義するためにDNAシステムを使用しており、Crusader Kings 2で使われていたものから変更されています。これにより、より具体的で現実的な外見が可能になりました。

dna_modifiersを使ってキャラクターのDNAを変更できます。{{cite file|gfx/portraits/portrait_modifiers}} に任意のファイル名でファイルを作成し、次を追加します:

<pre>
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
}
}
}
}
</pre>

(priorityが高いほど、後に適用され、以前のものを上書きします。デフォルトは0。2つのグループが同じpriorityの場合、ファイル内の出現順で適用されます。)

これにより、「dna_change_example_modifier」フラグを持つ任意のキャラクターに western_imperial の頭装備が追加され、髪の色が変更されます。キャラクターにフラグを追加するには、次のように add_character_flag コマンドを使用します:

<pre>
add_character_flag = {
flag = dna_change_example_modifier
}
</pre>

問題が発生した場合は、ゲームの error.log を確認し、特定のエラーメッセージに従ってスクリプトを修正してください。

== Outfitタグ ==
キャラクターの着せ替えは、Crusader Kings 3 が提示する中世ファンタジーを魅力的に見せるうえで非常に重要です。<br>
Outfitタグは、イベント中に特定の衣服や衣服グループをキャラクターに強制できるようにすることで、そのファンタジーの表現を助けます。

注意点として、Outfitタグでキャラクターに鎧を適用すべきではありません。代わりに、イベントの <code>immediate</code> で <code>single_combat_duel_armor</code> キャラクターフラグをセットし、<code>after</code> ブロックで削除してください。

=== outfit_tags の使用 ===
有効なOutfitタグの一覧は現在整備されていません。そのため、標準的な方法としては、<code>..game\events</code> と <code>..game\gfx\portraits\portrait_modifiers</code> フォルダ内でキーワード <code>outfit_tags</code> を検索します。

使用したい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>

または、<code>triggered_outfit</code> を使って条件付きにできます(例:所持金が一定以上のときだけ、配偶者が死んでいるときだけ、など)。
<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 の作成 ===
[[File:modding_portrait_editor_button_and_UI_sample.jpg|thumb|ポートレートエディタの開き方と使い方の例。|x144px]]スクリプトを書く前に、まずポートレートエディタで衣装をプレビューして、どのアイテムにOutfitタグを追加したいかの目星をつけましょう。

まず、ポートレートエディタ([https://ck3.paradoxwikis.com/Mod_troubleshooting#Getting_Access_to_the_Debug_Tools コンソールメニュー]内の右側の小さな緑のボタン)を開きます。<br>
任意で「randomize DNA」をクリックして、より人間らしい見た目のキャラクターにできます。その後、「gene」の直下のフィールドをクリックしてドロップダウンメニューを表示し、プレビューしたいカテゴリを選択(または入力)します。<br>
選択したら、「subgroup」の直下にあるボタンをクリックし、同様に特定の衣装(gene)を選びます。<br>
おめでとうございます! これでポートレートエディタでgeneをプレビューできるようになりました。サブグループ名に注意し、使いたいものを書き留めておきましょう。

次のステップは、サブグループのOutfitタグを見つけるか作成することです。<br>
キャラクターが身につけられる衣服(実際には髪も含むgene)は、<code>..game\gfx\portraits\portrait_modifiers</code> にあるファイルに格納されています。

衣装テンプレートはおおむね次のような見た目になります:
<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>
コメントにあるように、衣装に <code>outfit_tags</code> 行がない場合は、追加して構いません。<br>
サブグループ名を手がかりにファイル内を探しても目的の衣装が見つからない場合は、テンプレートを一から作成できます。

まず、目的に近いテンプレートを選び、コピーします。<br>
その後、<code>dna_modifiers</code> の <code>accessory</code> の下で <code>template = some_name_here</code> をポートレートエディタに表示されているサブグループ名に置き換え、テンプレートの名前とOutfitタグを一意(かつ一貫性のためにサブグループ名にある程度合わせて)になるよう更新します。ポートレートエディタを使いたくない場合は、<code>..game\common\genes</code> に行くと、ゲーム内の全てのgeneが記載されています。

== 新規キャラクターの追加または既存キャラクターの変更 ==
トータルコンバージョンのような一部のModでは、新しいキャラクターが必要です。Crusader Kings 3ではこの種のキャラクターModは比較的簡単です。
Modの作成(別記事参照)の後、{{cite file|example-mod/history/characters}} フォルダ内の既存のtxtファイルを編集するか、新規に作成します。
この例ではファイル名は {{cite file|example.txt}} とします。キャラクターの例は次のようになります:
<pre>
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
}
}
</pre>
* まず、キャラクターIDを割り当てます。IDは一意である必要があります。900000以降にしておけば安全でしょう。また、ID文字列内に "modChar0" のような文字を使用することも可能です。少数のキャラクターを含む小規模なModの場合、全キャラクター間で一意である限り、キャラクター名そのものをIDとして使うのも有用です。このIDはゲームファイル内でキャラクターを参照するために使用され、新しいゲーム作成時には動的なIDに置き換えられます。
* キャラクターの名は <code>name = "NAME"</code> で設定できます。ゲーム内では文化に応じて名前が変化する場合があります([[culture modding]] 参照)。
* dna行には特定のDNAへのパスを挿入できます。{{cite file|common/dna_data}} の {{cite file|00_dna.txt}} にある既存のDNAを使用するか、ポートレートエディタで新規作成したものを使えます。
* キャラクターの性別を女性に設定するには、<code>female = yes</code> を使用します。
* 既存または新規の王朝にキャラクターを所属させられます。家のない王朝には <code>dynasty = DYNASTY_ID</code>、そうでない場合は <code>dynasty_house = HOUSE_ID</code> を使用します。王朝IDと家IDはそれぞれ {{cite file|common/dynasties}} と {{cite file|common\dynasty_houses}} にあります。[[dynasties modding]] 参照。
* 主要能力値は自由に設定できます。値は100で上限です。未設定の場合、ゲームがランダムに生成します。これはキャラクターの「基礎」能力値に加算されるだけなので、特性などの要素により最終値は小さくも大きくもなり得ます。能力値は以下の通りです:
:* <code>martial</code>
:* <code>prowess</code>
:* <code>diplomacy</code>
:* <code>intrigue</code>
:* <code>stewardship</code>
:* <code>learning</code>
* 特性は <code>trait = TRAIT_ID</code> で追加できます。<code>TRAIT_ID</code> は適切な [[trait ID]] に置き換えてください。追加数に制限はありません。特に指定しない限り、ゲームがランダムに特性を生成します。ゲーム開始時に特性が変更されないようにするには、<code>disallow_random_traits = yes</code> を使用します。
* 両親は <code>father = CHARACTER_ID</code> と <code>mother = CHARACTER_ID</code> で任意に設定できます。名前ではなく対象キャラクターのIDを使用してください。家族の作成に便利です。
* 性的指向は <code>sexuality = SEXUALITY_ID</code> で設定できます。使用可能なのは以下の通りです:
:* <code>asexual</code>
:* <code>heterosexual</code>
:* <code>homosexual</code>
:* <code>bisexual</code>
* 体力の基礎値は <code>health = HEALTH_VALUE</code>、生殖力は <code>fertility = FERTILITY_VALUE</code> で設定します。

* 最後に、キャラクターの誕生と死を定義します。Crusader Kings 3では日付形式に <code>yyyy.mm.dd</code> を使用します。<code>DATE = {...}</code> で日付ブロックを定義し、<code>...</code> を <code>birth = yes</code> または <code>death = yes</code> に置き換えます。あるいは、<code>yes</code> の代わりに引用符(<code>"</code>)で囲んだ日付を指定します。[[#Advanced use of date blocks|日付ブロックの高度な使い方]] も参照してください。

同じ手順は既存キャラクターの変更にも有効です。シャルルマーニュのように、既に多くの行が用意されている場合もあります。

=== 日付ブロックの高度な使い方 ===
* 配偶者の追加/削除には <code>add_spouse = CHARACTER_ID</code>、<code>remove_spouse = CHARACTER_ID</code>。
* あだ名の付与には <code>give_nickname = NICKNAME_ID</code>。後の <code>give_nickname</code> は古いあだ名を置き換えます。[[nickname ID]] 参照。
* <code>employer = CHARACTER_ID</code> は <code>set_employer = CHARACTER_ID</code> と同様で、対象キャラクターを指定キャラクターの宮廷に移動させます。
* 役職に就けるには <code>give_council_position = COUNCILLOR_ID</code> を使用します。以下が使用可能です:
:* <code>councillor_marshal</code>
:* <code>councillor_spymaster</code>
:* <code>councillor_chancellor</code>
:* <code>councillor_court_chaplain</code>
:* <code>councillor_steward</code>
* 先のセクションで定義した割り当て(<code>trait = TRAIT_ID</code> など)は、日付ブロック内でも使用できます。
* キャラクタースコープを持つ様々な [[effect]] を、日付ブロック内で直接、または <code>effect</code> サブブロック内で使用できます。以下はゲームファイルからの例で、キャラクターフラグを追加し、性的指向をランダムに設定します:<ref>{{cite file|game\history\characters\danish.txt}}, character <code>101515</code></ref>
<pre>
101515 = {
...
1019.1.1 = {
...
effect = {
add_character_flag = has_scripted_appearance
random_list = {
50 = { set_sexuality = heterosexual }
50 = { set_sexuality = bisexual }
}
}
}
...
}
</pre>

=== スクリプト化されたキャラクターの髪型とひげ ===
スクリプト化されたキャラクターがゲーム内で正しい髪型とひげを使用するようにするには、{{cite file|gfx\portraits\portrait_modifiers\99_beards_scripted_characters.txt}} と {{cite file|gfx\portraits\portrait_modifiers\99_hairstyles_scripted_characters.txt}} にエントリを追加する必要があります。目的の髪型のエントリの下に、次を追加します:
<pre>
modifier = {
add = 200
exists = character:<history_id>
this = character:<history_id>
}
</pre>

== 他のスクリプトからキャラクターを呼び出す ==
Modは、他のスコープと同様に、スクリプトから既存の定義済みキャラクターと相互作用できます。{{cite file|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>

== 参考 ==
<references/>
{{Modding navbox}}
[[Category:Modding]]
98

回編集

案内メニュー