ElTyranos / CommunityFlavorPack

Historical portrait accessories for Crusader Kings 3 characters.
https://communityflavorpack.com/
14 stars 7 forks source link

Suggestions from Community Flavor Pack to Paradox #102

Open ElTyranos opened 3 years ago

ElTyranos commented 3 years ago

HIGH PRIO :

  1. Allow conditionnal 3D Asset AI usage in entity | Mod COOP Trello

MEDIUM PRIO :

  1. Adjusting Accessory Prop Animations | Mod COOP Trello
  2. Allow the “decal” parameter from “morph_genes” in “accessory_genes” | Mod COOP Trello
  3. Improve Portrait Modifiers compatibility | Mod COOP Trello

LOW PRIO :

  1. More opened 3D shader coding | Mod COOP Trello
ElTyranos commented 3 years ago

Allow conditionnal 3D Asset AI usage in entity

Allow one to give conditions to AI usage per model via the entity and not per portrait modifier only.

Current situation

One has to define two groups + 2 portraits modifiers. Yet, those two categories bellow use the exact same portrait modifier (conditions for AI to use), the second category simply has has_cultural_era_or_later = culture_era_high_medieval on top, but it can also be tied to an innovation, innovation_plate_armor for example.

        iranian_war = {
            index = 116
            male = {  1 = male_headgear_secular_iranian_cfp_war_mail_coif_01 }
            female = { 1 = female_headgear_secular_iranian_cfp_war_mail_coif_01}
            boy = male
                        girl = female
        }

        iranian_war_high_medieval = {
            index = 117
            male = { 1 = male_headgear_secular_iranian_cfp_war_khud_01 }
            female = { 1 = female_headgear_secular_iranian_cfp_war_khud_01 }
            boy = male
                        girl = female
        }

image

This leads to

Expected behaviour

This sample code bellow would allow an era lock system [or any other simple condition] that doesn't require new genes groups to be coded (= accessory_gene group + barbershop + portrait_modifier).

An asset-per-asset control is deeply needed as the number of available models grows.

male_headgear_secular_mywonderfulasset_01 = {
    set_tags = "no_hair"
    entity = { 
            required_tags = ""
            shared_pose_entity = head
            entity = male_headgear_secular_iranian_cfp_war_quilted_01_entity
            is_valid_custom = { has_cultural_era_or_later = culture_era_high_medieval }
        }       
}

Back to top

ElTyranos commented 3 years ago

Improve Portrait Modifiers compatibility

Allow portrait modifiers to be computed from external files as when two mods both edit 01_headgear.txt or 01_clothes.txt they become incompatible and many characters become naked.

Current situation

if the first headgear = { } is used in a new file, it will overwrite the entire data contained in the class with the one from the latest loaded file.

Expected behaviour

Back to top

ElTyranos commented 3 years ago

Allow the “decal” parameter from “morph_genes” in “accessory_genes”

Allow the “decal” parameter from “morph_genes” in “accessory_genes” so they can be called in the barbershop, and controlled as portrait modifiers

Current situation

    accessory_genes = {

        special_headgear_head_bandage = {
            head_bandage = {
                index = 0
                male = {
                    setting = { attribute = "bs_warpaint"  value = { min = 1.0 max = 1.0 }  }
                    decal = {                                           
                        body_part = head
                        textures = {
                            diffuse = "gfx/models/portraits/decals/visual_traits/warpaint_diffuse.dds"
                            normal = "gfx/models/portraits/decals/visual_traits/warpaint_normal.dds"
                            properties = "gfx/models/portraits/decals/visual_traits/warpaint_properties.dds"
                        }
                        blend_modes = {              #overlay/replace/hard_light/multiply
                            diffuse = hard_light
                            normal = overlay
                            properties = overlay
                        }
                        priority = 10
                    }
                }
                female = male
                boy = male
                girl = female
            }
        }
    }

This won't work as "accessory_genes", when it works as "morph_genes". Yet the code structure is exactly the same between the two. The barbershop simply won't read it ("decal" value is unexpected).

Outcomes

Back to top

ElTyranos commented 3 years ago

Adjusting Accessory Prop Animations

Allow animations props to be changed like accessories (random + trigger based + can be called in the barbershop). Currently, one can only copy paste animations only to change one line, when the props code is structured as any “accessory_genes”.

Current situation

in \common\genes\07_genes_special_accessories_misc.txt

        marshal_swords = {
            index = 5
            male = {
                1 = western_sword_02
            }
            female = {
                1 = western_sword_02            
            }
            boy = male
            girl = female
        }

One can't :

Expected behaviour

Props should be assigned as any portrait accessory (headgear, clothes) to allow new models and more cultural specificity.

Back to top

ElTyranos commented 3 years ago

More opened 3D shader coding

Outcomes

Justification

Back to top