Nistrenian Pearl Crown

This commit is contained in:
Thakia 2026-09-04 17:31:22 -03:00
parent 3e5a490438
commit d51333a4d8
49 changed files with 41863 additions and 9 deletions

View file

@ -0,0 +1,20 @@
color_genes = {
hair_color = {
group = hair
color = hair
blend_range = { 0.0 0.0 }
}
skin_color = {
sync_inheritance_with = hair_color
group = body
color = skin
blend_range = { 0.55 0.65 }
}
eye_color = {
sync_inheritance_with = hair_color
group = eyes
color = eye
blend_range = { 0.0 0.0 }
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,179 @@

accessory_genes = {
#####################################
# #
# EYE ACCESSORY #
# #
#####################################
eye_accessory = {
inheritable = no
normal_eyes = {
index = 0
male = { 1 = "male_eyes_normal" }
female = { 1 = "female_eyes_normal" }
boy = male
girl = female
}
normal_eyes_no_shadow = {
index = 1
male = { 1 = "male_eyes_normal_no_shadow" }
female = { 1 = "female_eyes_normal_no_shadow" }
boy = male
girl = female
}
normal_eyes_dark_iris = {
index = 2
male = { 1 = "male_eyes_normal_dark_iris" }
female = { 1 = "female_eyes_normal_dark_iris" }
boy = male
girl = female
}
normal_eyes_asian = {
index = 3
male = { 1 = "male_eyes_normal_asian" }
female = { 1 = "female_eyes_normal_asian" }
boy = male
girl = female
}
bloodshot_eyes = {
index = 4
male = { 1 = "male_eyes_bloodshot" }
female = { 1 = "female_eyes_bloodshot" }
boy = male
girl = female
}
blind_eyes = {
index = 5
male = { 1 = "male_eyes_blind" }
female = { 1 = "female_eyes_blind" }
boy = male
girl = female
}
no_eyes = {
index = 6
male = {}
female = {}
boy = {}
girl = {}
}
# red_eyes = {
# index = 2
# male = { 1 = male_eyes_red }
# female = { 1 = female_eyes_red }
# boy = male
# girl = male
# }
}
#####################################
# #
# TEETH ACCESSORY #
# #
#####################################
teeth_accessory = {
inheritable = no
normal_teeth = {
index = 0
male = {
1 = "male_teeth_normal"
}
female = {
1 = "female_teeth_normal"
}
boy = {
1 = "boy_teeth_normal"
}
girl = {
1 = "girl_teeth_normal"
}
}
ohaguro_teeth = { # Blackened teeth
index = 1
male = {
1 = "male_teeth_ohaguro"
}
female = {
1 = "female_teeth_ohaguro"
}
boy = {
1 = "male_teeth_ohaguro"
}
girl = {
1 = "female_teeth_ohaguro"
}
}
no_teeth = {
index = 2
male = {}
female = {}
boy = {}
girl = {}
}
}
#####################################
# #
# EYELASHES ACCESSORY #
# #
#####################################
eyelashes_accessory = {
inheritable = no
# inheritable = no
no_eyelashes = {
index = 0
male = {
1 = empty
}
female = {
1 = empty
}
boy = male
girl = female
}
normal_eyelashes = {
index = 1
male = {
1 = "male_eyelashes_normal"
}
female = {
1 = "female_eyelashes_normal"
}
boy = male
girl = female
}
asian_eyelashes = {
index = 2
male = {
1 = "male_eyelashes_normal"
}
female = {
1 = "female_eyelashes_normal"
}
boy = male
girl = female
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,860 @@

special_genes = {
accessory_genes = {
#####################################
# #
# BEARDS #
# #
#####################################
beards = {
group = beard
no_beard = {
index = 0
male = {
1 = empty
}
female = {
1 = empty
}
}
all_beards = {
index = 1
male = {
1 = empty
1 = male_beard_western_01
1 = male_beard_western_02
1 = male_beard_western_03
1 = male_beard_western_04
1 = male_beard_western_05
1 = male_beard_western_06
1 = male_beard_western_07
1 = male_beard_western_08
1 = male_beard_western_09
1 = male_beard_western_10
1 = male_beard_mena_01
1 = male_beard_mena_02
1 = male_beard_mena_03
1 = male_beard_mena_04
1 = male_beard_northern_01
1 = male_beard_northern_02
1 = male_beard_northern_03
1 = male_beard_steppe_01
1 = male_beard_steppe_02
1 = male_beard_sub_saharan_01
1 = male_beard_sub_saharan_02
1 = male_beard_sub_saharan_03
1 = male_beard_indian_01
1 = male_beard_indian_02
1 = male_beard_indian_03
1 = male_beard_fp1_01 # Twin braids with metal rings
1 = male_beard_fp1_02 # Short low beard
1 = male_beard_fp1_03 # Wavy pointy beard
1 = male_beard_fp1_04 # Huge braid
1 = male_beard_fp1_05 # Long narrow wavy
1 = male_beard_fp2_iberian_christian_01 # Short Well-Kept Beard
1 = male_beard_fp2_iberian_christian_02 # Iberian goatee
1 = male_beard_fp2_iberian_christian_03 # Caballero's beard
1 = male_beard_fp2_iberian_christian_04 # Droopy moustache
1 = male_beard_fp2_iberian_muslim_01 # Thick Groomed Beard
1 = male_beard_fp2_iberian_muslim_02 # Scholar's beard
1 = male_beard_fp2_iberian_muslim_03 # Forked beard
1 = m_beard_fp3_iranian_01
1 = m_beard_fp3_iranian_02
1 = m_beard_fp3_iranian_03
1 = m_beard_ep2_western_01
1 = m_beard_ep2_western_02
1 = m_beard_ep2_western_03
1 = m_beard_sp2_western_01 # The Ultimate Moustache
1 = m_beard_sp3_western_01
1 = m_beard_ep3_byzantine_01
1 = m_beard_ep3_byzantine_02
1 = m_beard_ep3_byzantine_03
1 = m_beard_ep3_byzantine_04
1 = m_beard_sp4_rus_01
1 = m_beard_sp4_mena_01
# MPO
1 = m_beard_mpo_mongol_01
1 = m_beard_mpo_mongol_02
1 = m_beard_mpo_mongol_03
# TGP
1 = m_beard_tgp_japanese_01
1 = m_beard_tgp_japanese_02
1 = m_beard_tgp_chinese_01
1 = m_beard_tgp_chinese_02
1 = m_beard_tgp_chinese_03
1 = m_beard_tgp_chinese_04
1 = m_beard_tgp_chinese_05
1 = m_beard_tgp_chinese_06
}
female = {
1 = empty
}
}
legacy_dna_beards = {
index = 100
male = {
1 = empty
1 = male_beard_western_01
1 = male_beard_western_02
1 = male_beard_western_03
1 = male_beard_western_04
1 = male_beard_western_05
1 = male_beard_western_06
1 = male_beard_western_07
1 = male_beard_western_08
1 = male_beard_western_09
1 = male_beard_mena_01
1 = male_beard_mena_02
1 = male_beard_mena_03
1 = male_beard_mena_04
1 = male_beard_northern_01
1 = male_beard_northern_02
1 = male_beard_northern_03
1 = male_beard_steppe_01
1 = male_beard_steppe_02
1 = male_beard_sub_saharan_01
1 = male_beard_sub_saharan_02
1 = male_beard_sub_saharan_03
1 = male_beard_indian_01
1 = male_beard_indian_02
1 = male_beard_indian_03
}
female = {
1 = empty
}
}
western_beards_straight = {
index = 2
male = {
# 30 = empty
20 = male_beard_western_01 # Standard full beard
10 = male_beard_western_02 # Standard goatee
10 = male_beard_western_03 # Short beard
5 = male_beard_western_04 # Short goatee
5 = male_beard_western_05 # Mustache
10 = male_beard_western_06 # Big bushy beard
10 = male_beard_western_07 # Chin strap
10 = male_beard_western_08 # Big with fancy mustache
10 = male_beard_western_09 # Pointy beard
10 = male_beard_western_10 # Chin goatee
15 = male_beard_mena_04 # Short stylish
}
female = {
1 = empty
}
}
western_beards_curly = {
index = 3
male = {
# 30 = empty
20 = male_beard_western_01 # Standard full beard
10 = male_beard_western_02 # Standard goatee
10 = male_beard_western_03 # Short beard
5 = male_beard_western_04 # Short goatee
5 = male_beard_western_05 # Mustache
20 = male_beard_western_06 # Big bushy beard
15 = male_beard_mena_04 # Short stylish
}
female = {
1 = empty
}
}
mena_beards_straight = {
index = 4
male = {
# 0 = empty
5 = male_beard_western_01 # Standard full beard
5 = male_beard_western_02 # Standard goatee
5 = male_beard_western_03 # Short beard
# 5 = male_beard_western_04
# 20 = male_beard_mena_01
20 = male_beard_mena_02 # Big with small mustache
20 = male_beard_mena_03 # Big chin strap
20 = male_beard_mena_04 # Short stylish
}
female = {
1 = empty
}
}
mena_beards_curly = {
index = 5
male = {
# 0 = empty
5 = male_beard_western_03 # Short beard
20 = male_beard_mena_01 # Very curly medium length full beard
20 = male_beard_mena_02 # Big with small mustache
20 = male_beard_mena_03 # Big chin strap
}
female = {
1 = empty
}
}
northern_beards_straight = {
index = 6
male = {
# 10 = empty
5 = male_beard_western_01 # Standard full beard
5 = male_beard_western_02 # Standard goatee
5 = male_beard_western_03 # Short beard
5 = male_beard_western_04 # Short goatee
20 = male_beard_northern_01 # Big wide
20 = male_beard_northern_02 # Single braid
20 = male_beard_northern_03 # Beaded beard
15 = male_beard_mena_04 # Short stylish
}
female = {
1 = empty
}
}
northern_beards_curly = {
index = 7
male = {
# 10 = empty
5 = male_beard_western_01 # Standard full beard
5 = male_beard_western_02 # Standard goatee
5 = male_beard_western_03 # Short beard
10 = male_beard_western_04 # Short goatee
10 = male_beard_western_06 # Big bushy beard
}
female = {
1 = empty
}
}
steppe_beards_straight = {
index = 8
male = {
# 5 = empty
#10 = male_beard_steppe_01 # low rough beard
#10 = male_beard_steppe_02 # long at chin with mustache
5 = male_beard_western_01 # Standard full beard
5 = male_beard_western_02 # Standard goatee
5 = male_beard_western_03 # Short beard
5 = male_beard_western_04 # Short goatee
5 = male_beard_western_07
5 = male_beard_indian_02 # Indian pointy
}
female = {
1 = empty
}
}
steppe_beards_curly = {
index = 9
male = {
# 5 = empty
5 = male_beard_mena_01 # Very curly medium length full beard
15 = male_beard_mena_04 # Short stylish
5 = male_beard_western_04 # Short goatee
}
female = {
1 = empty
}
}
sub_saharan_beards_afro = {
index = 10
set_tags = "very_curly_hair"
male = {
# 30 = empty
20 = male_beard_sub_saharan_01 # Full african beard medium
20 = male_beard_sub_saharan_02 # Stylish african goatee
10 = male_beard_sub_saharan_03 # Full african beard long
}
female = {
1 = empty
}
}
indian_beards_straight = {
index = 11
male = {
# 5 = empty
20 = male_beard_indian_01 # Handlebar mustache
10 = male_beard_indian_02 # Indian pointy
10 = male_beard_indian_03 # Big messy straight beard
}
female = {
1 = empty
}
}
indian_beards_curly = {
index = 12
male = {
# 5 = empty
20 = male_beard_indian_01 # Handlebar mustache
10 = male_beard_indian_02 # Indian pointy
20 = male_beard_mena_01 # Very curly medium length full beard
10 = male_beard_mena_02 # Big with small mustache
}
female = {
1 = empty
}
}
rtt_beards = {
index = 13
male = {
1 = male_beard_rtt_01 # Wizard beard
}
female = {
1 = empty
}
}
fp1_beards_straight = {
index = 14
male = {
# 10 = empty
5 = male_beard_fp1_01 # Twin braids with metal rings
5 = male_beard_fp1_02 # Short low beard
5 = male_beard_fp1_03 # Wavy pointy beard
5 = male_beard_fp1_04 # Huge braid
5 = male_beard_fp1_05 # Long narrow wavy
}
female = {
1 = empty
}
}
fp1_beards_curly = {
index = 15
male = {
# 10 = empty
5 = male_beard_fp1_03 # Wavy pointy beard
5 = male_beard_fp1_05 # Long narrow wavy
}
female = {
1 = empty
}
}
fp2_beards_straight = {
index = 16
male = {
# 10 = empty
5 = male_beard_fp2_iberian_christian_01 # Short Well-Kept Beard
5 = male_beard_fp2_iberian_christian_02 # Iberian goatee
5 = male_beard_fp2_iberian_christian_03 # Caballero's beard
5 = male_beard_fp2_iberian_christian_04 # Droopy moustache
5 = male_beard_fp2_iberian_muslim_01 # Thick Groomed Beard
5 = male_beard_fp2_iberian_muslim_02 # Scholar's beard
}
female = {
1 = empty
}
}
fp2_beards_curly = {
index = 17
male = {
5 = male_beard_fp2_iberian_muslim_01 # Thick Groomed Beard
5 = male_beard_fp2_iberian_christian_01 # Short Well-Kept Beard
5 = male_beard_fp2_iberian_muslim_02 # Scholar's beard
5 = male_beard_fp2_iberian_muslim_03 # Forked beard
5 = male_beard_fp2_iberian_christian_03 # Caballero's beard
}
female = {
1 = empty
}
}
sp2_beards_straight = {
index = 18
male = {
5 = m_beard_sp2_western_01 # The Ultimate Moustache
}
female = {
1 = empty
}
}
ep2_beards = {
index = 19
male = {
5 = m_beard_ep2_western_01 # Tidy short beard with slightly pointy mustache
5 = m_beard_ep2_western_02 # Long flowy forked beard
5 = m_beard_ep2_western_03 # Mustache from m_beard_ep2_western_01
}
female = {
1 = empty
}
}
scripted_character_beards_01 = { # THIS TEMPLATE SHOULD NOT BE CHANGED IN ANY WAY! If new beards are added for scripted characters they should be added in a new template.
index = 20
male = {
1 = empty
1 = male_beard_western_01
1 = male_beard_western_02
1 = male_beard_western_03
1 = male_beard_western_04
1 = male_beard_western_05
1 = male_beard_western_06
1 = male_beard_western_07
1 = male_beard_western_08
1 = male_beard_western_09
1 = male_beard_western_10
1 = male_beard_mena_01
1 = male_beard_mena_02
1 = male_beard_mena_03
1 = male_beard_mena_04
1 = male_beard_northern_01
1 = male_beard_northern_02
1 = male_beard_northern_03
1 = male_beard_steppe_01
1 = male_beard_steppe_02
1 = male_beard_sub_saharan_01
1 = male_beard_sub_saharan_02
1 = male_beard_sub_saharan_03
1 = male_beard_indian_01
1 = male_beard_indian_02
1 = male_beard_indian_03
1 = male_beard_fp1_01
1 = male_beard_fp1_02
1 = male_beard_fp1_03
1 = male_beard_fp1_04
1 = male_beard_fp1_05
}
female = {
1 = empty
}
}
thin_beards_straight = {
index = 21
male = {
# 5 = empty
10 = male_beard_steppe_01 # low rough beard
10 = male_beard_steppe_02 # long at chin with mustache
}
female = {
1 = empty
}
}
orthodox_beards = {
index = 22
male = {
20 = male_beard_western_01 # Standard full beard
5 = male_beard_western_02 # Standard goatee
5 = male_beard_western_03 # Short beard
10 = male_beard_western_06 # Big bushy beard
5 = male_beard_western_07 # Chin strap
20 = male_beard_western_08 # Big with fancy mustache
10 = male_beard_western_09 # Pointy beard
5 = male_beard_mena_04 # Short stylish
10 = male_beard_mena_01 # Very curly medium length full beard
10 = male_beard_mena_02 # Big with small mustache
}
female = {
1 = empty
}
}
scripted_character_beards_02 = {
index = 23
male = {
1 = male_beard_fp2_iberian_christian_01 # Short Well-Kept Beard
1 = male_beard_fp2_iberian_christian_02 # Iberian goatee
1 = male_beard_fp2_iberian_christian_03 # Caballero's beard
1 = male_beard_fp2_iberian_christian_04 # Droopy moustache
1 = male_beard_fp2_iberian_muslim_01 # Thick Groomed Beard
1 = male_beard_fp2_iberian_muslim_02 # Scholar's beard
1 = male_beard_fp2_iberian_muslim_03 # Forked beard
1 = empty
}
female = {
1 = empty
}
}
scripted_character_beards_03 = {
index = 24
male = {
1 = m_beard_ep2_western_01
1 = m_beard_ep2_western_02
1 = m_beard_ep2_western_03
}
female = {
1 = empty
}
}
#FP3
#iranian
fp3_iranian_beards_straight = {
index = 25
male = {
5 = m_beard_fp3_iranian_01 # Medium beard with bun
2 = m_beard_fp3_iranian_03 # Babylonian beard
1 = male_beard_indian_01 #Handlebar Moustache
}
female = {
1 = empty
}
}
fp3_iranian_beards_curly = {
index = 26
male = {
5 = m_beard_fp3_iranian_02 # Long pointy beard
2 = m_beard_fp3_iranian_03 # Babylonian beard
1 = male_beard_indian_01 #Handlebar Moustache
}
female = {
1 = empty
}
}
#turkic
fp3_turkic_beards_straight = {
index = 27
male = {
5 = m_beard_fp3_iranian_02 # Long pointy beard
}
female = {
1 = empty
}
}
fp3_turkic_beards_curly = {
index = 28
male = {
5 = m_beard_fp3_iranian_02 # Long pointy beard
}
female = {
1 = empty
}
}
scripted_character_beards_04 = {
index = 29
male = {
1 = m_beard_fp3_iranian_01 # Medium beard with bun
1 = m_beard_fp3_iranian_02 # Long pointy beard
1 = m_beard_fp3_iranian_03 # Babylonian beard
}
female = {
1 = empty
}
}
sp3_beards_straight = {
index = 30
male = {
5 = m_beard_sp3_western_01 # The Ultimate Moustache
}
female = {
1 = empty
}
}
byzantine_beards_straight = { # Does not require Roads to Power - but will still be used even with the expansion active
index = 31
male = {
5 = male_beard_western_01
5 = male_beard_western_02
5 = male_beard_western_03
5 = male_beard_western_04
5 = male_beard_western_09
5 = male_beard_mena_04
}
female = {
1 = empty
}
}
byzantine_beards_curly = { # Does not require Roads to Power - but will still be used even with the expansion active
index = 32
male = {
5 = male_beard_mena_01
5 = male_beard_sub_saharan_03
}
female = {
1 = empty
}
}
ep3_beards_straight = {
index = 33
male = {
5 = m_beard_ep3_byzantine_01
5 = m_beard_ep3_byzantine_02
}
female = {
1 = empty
}
}
ep3_beards_curly = {
index = 34
male = {
5 = m_beard_ep3_byzantine_01
5 = m_beard_ep3_byzantine_02
5 = m_beard_ep3_byzantine_03
5 = m_beard_ep3_byzantine_04
}
female = {
1 = empty
}
}
sp4_mena_beards = {
index = 35
male = {
5 = m_beard_sp4_mena_01
}
female = {
1 = empty
}
}
sp4_rus_beards = {
index = 36
male = {
5 = m_beard_sp4_rus_01
}
female = {
1 = empty
}
}
mpo_mongol_beards = {
index = 37
male = {
5 = m_beard_mpo_mongol_01
5 = m_beard_mpo_mongol_02
5 = m_beard_mpo_mongol_03
5 = m_beard_mpo_mongol_04
5 = m_beard_mpo_mongol_05
5 = m_beard_mpo_mongol_06
}
female = {
1 = empty
}
}
tgp_japanese_beards = {
index = 38
male = {
5 = m_beard_tgp_japanese_01
5 = m_beard_tgp_japanese_02
1 = m_beard_tgp_japanese_03
2 = m_beard_tgp_japanese_04
2 = m_beard_tgp_japanese_05
2 = m_beard_tgp_japanese_06
1 = m_beard_tgp_japanese_07
}
female = {
1 = empty
}
}
tgp_chinese_beards = {
index = 39
male = {
5 = m_beard_tgp_chinese_01
5 = m_beard_tgp_chinese_02
5 = m_beard_tgp_chinese_03
5 = m_beard_tgp_chinese_04
1 = m_beard_tgp_chinese_05
5 = m_beard_tgp_chinese_06
2 = m_beard_tgp_chinese_07
5 = m_beard_tgp_chinese_08
5 = m_beard_tgp_chinese_09
1 = m_beard_tgp_chinese_10
2 = m_beard_tgp_chinese_11
3 = m_beard_tgp_chinese_12
2 = m_beard_tgp_chinese_13
}
female = {
1 = empty
}
}
tgp_sea_beards = {
index = 40
male = {
5 = m_beard_tgp_japanese_03
5 = m_beard_tgp_japanese_04
5 = m_beard_tgp_japanese_06
5 = m_beard_tgp_chinese_01
5 = m_beard_tgp_chinese_05
5 = m_beard_tgp_chinese_07
5 = m_beard_tgp_chinese_08
5 = m_beard_tgp_chinese_10
}
female = {
1 = empty
}
}
tgp_ainu_beards = {
index = 41
male = {
5 = male_beard_western_06
2 = male_beard_western_09
2 = male_beard_mena_02
2 = male_beard_northern_01
2 = male_beard_fp1_05
5 = male_beard_fp2_iberian_muslim_01
5 = male_beard_fp2_iberian_muslim_02
5 = m_beard_ep3_byzantine_03
5 = m_beard_ep3_byzantine_04
}
female = {
1 = empty
}
}
cp7_emishi_ainu_beards_straight = {
index = 42
male = {
2 = male_beard_western_01
1 = male_beard_western_09
2 = male_beard_mena_04
5 = male_beard_northern_01
2 = male_beard_fp1_05
5 = male_beard_fp2_iberian_muslim_01
5 = male_beard_fp2_iberian_muslim_02
2 = male_beard_indian_03
1 = male_beard_rtt_01
}
female = {
1 = empty
}
}
cp7_emishi_ainu_beards_wavy = {
index = 43
male = {
1 = male_beard_western_01
2 = male_beard_mena_02
5 = male_beard_western_06
2 = male_beard_mena_01
2 = male_beard_sub_saharan_01
2 = male_beard_sub_saharan_03
2 = male_beard_indian_03
5 = m_beard_ep3_byzantine_03
5 = m_beard_ep3_byzantine_04
1 = male_beard_rtt_01
}
female = {
1 = empty
}
}
cp7_emishi_ainu_beards_curly = {
index = 44
male = {
2 = male_beard_mena_01
1 = male_beard_mena_01
2 = male_beard_sub_saharan_01
2 = male_beard_sub_saharan_03
1 = m_beard_ep3_byzantine_04
}
female = {
1 = empty
}
}
sp5_western_beards = {
index = 45
male = {
1 = m_beard_sp5_western_01
}
female = {
1 = empty
}
}
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,270 @@
#These special genes will not be part of a character's DNA.
#The game can have hardcoded references to them and might use each of them differently
special_genes = {
morph_genes = {
gene_makeup = {
no_makeup = {
index = 0
}
chinese_01 = {
index = 1
male = {}
female = {
decal = {
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_chinese_01_diffuse.dds"
# normal = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_chinese_01_normal.dds"
properties = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_chinese_01_properties.dds"
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = replace
# normal = overlay
properties = replace
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strngth%, decal alpha
{ 0.0 0.0 }
{ 0.5 0.5 }
{ 1.0 1.0 }
}
# age = {
# mode = multiply
# curve = {
# { 0.0 0.0 }
# { 0.38 0.0 }
# { 0.7 0.8 }
# }
# }
priority = 0
decal_apply_order = post_skin_color
}
}
boy = male
girl = female
}
chinese_02 = {
index = 2
male = {}
female = {
decal = {
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_chinese_02_diffuse.dds"
# normal = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_chinese_01_normal.dds"
properties = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_chinese_02_properties.dds"
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = replace
# normal = overlay
properties = replace
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strngth%, decal alpha
{ 0.0 0.0 }
{ 0.5 0.5 }
{ 1.0 1.0 }
}
# age = {
# mode = multiply
# curve = {
# { 0.0 0.0 }
# { 0.38 0.0 }
# { 0.7 0.8 }
# }
# }
priority = 0
decal_apply_order = post_skin_color
}
}
boy = male
girl = female
}
japanese_01 = {
index = 3
male = {
decal = {
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/female_head/decal_male_head_makeup_japanese_01_diffuse.dds"
# normal = "gfx/models/portraits/decals/female_head/decal_male_head_makeup_japanese_01_normal.dds"
properties = "gfx/models/portraits/decals/female_head/decal_male_head_makeup_japanese_01_properties.dds"
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = replace
# normal = overlay
properties = replace
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strngth%, decal alpha
{ 0.0 0.0 }
{ 0.5 0.5 }
{ 1.0 1.0 }
}
# age = {
# mode = multiply
# curve = {
# { 0.0 0.0 }
# { 0.38 0.0 }
# { 0.7 0.8 }
# }
# }
priority = 0
decal_apply_order = post_skin_color
}
}
female = {
decal = {
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_japanese_01_diffuse.dds"
# normal = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_japanese_01_normal.dds"
properties = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_japanese_01_properties.dds"
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = replace
# normal = overlay
properties = replace
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strngth%, decal alpha
{ 0.0 0.0 }
{ 0.5 0.5 }
{ 1.0 1.0 }
}
# age = {
# mode = multiply
# curve = {
# { 0.0 0.0 }
# { 0.38 0.0 }
# { 0.7 0.8 }
# }
# }
priority = 0
decal_apply_order = post_skin_color
}
}
boy = male
girl = female
}
malay_01 = {
index = 4
male = {}
female = {
decal = {
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_malay_01_diffuse.dds"
# normal = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_japanese_01_normal.dds"
properties = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_malay_01_properties.dds"
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = replace
# normal = overlay
properties = replace
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strngth%, decal alpha
{ 0.0 0.0 }
{ 0.5 0.5 }
{ 1.0 1.0 }
}
# age = {
# mode = multiply
# curve = {
# { 0.0 0.0 }
# { 0.38 0.0 }
# { 0.7 0.8 }
# }
# }
priority = 0
decal_apply_order = pre_skin_color
}
}
boy = male
girl = female
}
ainu_01 = {
index = 5
male = {}
female = {
decal = {
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_ainu_01_diffuse.dds"
# normal = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_japanese_01_normal.dds"
properties = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_ainu_01_properties.dds"
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = multiply
# normal = overlay
properties = replace
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strngth%, decal alpha
{ 0.0 0.0 }
{ 0.5 0.5 }
{ 1.0 1.0 }
}
# age = {
# mode = multiply
# curve = {
# { 0.0 0.0 }
# { 0.38 0.0 }
# { 0.7 0.8 }
# }
# }
priority = 0
decal_apply_order = pre_skin_color
}
}
boy = male
girl = female
}
ainu_02 = {
index = 6
male = {}
female = {
decal = {
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_ainu_02_diffuse.dds"
# normal = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_japanese_01_normal.dds"
properties = "gfx/models/portraits/decals/female_head/decal_female_head_makeup_ainu_02_properties.dds"
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = multiply
# normal = overlay
properties = replace
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strngth%, decal alpha
{ 0.0 0.0 }
{ 0.5 0.5 }
{ 1.0 1.0 }
}
# age = {
# mode = multiply
# curve = {
# { 0.0 0.0 }
# { 0.38 0.0 }
# { 0.7 0.8 }
# }
# }
priority = 0
decal_apply_order = pre_skin_color
}
}
boy = male
girl = female
}
}
}
}

View file

@ -0,0 +1,283 @@
#These special genes will not be part of a character's DNA.
#The game can have hardcoded references to them and might use each of them differently
special_genes = {
morph_genes = {
gene_balding_hair_effect = {
no_baldness = {
index = 0
male = {
decal = { #Hair shadow decal for full head of hair
required_tags = "not(partly_shaved)"
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/male_head/decal_male_head_hair_shadow_default_diffuse.dds"
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strength%, decal alpha
{ 0.0 1.0 }
{ 1.0 1.0 }
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = multiply
# normal = overlay
# properties =
}
priority = 1
# age = age_preset_aging_definition_male
}
}
female = {}
boy = male
girl = {}
}
shaved_baldness = {
index = 1
male = {
}
female = {}
boy = {}
girl = {}
}
baldness_stage_1 = { # Beginning male pattern baldness
index = 2
set_tags = "baldness_1" # Setting the tag to be used in the hairstyles accessories script
male = {
decal = { #Hair baldness decal for balding scalp
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/male_head/decal_male_head_hair_baldness_diffuse.dds"
properties = "gfx/models/portraits/decals/male_head/decal_male_head_hair_baldness_properties.dds"
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strength%, decal alpha
{ 0.0 1.0 }
{ 1.0 1.0 }
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = replace
# normal = overlay
properties = replace
}
priority = 1
# age = age_preset_aging_definition_male
}
}
female = {}
boy = {}
girl = {}
}
baldness_stage_2 = { # Late stage male pattern baldness
index = 3
set_tags = "baldness_2"
male = {
decal = { #Hair baldness decal for balding scalp
body_part = head
textures = {
diffuse = "gfx/models/portraits/decals/male_head/decal_male_head_hair_baldness_diffuse.dds"
}
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strength%, decal alpha
{ 0.0 1.0 }
{ 1.0 1.0 }
}
blend_modes = { #overlay/replace/hard_light/multiply
diffuse = replace
# normal = overlay
# properties =
}
priority = 1
# age = age_preset_aging_definition_male
}
}
female = {}
boy = {}
girl = {}
}
}
gene_seated = {
seated = {
index = 0
male = {
setting = { attribute = "bs_body_seated" value = { min = 0.0 max = 1.0 } }
}
female = male
boy = male
girl = male
}
}
gene_shrink_body = {
shrink_all = {
index = 1
male = {
setting = { required_tags = "shrink_arms" attribute = "bs_body_shrink_arms" value = { min = 0.0 max = 1.0 } }
setting = { required_tags = "shrink_legs" attribute = "bs_body_shrink_legs" value = { min = 0.0 max = 1.0 } }
setting = { required_tags = "shrink_chest" attribute = "bs_body_shrink_chest" value = { min = 0.0 max = 1.0 } }
setting = { required_tags = "shrink_belly" attribute = "bs_body_shrink_belly" value = { min = 0.0 max = 1.0 } }
setting = { required_tags = "shrink_hands" attribute = "bs_body_shrink_hands" value = { min = 0.0 max = 1.0 } }
setting = { required_tags = "shrink_feet" attribute = "bs_body_shrink_feet" value = { min = 0.0 max = 1.0 } }
}
female = male
boy = male
girl = male
}
}
gene_bs_additive_headgears = {
additive_headgears = {
index = 2
female = {
setting = { required_tags = "fit_under_crown,fit_over_headgear" attribute = "bs_additive" value = { min = 0.0 max = 1.0 } }
}
male = female
boy = male
girl = female
}
}
gene_bs_long_beard = {
long_beard = {
index = 3
female = male
male = {
setting = { required_tags = "long_beard" attribute = "bs_long_beard" value = { min = 0.0 max = 1.0 } }
}
boy = male
girl = female
}
}
gene_bs_cloak_offset = {
cloak_offset = {
index = 4
male = {
setting = { required_tags = "offset" attribute = "bs_cloak_offset" value = { min = 0.0 max = 1.0 } }
setting = { required_tags = "headgear_offset" attribute = "bs_headgear_offset" value = { min = 0.0 max = 1.0 } }
}
female = male
boy = male
girl = male
}
}
gene_enclosed_helmet = {
enclosed_helmet = {
index = 0
male = {
setting = { required_tags = "enclosed_helmet" attribute = "bs_enclosed_helmet" value = { min = 0.0 max = 1.0 } }
}
female = male
boy = male
girl = male
}
}
gene_additive_animations_dwarf = {
dwarf_additive = {
index = 0
male = {
setting = {
attribute = "body_dwarf"
curve = {
{ 0.0 0.0 }
{ 0.5 0.0 }
{ 1.0 1.0 }
}
}
}
female = male
boy = male
girl = male
}
}
gene_additive_animations_fat = {
fat_additive = {
index = 0
male = {
setting = {
attribute = "body_fat"
curve = {
{ 0.0 0.0 }
{ 0.5 0.0 }
{ 1.0 1.0 }
}
}
}
female = male
boy = male
girl = male
}
}
gene_additive_animations_child = {
child_additive = {
index = 0
male = {
setting = {
attribute = "body_dwarf"
curve = {
{ 0.0 0.0 }
{ 0.5 0.0 }
{ 1.0 1.0 }
}
}
}
female = male
boy = male
girl = male
}
}
# Should move prop controller (if female) to fix retargeting issue
gene_retargeting_fix = {
female_prop = {
index = 0
male = {}
female = {
setting = {
attribute = "body_prop"
value = 1
}
}
boy = male
girl = female
}
}
gene_cloak = {
cloak_additive = {
index = 0
male = {
setting = {
required_tags = "cloak_arm_pose"
attribute = "body_cloak"
value = 1
}
}
female = male
boy = male
girl = female
}
}
gene_ear_stretch = {
ear_stretch = {
index = 0
male = {
setting = {
required_tags = "stretched_earlobe"
attribute = "bs_ear_stretch"
value = 1
}
}
female = male
boy = male
girl = female
}
}
}
}

25
common/genes/_genes.info Normal file
View file

@ -0,0 +1,25 @@
Genes connect to the /ethnicities
=== Structure (very incomplete) ===
color_genes = {
hair_color = {
index = 0 # index within the DNA
color = hair # one of hair/eye/skin
blend_range = { 0.4 0.6 } # When inheriting the color, blend between "dominant" and "recessive" parent in this ratio. E.g. { 0.0 0.0 } will pick the "dominant" parent, and { 0.3 0.7 } with pick something 30% to 70% between parent's values.
}
...
}
decal = {
type = skin #decal type: skin or paint. Skin decals are added before skin color and use skin-diffuse+normal maps. Paint decals are added after skin color and use paint-diffuse+property maps.
atlas_pos = { 0 0 } #position of the decal in the atlas texture
alpha_curve = { #controls decal alpha relative to gene strength. Will give a linear interpolation if left unspecified
#gene strength, decal alpha
{ 0.0 0.6 }
{ 1.0 0.6 }
}
}
ugliness_feature_categories = { chin mouth } # A list of features the gene is associated with, used by ugliness_portrait_extremity_shift in traits