Civfr.com : Civilization - Ligue Francophone Civfr.com Classement forums de discussion Inscription R?gles de la ligueQuestions les plus fr?quemment pos?es Skin num?ro 2 Civfr.com Questions les plus fr?quemment pos?es Outils du site
Dernier shout - Écrit par colonel81 - Lundi, 02 Octobre 2017 10:34 - [Le style SMS est interdit dans la shoutbox]
Je vous oublie pas mais le week end fut assez
  Civfr.com -> Le modding XML
m?moriser la page dans un cookie


Forum Rules La Customisation

Tutoriels, Aides, Propositions, Elaborations et Nouveaux scénarii pour Civ3 et Civ4
Customisation pour Civ3 : SOLO et MULTI
Aide à la Customisation pour Civ4 : vous y êtes déjà, c’est juste en dessous du présent texte.
Scénarii pour Civ4 : SOLO et MULTI
Zone de téléchargements : ICI

Pages : (3) [1] 2 3   ( Aller vers premier message non lu ) Reply to this topicStart new topicStart Poll

> Le modding XML, Tutoriel
juni_be_good  Hors ligne
Ecrit le : Lundi 05 Février 2007 à 14h56
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Devant une demande de plus en plus forte d'aide à l'utilisation du XML, je déplace ce topic initialement destiné à mes collègues de l'équipe du GOTM.

Ce tutoriel ne prétend pas être complet ni répondre à des questions du type "Comment faire ceci ou cela ?", simpleemnt vous aider à comprendre comment fonctionne le XML de Civ4 pour vous permettre de répondre à ces questions vous mêmes.

Il ne prétend pas non plus être complet, je me susi limité à l'essentiel, et aussi à ce que je connais et comprends, car je suis loin de maitriser toutes les facettes du sujet. Mais j'en sais assez poue pouvoir lancer dans le bain des gens qui débutent totalement en modding, c'est le but de ce topic.

Bonne lecture, ne vous endormez pas devant :lol:


Lien utile : le wiki du XML de civ4


Le modding XML



Petit tutoriel (appelation réglementée par la Jojo_le_ouf Corporation :sifflote:) sur les fichiers XML de Civ4 et la façon de les utiliser pour faire des mods. Je ne vais pas tout écrire d'un coup, donc je mettrais à jour régulièrement. Je ne peux pas faire un descriptif complet, ça prendrait des pages, mais avec ces explications et un bon niveau en anglais, vous devriez pouvoir vous amuser un peu ;)


Qu'est ce qu'un fichier XML ?

XML est un langage pouvant être utilisé d'une quantité de façons très différentes. Sous Civ4, il est utilisé comme base de données.

Les données, dans un fichier XML, sont structurées sous forme d'arbre. Les données elles-mêmes sont les feuilles. Les branches sur lesquelles elles se trouvent sont appelées balises. Une balise se présente de cette façon

CODE
<nomBalise>contenu</nomBalise>


Tout ce qui se situe entre l'ouverture de la balise et sa fermeture appartient à une branche de type "nomBalise" de l'arbre. Il peut y avoir plusieurs branches de même type à un niveau donné de l'arbre. Par exemple un arbre "Famille" va contenir plusieurs branches "Personne". Et chaque branche "Personne" va contenir une branche "Nom", une branche "Prénom", etc... Au bout de chaque branche, on inscrit la donnée.

En XML, ça donne ceci :

CODE
<Famille>
   <Personne>
       <Nom>De Boizal</Nom>
       <Prenom>Mael</Prenom>
   </Personne>
   <Personne>
       <Nom>Doguein</Nom>
       <Prenom>Job</Prenom>
   </Personne>
</Famille>


Dans chaque dossier du répertoire XML de Civ4, on trouve un fichier dont le nom se termine par "Schema.xml" Ce fichier décrit la structure de l'arbre pour tous les autres fichiers du dossier. Si un fichier XML ne respecte pas le schéma, il provoquera une erreur au chargement du mod.

Dans le cadre d'un mod uniquement XML, il ne faut pas toucher à ces schémas, car le SDK devrait alors également être modifié pour permettre la lecture et le traitement des nouvelles données. Je ne vais donc pas m'attarder sur ces schémas. Il suffit de structurer les données que l'on ajoute exactement de la même façon que les éléments déjà présents pour respecter ce schéma.

Il faut juste se rappeler que l'ordre des balises est important. Dans mon exemple ci-dessus, si j'avais inversé Prénom et Nom sans changer le schéma, j'aurais provoqué une erreur. En revanche l'ordre des balises Personne dans la balise Famille est sans importance (car ce sont des balises de même type)



Gestion des fichiers dans Civ4

Les remarques qui suivent s'appliquent à tous les fichiers qu'un mod peut contenir (c'est à dire l'ensemble du dossier Assets), et pas seulement aux fichiers XML

Le dossier Assets d'un mod fonctionne comme un papier calque que l'on pose sur le dossier Assets du jeu. Si un fichier est redéfini dans le mod, on utilise le fichier du mod, et si un fichier n'est pas redéfini, c'est celui du jeu qui est pris en compte. On appelle cela un fonctionnement en cascade. En réalité il y a 3 couches (à l'heure actuelle), qui sont appliquées dans l'ordre suivant :
  • Dossier Assets de Civ4
  • Dossier Assets de Warlords
  • Dossier Assets du mod
On lit le contenu des dossiers dans cet ordre, dès qu'un fichier déjà existant est rencontré, il remplace le précédent. Une fois les 3 dossiers parcourus, on obtient les Assets qui vont être utilisés pour jouer. Si vous avez bien compris le mécanisme, vous aurez surement remarqué un détail amusant : Warlords n'est ni plus ni moins qu'un mod pour Civ4 :lol:

Il existe 2 couches supplémentaires, les dossiers Custom Assets de Civ4 et de Warlords (respectivement en 2ème et en avant-dernière position). Je serais bien incapable d'expliquer comment le contenu de ces dossiers agit sur le mod, mais c'est fait de façon à ne pas interférer à priori. En tout cas je ne me suis jamais soucié de ça pour modder, et ça n'a jamais posé de problème jusqu'ici :sifflote:

De ce qui précède, on peut poser quelques règles importantes :
  • l'arborescence du mod doit respecter scrupuleusement celle du dossier Assets du jeu. Un fichier ne sera reconnu comme nouvelle version d'un fichier existant que si le chemin d'accès et le nom sont identiques.
  • Lorsqu'on veut modifier un fichier, il faut copier l'intégralité du fichier dans le mod et éditer ce que l'on veut ensuite. Le fonctionnement en cascade remplace un fichier par un autre mais ne superpose pas leurs contenus.
  • Pour un mod sous Warlords, afin de ne pas perdre les changements apportés par l'extension, il faut copier les fichiers de base depuis le dossier Assets de Warlords. Si le fichier recherché n'existe pas dans le dossier Warlords, ça singifie simplement que l'extension ne change rien au contenu de ce fichier, et que donc elle ne le redéfinit pas. Il faut alors aller le récupérer dans le dossier de Civ4 (toujours le fonctionnement en cascade)
Noms des entités XML et liens entre les fichiers

Les fichiers XML définissent des entités (dans un sens très large, ça peut être des unités, des batiments, des ères, des missions d'unités, bref tout élément ayant besoin d'être défini par un certain nombre de données qui lui sont propres) De façon à pouvoir communiquer entre eux, ces éléments possèdent tous une balise dont le contenu sert d'identifiant. Dans presque tous les cas, cette balise s'appelle <Type> et elle est placée au début de la définition de l'élément.

Par exemple dans le fichier Units/Civ4UnitsInfos.xml, on trouve ceci :

CODE
<UnitInfo>
...
   <Type>UNIT_FRIGATE</Type>
...
</UnitInfo>


Cela indique que l'unité définie ici est la frégate. Et si un autre fichier XML a besoin de faire référence à cette unité, on y écrira UNIT_FRIGATE, qui correspond à l'entité XML définissant la frégate.

Si on regarde un peu plus bas dans la définition de la frégate, on voit ceci :

CODE
<UnitClassUpgrades>
   <UnitClassUpgrade>
       <UnitClassUpgradeType>UNITCLASS_DESTROYER</UnitClassUpgradeType>
       <bUnitClassUpgrade>1</bUnitClassUpgrade>
   </UnitClassUpgrade>
</UnitClassUpgrades>


Ce bloc sert à définir les upgrades possibles pour l'unité de frégate, on y retrouve l'identifiant UNITCLASS_DESTROYER correspondant à la catégorie d'unité destroyer (je reviendrai plus bas sur la différence entre unité et catégorie d'unité), ce qui permet de faire le lien entre les deux entités.

La structure de la base de données XML du jeu contient énormément de liens de ce type, c'est donc une notion très importante.

Ce message a été modifié par juni_be_good le Jeudi 26 Avril 2007 à 10h27
PMEmail Poster
Top
juni_be_good  Hors ligne
Ecrit le : Lundi 05 Février 2007 à 14h57
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Je m'attaque maintenant au détail du rôle de chaque fichier et aux liens qui existent entre eux.

Le fichier GlobalDefines

Il se trouve à la racine du dossier XML. Il contient une grande quantité de paramètres généraux du jeu. La liste est très longue, en gros ce sont des paramètres qu'il était difficile d'associer à un élément précis du parce qu'ils sont un caractère global. Plus simpleemnt, si vous cherchez à modifier quelque chose, mais qu'après avoir parcouru tous les fichiers XML qui vous semblent logiques, vous n'avez toujours pas trouve ce paramètre, c'est qu'il est probabement dans les Global Defines. :biggrin3:


Le dossier Art

Pour chaque élément graphique du jeu (unités, batiments, terrains, visages de leaders, vidéos, etc...), les fichiers de ce dossier indiquent les emplacements des fichiers de graphisme. Je reviendrai plus en détail ultérieurement sur le contenu un peu particulier de ces fichiers très importants.


Le dossier Audio

Le fichier AudioDefines associe un nom XML à chaque fichier sonore utilisé dans le jeu (pour une facilité technique, rien de plus)
Les autres fichiers définissent des scripts audios, c'est à dire la façon dont chacun de ces sons va être utilisé dans le jeu. Une petite remarque particulière pour la notion de script 3D, elle s'applique aux sons d'ambiance dont le volume varie avec le niveau de zoom et la position de la caméra (bruits de forêts ou d'eau, bruits de foules dans les villes, etc...)


Le dossier BasicInfos

L'unique fichier qui s'y trouve associe des concepts plus ou moins abstraits à l'entité XML qui leur correspond. C'est du renommage pour raisons techniques comme pour les fichiers audio, je ne vais pas faire le détail de tout ce qu'il y a là-dedans, c'est très large. Le mieux est d'aller regarder vous même :biggrin:


Le dossier Buildings

Je parlais plus haut de la notion de classe d'unité. Il existe aussi des classes de bâtiments, dans le fichier BuildingClassInfos. En fait ces classes servent simplement à regrouper ensemble un bâtiment unique et le bâtiment qu'il remplace, il y a donc quasiment autant de classes de batiments que de batiments.
Pour chaque classe, on définit le batiment par défaut (donc le batiment non unique), et le nombre limite de batiments de ce type dans le monde, l'équipe ou la civ. Evidemment cela ne sert que pour les merveilles, pour tous les autres batiments les valeurs sont à -1, ce qui signifie "illimité".

Petite remarque au sujet des classes : si on souhaite que seulement quelques civs puissent construire un batiment, il suffit de définir le batiment par défaut de la classe sur NONE et de définir le vrai batiment comme batiemnt unique de cette classe pour les civs en question.

Le fichier BuildingInfos quant à lui contient la fiche descriptive de chaque batiment, avec tous les détails qu'on peut en attandre (prix, techs nécessaires, ressources nécessaires, etc...). Il suffit de comprendre l'anglais pour deviner ce que définissent la quasi-totalité des balises.

Pour les autres fichiers du dossier, je vous expliquerais volontiers leur rôle... si seulement je le connaissais :D En tout cas je n'ai jamais eu besoin d'y toucher. Terra incognita. :o:


Le dossier Civilizations

Rien de particulièrement complexe : un fichier qui définit les caractéristiques des différents traits, un fichier qui définit les caractériqtiques des leaders (avec un grand nombre de variables pas toujours très compréhensibles qui définissent la personnalité de l'IA qui joue ce leader), et enfin un fichier qui définit les civilisations.

On y trouve la définition des unités et batiments uniques (on dit par quoi remplacer le batiment/unité par défaut de la classe pour cette civ). En remplaçant par NONE, on désactive le batiment/unité, c'est particulièrement utilisé pour les barbares.

Un petit mot sur la CIVILIZATION_MINOR. On trouve cette civ dans certains scénarios, une civilisation mineure est distincte des barbares, a accès a plus d'unités et de batiments, peut faire des merveilles, mais elle est en guerre permanente avec les autres civs et ne peut pas être contactée diplomatiquement. Elle ne joue pas non plus pour la victoire finale.


Le dossier GameInfo

Là il y a du monde. :arg: On va les prendre un par un.

CivicInfos : les doctrines et leurs effets, rien de difficile à comprendre.

CivicOptionInfos : lie les groupes de doctrines (gouvernement, travail, etc...) au tag Text où se trouve leur nom dans le jeu.

ClimateInfos : les caractéristiques des différents types de climats.

CommerceInfos : quelques détails concernant la répartition de l'or en richesse/science/culture avec les curseurs.

CultureLevelInfos : indique la quantité de culture à générer pour chaque niveau d'expansion suivant la vitesse, le pourcentage de défense associé, et indique le tag Text contenant le nom du niveau culturel.

CursorInfos : donne des noms XML aux différents types de pointeurs de souris utilisés dans le jeu, pour les identifier plus faiclement.

DiplomacyInfos : ce fichier fonctionne comme un tableau à double entrée. A un leader et un évèneemnt diplomatique donnés (premier contact, déclaration de guerre, etc...) on associe le tag Text du ou des messages que le leader peut "dire" dans cette circonstance.

EmphasizeInfos : décrit les différentes options du gouverneur de ville (privilégier production, l'or, bloquer la croissance...). Concrètement, on ne peut rien faire d'intéressant avec ce fichier. Pour véritablement modifier le comportement de ces options, il faut aller toucher au SDK.

EraInfos : les différentes ères et leurs effets sur la production (eh oui, car on produit plus dans les ères avancées :oui:) et les graphismes des villes.

ForceControlInfos : juste un fichier de définition. ça a un rapport avec les options de jeu, mais je ne sais pas trop à quoi il sert :doute:

GameInfosSchema : c'est juste le schéma XML du dossier. Vu qu'il décrit toutes les balises autorisées dans tous les fichiers XML de ce dossier au contenu extrêmement varié, le schéma est quelque peu indigeste. :lol:

GameOptionsInfos : associe les options d'une partie aux tags contenant leurs noms.

GameSpeedInfos : décrit les différentes vitesses de jeu (à ne pas confondre avec le chrono de tour)

GoodyInfos : définit ce à quoi correspond chaque contenu de hutte. Par exemple GOODY_HIGH_GOLD correspond à une grosse somme d'or. Ces contenus sont ensuite réutilisés dans HandicapInfos pour donner la probabilité d'apparition de chaque contenu selon le niveau de difficulté.

GraphicOptionsInfos : même chose que GameOptionsInfos mais pour les options graphiques.

HandicapInfos : les effets du niveau de difficulté sur le joueur et les IAs. On y trouve aussi la probabilité d'apparition des différents contenus possibles d'une hutte. Faisons un peu de maths. Soit N le nombre de contenus listés pour un niveau de difficulté donné, et n le nombre d'exemplaires d'un certain contenu X dans cette même liste. Alors la probabilité qu'une hutte contienne X vaut n / N. Un petit exemple pour éclaircir la chose :

CODE
<Goodies>
     <GoodyType>GOODY_HIGH_GOLD</GoodyType>
     <GoodyType>GOODY_HIGH_GOLD</GoodyType>
     <GoodyType>GOODY_HIGH_GOLD</GoodyType>
     <GoodyType>GOODY_HIGH_GOLD</GoodyType>
     <GoodyType>GOODY_LOW_GOLD</GoodyType>
     <GoodyType>GOODY_LOW_GOLD</GoodyType>
</Goodies>


La liste contient 6 éléments, donc N = 6. On trouve 4 fois HIGH_GOLD, donc la probabilité qu'une hutte contienne une grosse somme d'or vaut 4/6 = 2/3. A noter que si j'avais simplement mis dans ma liste 2 fois HIGH_GOLD et 1 fois LOW_GOLD, j'obtenais exactement le même résultat :ruse:

HintInfos : donne des noms XML aux textes des conseils (qui apparaissent dans la civilopédia et dans les écrans de chargement)

HurryInfos : définit le coût en citoyens et en or des coups de fouet et des achats

MPOptionsInfos : idem que les fichiers d'options précédents, pour les options propres au multijoueurs.

PlayerOptionInfos : même chose pour les options du joueur :baille:

ProcessInfos : décrit l'efficacité de la prodution de richesse, recherche ou culture dans les villes

ProjectInfos : assez similaire à BuildingInfos, mais pour les projets uniquement (Manhattan, Internet, pièces de vaisseau...)

ReligionInfos : les religions et leurs effets

SeaLevelInfos : définit une variable qui influence le niveau de la mer sur les cartes. Je ne connais pas l'effet exact de cette variable, à part que plus elle est élevée plus il y a d'eau :lol:

SpecialistInfos : les différents spécialistes et leurs effets sur la production de la ville et les apparitions de personnages illustres. On y trouve aussi les super-spécialistes (PI intégrés)

TurnTimerInfos : les différents vitesses de chronomètres de tour. D'après ce que j'ai mesuré, l'unité utilisée là-dedans est le 1/4 de seconde. :doute: La durée d'un tour est calculée à partir d'une durée de base à laquelle on ajoute une durée liée au nombre de villes, et une autre liée au nombre d'unités. Ce calcul est fait pour chaque joueur, et on garde le résultat le plus élevé qui sera la durée du tour pour tout le monde.

UpkeepInfos : indique à quoi correspodent les coûts d'entretien de doctrine léger, moyen et élevé.

VictoryInfos : ce que le joueur doit accomplir pour remplir chaque condition de victoire. Pour la victoire par domination, je n'ai toujours pas copris à quoi correspondent les valeurs. (je crois que celle du territoire est liée au pourcentage du territoire possédé par le meilleur rival, il faut avoir X% de plus que lui :saispas:) Pour les victoires liées à la construction de batiments ou de projets (comme la course à l'espace), les infos ne se trouvent pas ici. On trouve dans ProjectInfos et dans BuildingClassInfos des balises <VictoryThresholds> qui associent à un type de victoire le nombre d'exemplaires du bâtiment/projet que le joueur doit posséder pour gagner.

VoteInfos : les différents votes possibles à l'ONU, leurs effets en cas d'acceptation, et le nombre de voix a obtenir pour qu'ils soient appliqués.

WorldInfos : détais sur les différentes tailles de carte.


Le dossier Interface

Il y a de quoi faire aussi, donc je vais une nouvelle fois traiter les fichiers un par un.

AdvisorInfos : je n'ai absolument pas la moindre idée de ce que ce fichier définit. ça parle des conseillers, mais je n'en sais pas plus :boulet:

CameraInfos : indique l'emplacement d'un fichier .nif qui doit (je suppose) modéliser les mouvements possibles avec la caméra.

ColorValsInfos : définit des couleurs et donne leurs valeurs Rouge, Vert, Bleu et Alpha (transparence). Contrairement à ce qu'on a l'habitude de voir, les valeurs ne vont pas de 0 à 255 mais de 0 à 1.

InterfaceModeInfos : définit différents modes d'utilisation de l'interface pour permettre les changements d'apparence ou de pointeurs de souris en fonction de ce que le joueur est en train de faire.

PlayerColorInfos : attribue des couleurs aux civs. Chaque couleur de civ correspond à un groupement de 3 couleurs, 2 qui apparaissent sur les unités, les villes, les frontières.... et une troisième qui est la couleur dans laquelle le nom et le score de la civ sont écrits en bas à droite.

SlideShowInfos : décrit le diaporama qui est présenté au chargement d'une nouvelle partie. Les emplacements des différents images sont indiqués, ainsi que le temps pendant lequel elles restent affichées et l'effet de transition utilisé entre cette image et la suivante.

ThroneRoomInfos : :saispas:

ThroneRoomStyleInfos : ben... suivant la civ jouée, l'apparence du truc décrit dans le fichier précédent change :doute:

WorldPickerInfos : diverses infos plus ou moins compréhensibles sur les écrans de paramètres du monde (type et taille de carte, climat...)


Le dossier Misc

Je ne vais pas m'attarder, ça définit tout un lot de paramètres divers, essentiellement graphiques, dont je serais bien incapable d'expliquer le fonctionnement :boulet2:


Le dossier Technologies

Un seul fichier, qui définit les diférentes technologies. On y trouve leur coût, leur position sur l'arbre des techs, leur "orientation" (militaire, croissance, culture, etc... ça sert à déterminer les choix de techs des leaders IA en fonction de leur personnalité, et surtout à déterminer ce qu'un personnage illustre va choisir comme tech à découvrir). En ce qui concerne les éléments débloqués par la tech (bâtiments, unités, doctrines...), l'information se trouve dans la fiche de l'élément concerné, pas dans celle de la technologie.


Le dossier Terrain

Tous les fichiers de ce dossier ont le même rôle : décrire des éléments de terrain, ce qu'ils produisent, leurs graphismes etc...
Une case de terrain se compose de 4 choses :
  • un Terrain = terrain de base (plaine, prairie, desert, toundra, neige, côte, océan)
  • un Feature = contenu du terrain, c'est à dire une forêt, une jungle, une plaine innondable, une banquise... (optionnel)
  • un Bonus = ressource (optionnel)
  • un Improvement = aménagement construit par un ouvrier ou un bateau atelier. il est optionnel également.

Pour les contenus, ressources et aménagements, le fichier définit sur quels types de terrains de base on peut les trouver. A noter que les contenus, ressources et aménagements sont parfois incompatibles entre eux (on ne peut pas les trouver ensemble sur une même case). Exemple : une forêt et une ferme sont incompatibles.

Les "yields" sont les unités de base de production, or et nourriture.


Le dossier Text

Contient la totalité des textes apparaissant dans le jeu. Je reviendrai plus loin sur le fonctionnement de ce dossier.


Le dossier Units

AnimationInfos : comme son nom l'indique, il définit les animations des unités en fonction de ce qui leur arrive (mort, combat, unité qui se fait chier :lol:...)

AutomateInfos : quelques infos (très basiques) sur le comportement des unités automatisées. Comme pour le fichier sur les options du gouverneur, on ne peut pas faire grand chose d'intéressant ici, il faut mettre le nez dans le SDK.

BuildInfos : les missions des ouvriers et bateaux-ateliers, l'aménagement qu'elles permettent de construire, et le temps que ça leur prend.

CommandInfos : les "options" de l'unité (promotion, automatisation, fortification, en gros tout ce qui ressmeble à un ordre mais qui ne fait faire aucune action à l'unité) et leurs effets

ControlInfos : les effets des différents raccourcis claviers de sélection (Alt, Ctrl...)

FormationInfos : il parait que c'est important, je n'ai jamais compris pourquoi, je n'y ai jamais touché, et mes mods marchent bien :sifflote:

MissionInfos : tous les ordres que l'on peut donner aux unités et ce que l'unité va faire quand on clique dessus (par exemple faire BOUM qund on appuie sur le bouton rouge :lamer:)

PromotionInfos : les promotions, leurs effets, les types d'unités auxquelles on peut les donner...

SpecialUnitInfos : définition de 3 types d'unités spéciaux NUKE, FIGHTER et PEOPLE. ça sert à savoir par exemple ce qu'on peut faire monter dans une caravelle (PEOPLE uniquement). L'appartenance à un groupe est définie dans la fiche de l'unité.

UnitClassInfos et UnitInfos : c'est exactement le même principe que BuildingClassInfos et BuildingInfos.



Ce message a été modifié par juni_be_good le Mercredi 14 Février 2007 à 16h47
PMEmail Poster
Top
juni_be_good  Hors ligne
Ecrit le : Lundi 05 Février 2007 à 14h58
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Cas particulier - les fichiers Art

Dans un tag Art, on trouve généralement trois choses essentielles : un NIF, un KFM et un ShaderNIF. Il est important de savoir exactement à quoi chaque chose correspond.

Le NIF est un fichier qui contient le modèle 3D de l'objet, son squelette en quelque sorte. Ce fichier est indispensable. Le KFM est un fichier qui contient l'animation du NIF précédent. Il est facultatif. Enfin le ShaderNIF est un NIF spécial utilisé lorsque les animations sont désactivées dans les options. Il est préférable que ce champ soit rempli. Si l'objet ne possède pas de ShaderNIF, il faut y mettre le fichier NIF standard. Un ShaderNIF porte en général le même nom que le NIF standard, avec le suffixe _FX. Par exemple Warrior.nif et Warrior_FX.nif pour le guerrier.

Un objet peut nécessiter bien plus de fichiers que ces trois là, car leurs contenus sont généralement subdivisés en plusieurs sous fichiers. C'est un choix sans grande importance de la part du concepteur du graphisme. Du moment que l'on récupère bien le tout et que l'on est capable de localiser les 3 fichiers essentiels pour indiquer leurs liens dans le fichier Art, tout va bien.

Dans certains cas d'objets récupérés sur le net, il est mentionné que l'objet utilise une partie des animations d'un autre objet du jeu. Si le concepteur a bien fait son travail, il fournit les fichiers nécessaires de l'objet initial. Mais malheureusement ce n'est pas toujours le cas. Il faut alors récupérer à la main les fichiers de cet objet et les ajouter au dossier de l'objet que l'on veut intégrer au mod.

Mais un problème se pose, car les graphismes de Civ4 sont en grande majorité compactés dans des fichiers FPK situés dans le dossier Assets. Pour les désarchiver, il faut utiliser un petit outil fourni par Firaxis : PakBuild. Il est facile à trouver et à utiliser.

Moins importants, on trouve plus bas dans le tag Art le ShadowNIF qui est le modèle 3D de l'ombre de l'unité (oui, l'ombre est en 3D, ne cherchez pas à comprendre :saispas:), il n'en existe qu'une poignée en fonction du type d'unité, et ils font généralement très bien l'affaire.

Enfin plus bas, on trouve différents sons : celui qu'emet l'objet lorsqu'on la sélectionne ou qu'on passe à côté, celui qui est produit lorsque la ville achève la construction de cette chose, etc... Il est assez délicat d'ajouter des sons au jeu, et l'utilité est réduite, on peut généralement très bien se satisfaire des sons existants, voire s'en passer tout simplement. ;)

Une dernière chose importante pour finir : Scale et InterfaceScale. Scale c'est le rapport entre la taille initiale du modèle 3D et la taille réelle à l'écran. Il faut doser pour que ça soit visible sans être omniprésent. Enfin InterfaceScale, c'est l'échelle de l'objet dans la civilopédia et dans la liste de production des villes. Attention, InterfaceScale n'est pas proportionnel à la taille du modèle 3D, mais au Scale de celui-ci. Il faut donc toujours définir Scale en premier.


Cas particulier - les fichiers Text

Ils contiennent tous les textes qui apparaissent dans le jeu, que ce soient des noms d'objets, des textes de la civilopédia, des mesages diplomatiques, des infobulles, tout y est, rangé dans des fichiers par catégories (le rangement n'est pas toujours très clair malheureusement :() Ces tags sont utiles pour permettre un support multi-langues. En effet, au nom d'un tag est associé le texte correspondant dans toutes les langues supportées par le jeu. On y trouve aussi le genre du nom dans certains cas, et la possibilité de définir le pluriel du nom (peu utile dans la pratique :lol:)

Si vous souhaitez uniquement un mod en français (ou en anglais), ne vous embarassez pas avec les tags Text. Là où vous devriez insérer le lien vers un tag Text, vous pouvez très bien simplement insérer le texte que vous souhaitez voir apparaitre, il apparaitra tel quel dans toutes les langues. C'est moins propre, mais ça gagne énormément de temps :oui: Les tags text ne sont utiles que si vous voulez traduire dans d'autres langues, ou que vous êtes un manique du travail bien fait :lol: La seule exception que je vois, ce sont les textes de Civilopédia. Si vous commencez à polluer votre fichier d'unités ou de batiments avec les entrées de chacun dans la pédia, ça va devenir illisible. Mieux vaut fourrer tout ça dans un fichier texte dédié.

Si vous modifiez un tag existant, il faut faire un copier-coller du fichier dans lequel il se trouve, l'insérer dans votre mod et éditer, comme pour n'importe quel autre changeemnt dans le XML.

En revanche, là où les tags Text innovent un peu, c'est pour les tags qui n'existent pas encore (les noms d'objets que vous avez ajouté par exemple), vous pouvez les mettre où bon vous semble, du moment que ça se trouve dans le dossier Text. Vous pouvez les ajouter à des fichiers existants, créer un fichier du nom que vous souhaitez pour ajouter tous vos textes persos. C'est bien pratique et à vrai dire indispensable sinon ça serait un vrai bordel de savoir où le texte que l'on ajoute doit aller. :D

Il y a dans le dossier Text de Civ4 un fichier Text vierge fait pour ça : Civ4GameText_New.xml ;)

Ce message a été modifié par juni_be_good le Mardi 06 Mars 2007 à 17h08
PMEmail Poster
Top
juni_be_good  Hors ligne
Ecrit le : Lundi 05 Février 2007 à 14h59
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Réservé (en cas de besoin)
PMEmail Poster
Top
dézabillémoa  Hors ligne
Ecrit le : Lundi 05 Février 2007 à 15h52
Quote Post


Ouf à la retraite

Champion GOTM 2006, Vainqueur GOTM 05/06, 07/06, 09/06 Civ4

********

Groupe : Membres
Messages : 11 440
Membre n° : 3 111
Inscrit le : 02 Décembre 2005
-

-



J'en ai rêvé, Juni va le faire :bravo1:

Si mon post pollue ton topic, n'hésite pas à la supprimer !

C'était juste pour te motiver encore un peu plus :applau2:
PMEmail Poster
Top
juni_be_good  Hors ligne
Ecrit le : Lundi 05 Février 2007 à 15h57
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Pas de problème, j'ai pris soin de réserver les posts dont j'aurais besoin pour vous permettre de flooder autant que vous voulez derrière :lol:


:juni:
PMEmail Poster
Top
juni_be_good  Hors ligne
Ecrit le : Lundi 05 Février 2007 à 16h38
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Fin de la première parte, j'attaque le gros morceau : le détail du rôle de chaque fichier :arg:


:juni:
PMEmail Poster
Top
juni_be_good  Hors ligne
Ecrit le : Samedi 10 Février 2007 à 14h11
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Hop, petite mise à jour, la 1ère partie n'était pas finie en fait :boulet:


:juni:
PMEmail Poster
Top
AliEnAtOr  Hors ligne
Ecrit le : Samedi 10 Février 2007 à 19h36
Quote Post


Gentil Fantôme

Diplomate Sanmiliste de l'été

********

Groupe : Laborantin
Messages : 6 153
Membre n° : 1 732
Inscrit le : 06 Avril 2005


-



Alors ca c'est une grande idée juni :bravo1:
Très utile, merci :merci:

par contre pour quoi tu ne post pas ca dans le forum modding de civfr? a mon avis ca ferait des heureux :oui:


--------------------
You've to work hard more and more
For the holy economic war...
Groupe : le clan [MDR]

Liberté chérie peu à peu dépérit, nous glisse entre les doigts et se meurt en douceur...
PMEmail PosterMSN
Top
juni_be_good  Hors ligne
Ecrit le : Samedi 10 Février 2007 à 19h54
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Je le ferai sans doute quand il sera fini. :oui:


:juni:
PMEmail Poster
Top
Fingolfin  Hors ligne
Ecrit le : Samedi 10 Février 2007 à 21h01
Quote Post


Opérateur des profondeurs



********

Groupe : Membres
Messages : 9 308
Membre n° : 2 946
Inscrit le : 21 Novembre 2005
-

-



:applau:

Vivement la suite :happy:

:fleche:


--------------------
Je ne parviens plus à séparer dans mon esprit la sotte confiance dans la providence historique ou théologique de la vanité de celui qui croit être le centre du monde et que tout arrive sur un signe de lui. J'apprécie et je respecte en revanche celui qui agit bien sans demander aucune garantie que le monde s'améliore et sans attendre, je ne dis pas des récompenses, mais même des confirmations. Seul le bon pessimiste se trouve en condition d'agir d'un esprit libre, d'une volonté ferme, d'un sentiment d'humilité et de plein dévouement à sa tâche. Norberto Bobbio
PMEmail PosterMSN
Top
AliEnAtOr  Hors ligne
Ecrit le : Dimanche 11 Février 2007 à 1h10
Quote Post


Gentil Fantôme

Diplomate Sanmiliste de l'été

********

Groupe : Laborantin
Messages : 6 153
Membre n° : 1 732
Inscrit le : 06 Avril 2005


-



Ahhh ok, en fait c un peu comme une epopée sauf qu'on est les seul a voir l'honneur de poster entre leschapitre c'est ca?? :bleble:


--------------------
You've to work hard more and more
For the holy economic war...
Groupe : le clan [MDR]

Liberté chérie peu à peu dépérit, nous glisse entre les doigts et se meurt en douceur...
PMEmail PosterMSN
Top
juni_be_good  Hors ligne
Ecrit le : Dimanche 11 Février 2007 à 1h42
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Oui c'est à peu près ça :lol:

La vraie raison c'est surtout que je le fais principalement pour vous, parce que Moineau et Dezab m'ont tous les deux demandé de leur apprendre à modder :lol:

Je ne l'aurais pas fait sinon ;)


:juni:
PMEmail Poster
Top
juni_be_good  Hors ligne
Ecrit le : Mercredi 14 Février 2007 à 16h49
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Ayé, le gros morceau est fait. Ouf :chaud:


:juni:
PMEmail Poster
Top
juni_be_good  Hors ligne
Ecrit le : Mardi 06 Mars 2007 à 17h09
Quote Post


Black mage



********

Groupe : Admin
Messages : 11 552
Membre n° : 1 632
Inscrit le : 15 Mars 2005
-

-



Normalement tout y est. Si vous voyez d'autres choses à ajouter dites-le moi, mais je pense qu'avec ça vous avez de quoi bien démarrer ;)


:juni:
PMEmail Poster
Top
0 utilisateur(s) sur ce sujet (0 invités et 0 utilisateurs anonymes)
0 membres :

Topic Options Pages : (3) [1] 2 3  Reply to this topicStart new topicStart Poll

 

©2004 Skin IBF www.civfr.com par Lagalette

 
 

               Ce site est hébergé par IMINGO

MKPortal M1.1 Rc1 ©2003-2005 All rights reserved
Page affichée en 0.01701 secondes avec 4 requêtes