(同步到官方百科15:28, 11 September 2020 WeirdMatter) |
(同步到官方百科 20:34, 2 October 2020 WeirdMatter) |
||
第2行: | 第2行: | ||
Modding characters involves changing their appearance, data and behaviour. This can vary from small tweaks like adding gold or piety, to complex changes like scripting new visual effects and more. | Modding characters involves changing their appearance, data and behaviour. This can vary from small tweaks like adding gold or piety, to complex changes like scripting new visual effects and more. | ||
== Changing | == Changing appearance through scripts == | ||
Crusader Kings 3 uses a DNA system to define a character's appearance, which has changed from the one used in Crusader Kings 2. These changes allow for more specific and realistic appearances. | |||
You can change a character's DNA through dna_modifiers. Create a file in | You can change a character's DNA through dna_modifiers. Create a file in {{cite file|gfx/portraits/portrait_modifiers}} with any filename and add this: | ||
<pre> | <pre> | ||
第46行: | 第46行: | ||
If you encounter any issues, check the error.log of the game for any specific error messages and correct your script accordingly. | If you encounter any issues, check the error.log of the game for any specific error messages and correct your script accordingly. | ||
== Adding new characters or changing existing == | |||
For some mods, for example total conversions, new characters are needed. In Crusader Kings 3 this kind of character modding is pretty easy. | |||
After creating your mod (which is explained in a corresponding article), you have to edit an existing or create a new txt.-file in the folder {{cite file|example-mod/history/characters}}. | |||
In our example the file will be named {{cite file|example.txt}}. An example character will look like this: | |||
<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> | |||
* First of all, a character ID is assigned. The ID needs to be unique; going for 900000 and further should be safe. This ID is used to refer to the character within the game files. | |||
* The first name of the character can be set via the use of <code>name = "NAME"</code>. Note that in-game names may change based on culture (see [[culture modding]]). | |||
* In the dna-line the path for a specific dna can be inserted. An existing dna from the {{cite file|00_dna.txt}} in {{cite file|common/dna_data}} can be used or an new created by using the portrait editor. | |||
* To set the character's gender to female, use <code>female = yes</code>. | |||
* A character can be added to an existing or a new dynasty. Use <code>dynasty = DYNASTY_ID</code> for dynasties without houses, or <code>dynasty_house = HOUSE_ID</code> otherwise. The dynasty ID and house ID can be found in {{cite file|common/dynasties}} and {{cite file|common\dynasty_houses}}, respectively. See [[dynasties modding]]. | |||
* Culture and faith must be assigned with <code>culture = CULTURE_ID</code> and <code>religion = FAITH_ID</code>, respectively. The right names can be found by searching in the corresponding folders {{cite file|common/culture}} and {{cite file|common/religion}}. | |||
* Attributes can be set freely. Their value caps at 100. If they are not assigned, the game will generate random values. Note that this only adds to the character's ''base'' attribute values, so the final value may be smaller or larger depending on traits and other factors. The attributes are as follows: | |||
:* <code>martial</code> | |||
:* <code>prowess</code> | |||
:* <code>diplomacy</code> | |||
:* <code>intrigue</code> | |||
:* <code>stewardship</code> | |||
:* <code>learning</code> | |||
* Traits can be added through the use of <code>trait = TRAIT_ID</code>. Replace <code>TRAIT_ID</code> with the appropriate [[trait ID]]. An unlimited amount of traits may be added; unless assigned or specified otherwise, the game will generate random traits. To ensure that traits are not changed at the start of the game, use <code>disallow_random_traits = yes</code>. | |||
* Parents may be optionally assigned by using <code>father = CHARACTER_ID</code> and <code>mother = CHARACTER_ID</code>. Ensure that one uses the target character's ID, as opposed to their name. This can be useful in creating families. | |||
* Sexuality can be set through <code>sexuality = SEXUALITY_ID</code>. The following can be used: | |||
:* <code>asexual</code> | |||
:* <code>heterosexual</code> | |||
:* <code>homosexual</code> | |||
:* <code>bisexual</code> | |||
* Set the character's base health through <code>health = HEALTH_VALUE</code>, and fertility with <code>fertility = FERTILITY_VALUE</code>. | |||
* Finally, birth and death of the character have to be defined. Crusader Kings 3 uses <code>yyyy.mm.dd</code> for date formats. Define a date block using <code>DATE = {...}</code>, replacing <code>...</code> with <code>birth = yes</code> or <code>death = yes</code>. Alternatively, replace <code>yes</code> with the date surrounded by speech marks (<code>"</code>). See [[#Advanced use of date blocks|more uses of date blocks]]. | |||
The same steps work for changing existing characters. Sometimes, like for Charlemagne, there are already most of the possible lines. | |||
=== Advanced use of date blocks === | |||
* <code>add_spouse = CHARACTER_ID</code>, <code>remove_spouse = CHARACTER_ID</code> to add/remove spouses. | |||
* <code>give_nickname = NICKNAME_ID</code> to add nicknames. Later uses of <code>give_nickname</code> replace old nicknames. See [[nickname ID]]. | |||
* <code>employer = CHARACTER_ID</code>, similar to <code>set_employer = CHARACTER_ID</code> effect, moves the scoped character to the specified character's court. | |||
* <code>give_council_position = COUNCILLOR_ID</code> to make the character a councillor. The following are accepted: | |||
:* <code>councillor_marshal</code> | |||
:* <code>councillor_spymaster</code> | |||
:* <code>councillor_chancellor</code> | |||
:* <code>councillor_court_chaplain</code> | |||
:* <code>councillor_steward</code> | |||
* Assignments defined in the previous section, like <code>trait = TRAIT_ID</code>, may also be used in date blocks. | |||
* Various other [[effect]]s can be used that have a character scope, either directly in the date block or in an <code>effect</code> sub-block. See the following example from the game files, used to add a character flag and set character sexuality randomly:<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> | |||
== References == | |||
<references/> | |||
{{Modding navbox}} | {{Modding navbox}} | ||
[[Category:模组制作]] | [[Category:模组制作]] | ||
[[en:Characters modding]] | [[en:Characters modding]] |
2020年10月18日 (日) 22:08的版本
Modding characters involves changing their appearance, data and behaviour. This can vary from small tweaks like adding gold or piety, to complex changes like scripting new visual effects and more.
Changing appearance through scripts
Crusader Kings 3 uses a DNA system to define a character's appearance, which has changed from the one used in Crusader Kings 2. These changes allow for more specific and realistic appearances.
You can change a character's DNA through dna_modifiers. Create a file in gfx/portraits/portrait_modifiers
with any filename and add this:
dna_change_example_modifier = { usage = game 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 } } } }
This will add the western_imperial headgear and change the hair color of any character with the "dna_change_example_modifier" flag. You can add a flag to a character with the add_character_flag command, like this:
add_character_flag = { flag = dna_change_example_modifier }
If you encounter any issues, check the error.log of the game for any specific error messages and correct your script accordingly.
Adding new characters or changing existing
For some mods, for example total conversions, new characters are needed. In Crusader Kings 3 this kind of character modding is pretty easy.
After creating your mod (which is explained in a corresponding article), you have to edit an existing or create a new txt.-file in the folder example-mod/history/characters
.
In our example the file will be named example.txt
. An example character will look like this:
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 } }
- First of all, a character ID is assigned. The ID needs to be unique; going for 900000 and further should be safe. This ID is used to refer to the character within the game files.
- The first name of the character can be set via the use of
name = "NAME"
. Note that in-game names may change based on culture (see culture modding). - In the dna-line the path for a specific dna can be inserted. An existing dna from the
00_dna.txt
incommon/dna_data
can be used or an new created by using the portrait editor. - To set the character's gender to female, use
female = yes
. - A character can be added to an existing or a new dynasty. Use
dynasty = DYNASTY_ID
for dynasties without houses, ordynasty_house = HOUSE_ID
otherwise. The dynasty ID and house ID can be found incommon/dynasties
andcommon\dynasty_houses
, respectively. See dynasties modding. - Culture and faith must be assigned with
culture = CULTURE_ID
andreligion = FAITH_ID
, respectively. The right names can be found by searching in the corresponding folderscommon/culture
andcommon/religion
. - Attributes can be set freely. Their value caps at 100. If they are not assigned, the game will generate random values. Note that this only adds to the character's base attribute values, so the final value may be smaller or larger depending on traits and other factors. The attributes are as follows:
martial
prowess
diplomacy
intrigue
stewardship
learning
- Traits can be added through the use of
trait = TRAIT_ID
. ReplaceTRAIT_ID
with the appropriate trait ID. An unlimited amount of traits may be added; unless assigned or specified otherwise, the game will generate random traits. To ensure that traits are not changed at the start of the game, usedisallow_random_traits = yes
. - Parents may be optionally assigned by using
father = CHARACTER_ID
andmother = CHARACTER_ID
. Ensure that one uses the target character's ID, as opposed to their name. This can be useful in creating families. - Sexuality can be set through
sexuality = SEXUALITY_ID
. The following can be used:
asexual
heterosexual
homosexual
bisexual
- Set the character's base health through
health = HEALTH_VALUE
, and fertility withfertility = FERTILITY_VALUE
.
- Finally, birth and death of the character have to be defined. Crusader Kings 3 uses
yyyy.mm.dd
for date formats. Define a date block usingDATE = {...}
, replacing...
withbirth = yes
ordeath = yes
. Alternatively, replaceyes
with the date surrounded by speech marks ("
). See more uses of date blocks.
The same steps work for changing existing characters. Sometimes, like for Charlemagne, there are already most of the possible lines.
Advanced use of date blocks
add_spouse = CHARACTER_ID
,remove_spouse = CHARACTER_ID
to add/remove spouses.give_nickname = NICKNAME_ID
to add nicknames. Later uses ofgive_nickname
replace old nicknames. See nickname ID.employer = CHARACTER_ID
, similar toset_employer = CHARACTER_ID
effect, moves the scoped character to the specified character's court.give_council_position = COUNCILLOR_ID
to make the character a councillor. The following are accepted:
councillor_marshal
councillor_spymaster
councillor_chancellor
councillor_court_chaplain
councillor_steward
- Assignments defined in the previous section, like
trait = TRAIT_ID
, may also be used in date blocks. - Various other effects can be used that have a character scope, either directly in the date block or in an
effect
sub-block. See the following example from the game files, used to add a character flag and set character sexuality randomly:[1]
101515 = { ... 1019.1.1 = { ... effect = { add_character_flag = has_scripted_appearance random_list = { 50 = { set_sexuality = heterosexual } 50 = { set_sexuality = bisexual } } } } ... }
References
- ↑
game\history\characters\danish.txt
, character101515
文档 | Effects • 触发器 • 修正 • 作用域 • 变量 • 数据类型 • 本地化 • 可定制的本地化 |
脚本 | AI • 剧本 • 角色 • 效果指令 • 内阁 • 文化 • 决议 • 宗族 • 事件 • 政体 • 历史 • 地产 • 生活方式 • 军队 • 宗教 • Story cycles • 头衔 • 特质 |
地图 | 地图 • 地形 |
图形 | 3D模型 • Exporters • 界面 • Coat of arms • Graphical assets • Fonts • Particles • Shaders • Unit models |
音频 | Music • Sound |
其他 | 控制台指令 • 校验码 • 模组结构 • Troubleshooting |