Système TeamSpeak du Réseau Jeux-Strategie.com Abonnez-vous à nos flux RSS Mur du Réseau Jeux-Strategie.com
 

      

Portraits et modding

Comme il y avait des discussions sur le précédent carnet de développement, j'ai pensé que je devrais prendre une petite pause de HoI3 : For the Motherland afin de décrire la façon dont fonctionne le système de portraits. Pour les questions d'art, ce sera plutôt à Danevang de répondre aux questions et je vais donc me concentrer davantage sur les aspects techniques. Rappelez vous que toutes ces images sont temporaires : des choses pourraient changer et beaucoup d'autres choses rajoutées.
L'aspect d'une personne dépend de deux choses : l'héritage génétique (ADN) et d'autres facteurs (que nous appelons propriétés). Votre ADN est crée lorsque vous êtes né et ne peut-être changé. C'est un mélange des caractères ADN de vos parents plus une petite chance de mutation pour simuler les gênes des ancêtres. Les propriétés peuvent changer durant la vie, dépendant de ses traits, caractères sociaux, etc.
Par exemple l'ADN vous dira si vous avez hérité du nez pomme de terre de la famille et des cheveux blonds (et si tel n'est pas le cas, il pourrait y avoir des soupçons sur ce que votre mère faisait pendant que votre père été occupé dans les croisades) et les propriétés diront quel style de cheveux vous préférez, si vous aurez a porté une couronne parce que vous êtes roi et quel niveau de fantaisie caractérise vos vêtements.
Actuellement il y a 11 gènes ADN et 6 propriétés pour chaque personnage, mais il n'est pas impossible que nous augmentions ce nombre au cours du développement.

Voici une image montrant l'héritage, malheureusement aucun de nos portraits féminin n'étant prêts nous ne verrons que la lignée masculine :

Vous pouvez également voir les effets des propriétés : notre personnage au milieu est un roi avec une couronne, un de ses fils est évêque. Cette image montre également l'effet du vieillissement. Nous avons actuellement 4 niveaux d'âges pour les portraits de sorte que vous verres vos personnage grandir, les oreilles grossir et leur cheveux se clairsemé et devenir blanc.

l'ADN est scriptable dans les fichiers histoire pour le personnage si nous voulons faire qu'il ressemble à son homonyme historique, puis durant le jeu ces personnages scénarisé propageront leur gènes pour un résultat non script et plausible.

Hé, vous aviez dit que ce serait a propos du modding, pas de la biologie!

Ok, ok voyons un peu le code : je vais vous montrer comment les personnages peuvent être moddés. Les portraits sont décrits dans deux fichiers : un graphique et un autre pour scripter la logique des propriétés

Configuration graphique des portraits 

# portraits.gfx

# graphical look of character portraits

# middle age

portraitType = {

    name = "PORTRAIT_norsegfx_male1"

    effectFile = "gfx\\FX\\portrait.fx"

    layer = { # GFX_TYPE:[d|p]INDEX:COLOR_LINK

        "GFX_character_western_background:p0"

        "GFX_western_male_clothes_behind:p3"

        "GFX_western_male_headgear_behind:p5"

        "GFX_western_male_beard_behind_midage:p4:h"

        "GFX_western_male_base_midage:p2"

        "GFX_western_male_neck:d0"

        "GFX_western_male_chin:d1"

        "GFX_western_male_mouth_midage:d2"

        "GFX_western_male_nose_midage:d3"

        "GFX_western_male_cheeks_midage:d4"

        "GFX_western_male_head:d5"

        "GFX_western_male_eyes_midage:d6"

        "GFX_western_male_eyes2:d6:e"

        "GFX_western_male_clothes:p3"

        "GFX_western_male_beard_midage:p4:h"

        "GFX_western_male_ear_midage:d7"

        "GFX_western_male_clothes_infront:p3"

        "GFX_western_male_headgear:p5"

    }

    hair_color_index = 8 # which DNA gene sets hair color

    hair_color = { # dark, base, highlight

        { 15 8 0 } { 173 158 102 } { 255 255 255 }

        { 10 10 10 } { 125 100 82 } { 255 255 255 }

        { 30 22 18 } { 194 132 97 } { 255 255 255 }

    }

    eye_color_index = 9 # which DNA gene sets eye color

    eye_color = {

        { 58 109 193}

        { 120 74 46 }

        { 34 103 36 }

    }

}

Le nom du type de portrait précise que celui ci est utilisé pour le groupe de graphismes de culture nordique et que c'est un mâle d'âge moyen (le chiffre à la fin donne l'âge). Ce portrait est constitué de 18 couches et chaque couche a une chaîne pour la décrire. Utilisons "GFX_western_male_beard_midage:p4:h" comme exemple : ceci spécifie qu'elle doit utiliser l'image GFX_western_male_beard_midage, utilisé la propriété 4 ("p4") pour choisir la barbe et enfin le ":h" signifie qu'elle doit être de la même couleur que les cheveux. Si nous voulons connecter a l'ADN au lieu des propriétés, nous écriront "d4" au lieu de p4.

Les couches sont libres d'être connectée à la même propriété et ceci est fait pour les vêtements, barbes, cheveux, etc. qui ont besoin à la fois d'être devant et derrière les autres couche. Voici à quoi ressemble GFX_western_male_clothes pour les 3 premières options :

Plus bas se trouvent spécifiés la couleur des cheveux et des yeux. Pour les cheveux il y a 3 couleurs pour chaque propriétés afin que nous puissions teindre les cheveux différemment des couleurs de bases.

Propriété de script

Un fichier séparé, "portrait_properties.txt", spécifie quelles propriétés doit avoir un personnage. Elles sont mises à jour lors des changement majeurs pour le personnage comme un nouveau trait, titre, etc. et enfin aléatoirement de temps en temps. Les propriétés de script ressemblent à ceci, toute propriété non mentionnées, auront une valeur aléatoire d'être prise (donc si vous ne spécifiez rien concernant les barbes vous obtiendrez une barbe au hasard) :

# p3 clothes

3 = {

    0 = { # mail armour

        factor = 1

        modifier = {

            factor = 2.0

            martial = 5

        }

        modifier = {

            factor = 100.0

            has_job_title  = job_marshal

            OR = {

                is_ruler = no

                is_theocracy = no

                NOT = { religion_group = christian }

            }

        }

    }

    1 = { # fancy shirt

        factor = 5

        modifier = {

            factor = 10.0

            OR = {

                has_job_title = job_treasurer

                has_job_title = job_chancellor

            }

        }

    }

    2 = { # Catholic vestments

        factor = 100

        modifier = {

            factor = 0

            NOT = { religion_group = christian }

        }

        modifier = {

            factor = 0

            OR = {

                is_ruler = no

                is_theocracy = no

            }

            NOT = { has_job_title  = job_spiritual }

        }

    }

}

Le niveau supérieur est la propriété, donc 3 est le même que p3 dans le fichier de description graphique que nous avons vu plus haut. Le niveau suivant spécifie quelle entrée est à choisir parmi les cônes, ce script à 3 options : armure de mailles, chemise fantaisiste ou une tenue plus spirituelle. Les facteurs que vous voyez sont juste des pourcentages, mais si quelque chose est spécifié avec une valeur de 100 ou plus, elle passe au dessus de toute options mentionnées après.

J'espère avoir été clair. Voyons un exemple simple. Nous voulons introduire une couche liée à la propriété 6. Appelons la "props". Nous mettons un sprite dans le répertoire GFX et nous le mentionnons dans la description du portrait à la fin avec GFX_western_male_props:p6. Puis nous ajoutons une règle dans le script de propriété comme ceci : 

# p6 props
6 = {
    0 = { # empty, dont use props, this is default
        factor = 1
    }
    1 = { # new prop. overrule all if character qualifies
        factor = 100
        modifier = {
            factor = 0
            trait = cool
        }
    }

}

Cela signifie que si notre personnage gagne le trait "cool" et si nous avons bien moddé correctement, le portrait changera pour ressembler à ceci : 

 

Réseau Gamers et Stratégie. Association Loi 1901 à capacité juridique.
©1998-2017 Réseau Gamers et Stratégie - Tous droits réservés - Mentions légales