角色模组制作:修订间差异

(同步到官方百科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 Appearance through Scripts ==
== Changing appearance through scripts ==
In Crusader Kings 3, there is a complicated system involving 'DNA' to define a character's appearance, which has changed from Crusader Kings 2. These changes allow for more specific and realistic appearances.
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:
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 in common/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, or dynasty_house = HOUSE_ID otherwise. The dynasty ID and house ID can be found in common/dynasties and common\dynasty_houses, respectively. See dynasties modding.
  • Culture and faith must be assigned with culture = CULTURE_ID and religion = FAITH_ID, respectively. The right names can be found by searching in the corresponding folders common/culture and 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:
  • martial
  • prowess
  • diplomacy
  • intrigue
  • stewardship
  • learning
  • Traits can be added through the use of trait = TRAIT_ID. Replace TRAIT_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, use disallow_random_traits = yes.
  • Parents may be optionally assigned by using father = CHARACTER_ID and mother = 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 with fertility = 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 using DATE = {...}, replacing ... with birth = yes or death = yes. Alternatively, replace yes 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 of give_nickname replace old nicknames. See nickname ID.
  • employer = CHARACTER_ID, similar to set_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

  1. game\history\characters\danish.txt, character 101515