« Dark Faces » : différence entre les versions

De La Confrérie des Traducteurs
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
Dans ce guide, nous allons voir comment corriger [b]efficacement[/b] un des soucis les plus fréquents lorsqu'on modifie des PNJs : les visages sombres.
Dans ce guide, nous allons voir comment corriger efficacement l'un des soucis les plus fréquents lorsqu'on utilise des mods modifiant des PNJs : les visages sombres (''dark faces'' ou ''grey faces'').


Nous allons tout d'abord devoir déterminer d'où vient le problème, deux causes sont possibles (oui, seulement) :
Il faut tout d'abord déterminer d'où vient le problème, car deux causes sont possibles (oui, seulement) :


* Conflits de plugins et de fichiers (problème utilisateur) ;
* Conflits de plugins et de fichiers (problème '''utilisateur''') ;
* Les fichiers composant le visage (FaceGen) sont inexistants (problème moddeur).
* FaceGen inexistants dans le mod (problème '''moddeur''').
Ce guide s'attache à comprendre et résoudre le premier point ; le second sera traité dans un guide dédié, plus axé modding.


== Comprendre et résoudre les conflits de plugins et de fichiers ==
{{Note|type=reminder|text=Pour harmoniser très facilement vos mods de PNJs et éviter ce bug, le logiciel [[EasyNPC]] est recommandé : il fait automatiquement ce qui est décrit ci-après !}}
Lorsqu'un mod modifie un visage, il y apporte généralement deux choses : les FaceGen (un mesh pour la sculpture du visage et une texture pour la teinte) et les Head Parts. Ces derniers représentent les édits du plugin permettant d'utiliser les FaceGen correspondants.


Pour simplifier, si vous utilisez les fichiers FaceGen d'un mod A avec les édits d'un mod B, cela résultera très probablement en une dark face.
== Explication générale ==
Lorsqu'un mod modifie un visage, il y apporte généralement deux choses : un '''FaceGen''' (incluant un mesh pour la sculpture du visage et une texture pour sa teinte) et des '''Head Parts'''. Ces dernières représentent les composants du visage du PNJ et sont contenues dans le plugin ; elles correspondent au FaceGen du PNJ.


{{Note|type=error|text=Les fichiers contenus dans les archives BSA doivent impérativement être extraits sinon ils seront systématiquement écrasés par les fichiers libres (loose files), quel que soit l'ordre d'installation !}}
Pour simplifier, si vous utilisez les FaceGen d'un mod A avec les édits de plugin d'un mod B, cela résultera très probablement en une ''dark face''.
[[Fichier:Dark Face.png|alt=Un exemple de Dark Face en jeu|centré|vignette|Un exemple de ''Dark Face'' en jeu.]]


=== Fonctionnement ===
== Comprendre le fonctionnement ==
Cette problématique est de loin la cause la plus commune des dark faces. Commençons tout d'abord par jeter un œil aux conflits de plugins !
Pour contrôler les conflits de plugin, il faudra exécuter le programme [[xEdit]] et y charger tous les plugins.


Pour cela, nous aurons besoin d'exécuter [[xEdit]] et d'y charger tous nos plugins.
Une fois les plugins chargés, recherchez un PNJ par sa FormID dans le champ dédié, tout en haut à gauche. Tous les PNJs sont traités dans la catégorie '''Non-Player Character''' (NPC).


Une fois les plugins chargés, recherchez un PNJ par sa FormID dans le champ dédié, tout en haut à gauche :
{{Note|type=info|text=Pour connaître la FormID d'un PNJ, vous pouvez cliquer directement dessus depuis la console en jeu avec [https://www.nexusmods.com/skyrimspecialedition/mods/19250 More Informative Console].}}
 
{{Note|type=info|text=Pour connaître la FormID d'un PNJ, vous pouvez aussi cliquer directement dessus depuis la console en jeu, ce qui vous l'affichera. Vous aurez toutefois besoin que l'indispensable [https://www.nexusmods.com/skyrimspecialedition/mods/19250 More Informative Console] soit installé !}}
 
Dans cet exemple, nous examinerons le cas d'Aela la Chasseuse (ID : 0001A696). Tous les PNJs sont traités dans la catégorie "Non-Player Character" (NPC).
 
En trouvant Aela, nous constatons que plusieurs plugins la modifient :
 
En parcourant les colonnes, nous pouvons voir les divers ajouts et modifications apportés par ces autres plugins./img][/align]


Dans cet exemple, nous examinerons le cas d''''Aela la Chasseuse''' (FormID : 0001A696). En trouvant Aela, nous constatons que plusieurs plugins la modifient :
[[Fichier:XEdit Aela.jpg|alt=L'entrée Aela dans xEdit|centré|vignette|L'entrée Aela dans xEdit.]]
En parcourant les colonnes, nous pouvons voir les divers ajouts et modifications apportés par ces autres plugins :
[[Fichier:XEdit Aela 2.jpg|alt=Les différentes modifications apportées à Aela|centré|vignette|Les différentes modifications apportées à Aela.]]
{{Note|type=reminder|text=Seuls les édits du '''dernier''' plugin (donc celui le plus à droite) '''comptent''' ! Le moindre plugin chargé après celui modifiant le visage d'un PNJ ramènera très probablement les édits vanilla (''face parts'') et provoquera une ''dark face''.}}
{{Note|type=reminder|text=Seuls les édits du '''dernier''' plugin (donc celui le plus à droite) '''comptent''' ! Le moindre plugin chargé après celui modifiant le visage d'un PNJ ramènera très probablement les édits vanilla (''face parts'') et provoquera une ''dark face''.}}


=== Résolution ===
== Résolution des conflits ==
Afin de profiter des modifications de chacun de ces plugins, nous allons donc devoir créer notre propre plugin de résolution de conflits.  
{{Note|type=error|text=Pour s'assurer que les fichiers des mods s'écrasent comme désiré, les fichiers contenus dans les archives BSA doivent impérativement être extraits, sans quoi les fichiers en loose prendront toujours le pas.}}
 
Pour profiter des modifications de chacun de ces plugins, nous allons devoir créer notre propre plugin de résolution de conflits. Pour ce faire, nous allons partir de l'un des plugins modifiant Aela afin de gagner du temps.  
Pour ce faire, nous allons partir de l'un des plugins modifiant Aela afin de gagner du temps.


Pour notre exemple, nous allons faire un '''clic droit sur l'entête de colonne''' de Bijin AIO.esp, puis cliquer sur '''Copy as override (with overwriting) into'''....
Pour notre exemple, nous allons faire un '''clic droit sur l'entête de colonne''' de Bijin AIO.esp, puis cliquer sur '''Copy as override (with overwriting) into'''....


Précisions concernant la commande "[i][b]Copy as override (with overwriting) into...[/b][/i]"[/u] :
{{Note|type=info|text=La commande avec '''Copy as override (with overwriting) into...''' permet d'écraser les modifications préexistantes sur le plugin d'arrivée s'il existe déjà, contrairement à Copy as override into...}}


Comme vous l'avez sans doute remarqué, au-dessus de cette commande se trouve une autre commande nommée "[i][b]Copy as override into...[/b][/i]". "[i][b]Copy as override (with overwriting) into...[/b][/i]" permet d'écraser des modifications préexistantes sur le plugin d'arrivée (choisir "[b][i]Yes to all[/i][/b]" le cas échéant). Je vous suggère cette commande plutôt que l'autre pour éviter que vos modifications se perdent si d'autres étaient déjà présentes dans le plugin d'arrivée, ce qui pourrait totalement arriver à force d'éditer votre patch de résolution de conflits.
Une fenêtre s'ouvre pour nous permettre de choisir vers quel plugin envoyer ces édits. Puisque nous créons notre propre patch, nous allons choisir un '''nouveau plugin''', en fin de liste : <code><new file>.esp | [Template] |    | ESL</code>). Il sera ainsi déjà [[ESLisation|ESLisé]] ! Choisissez le nom que vous souhaitez pour votre plugin et et cliquez sur OK.


La fenêtre s'ouvre pour nous permettre de choisir vers quel/s plugin/s envoyer ces édits.
Notre nouveau plugin embarquant les édits de Bijin AIO.esp apparaît maintenant tout à droite. Nous allons maintenant importer les modifications apportées par les autres plugins. Pour ce faire, faites glisser une catégorie modifiée par un autre plugin dans le nouveau plugin :
[[Fichier:XEdit Glisser.jpg|alt=Faire glisser une information dans le patch personnalisé|centré|vignette|Faire glisser une information dans le patch personnalisé.]]
Si les modifications apportées par les plugins prennent leur source dans ces plugins, un message s'affichera afin d'ajouter ces plugins en masters de votre patch, ce qui est normal (cliquez sur Yes). La modification devrait maintenant se trouver dans votre propre patch !


Puisque nous créons notre propre patch, nous allons choisir un '''nouveau plugin''', en fin de liste (<code><new file>.esp | [Template] |    | ESL</code>).
Il ne vous reste plus qu'à faire de même avec les autres modifications ainsi qu'avec les autres PNJs impactés, et sauvegarder votre plugin.
 
Choisissez le nom que vous souhaitez pour votre plugin et et cliquez sur OK.
 
Notre nouveau plugin embarquant les édits de Bijin AIO.esp apparaît maintenant tout à droite :
 
Nous allons maintenant importer les modifications apportées par les autres plugins.
 
Pour ce faire, faites glisser une catégorie modifiée par un autre plugin dans le nouveau plugin :
 
Si les modifications apportées par les plugins prennent leur source dans ces plugins, ce message s'affichera afin d'ajouter ces plugins en masters de votre patch :
 
La modification devrait maintenant se trouver dans votre propre patch :
 
Faites de même pour les autres modifications ! Nous verrons plus loin comment traiter les conflits modifiant les mêmes catégories ([b]cohabitation[/b]) :
 
Il ne vous reste plus qu'à faire de même avec vos autres PNJs impactés et sauvegarder votre plugin :


{{Note|type=reminder|text=Votre nouveau plugin se trouve maintenant dans votre dossier '''Overwrite''' si vous utilisez MO2.}}
{{Note|type=reminder|text=Votre nouveau plugin se trouve maintenant dans votre dossier '''Overwrite''' si vous utilisez MO2.}}
Ligne 96 : Ligne 79 :


Sélectionnez le plugin dans le champ de suggestion et cliquez sur "Enregistrer". Désormais, LOOT placera toujours votre plugin après le Bashed Patch !
Sélectionnez le plugin dans le champ de suggestion et cliquez sur "Enregistrer". Désormais, LOOT placera toujours votre plugin après le Bashed Patch !
== FaceGen inexistants ==
Il peut arriver parfois qu'un mod soit proposé sans ses FaceGen (pour un PNJ vanilla ou un nouveau PNJ), ce qui ne manquera pas de provoquer une dark face.
Pour générer ces précieux fichiers, nous allons avoir besoin du [[Creation Kit]].
Pour commencer, ouvrir le Creation Kit et charger le plugin duquel vous souhaitez générer des FaceGen.
Sélectionner le plugin, et cliquer sur "Set as Active File".
Une fois le chargement terminé, aller en haut à gauche de la fenêtre "Object Window" et cocher "Show only active (*) forms" afin de n'afficher que les édits du plugin actif. Puis cliquer dans la catégorie "Actors".
Sélectionner les PNJs que vous souhaitez générer, puis faire un CTRL + F4, cette fenêtre apparaît :
Cliquer sur "OK", puis attendre que le message "Done" apparaisse. Vous pouvez désormais fermer le CK, vos fichiers ont été générés (dans votre Overwrite ou autre dossier de sortie).
Si après lecture ce guide, je vous surprends encore à utiliser une atrocité comme Discoloration Fix, vous aurez affaire à moi !

Version du 28 février 2024 à 19:02

Dans ce guide, nous allons voir comment corriger efficacement l'un des soucis les plus fréquents lorsqu'on utilise des mods modifiant des PNJs : les visages sombres (dark faces ou grey faces).

Il faut tout d'abord déterminer d'où vient le problème, car deux causes sont possibles (oui, seulement) :

  • Conflits de plugins et de fichiers (problème utilisateur) ;
  • FaceGen inexistants dans le mod (problème moddeur).

Ce guide s'attache à comprendre et résoudre le premier point ; le second sera traité dans un guide dédié, plus axé modding.

Pour harmoniser très facilement vos mods de PNJs et éviter ce bug, le logiciel EasyNPC est recommandé : il fait automatiquement ce qui est décrit ci-après !

Explication générale

Lorsqu'un mod modifie un visage, il y apporte généralement deux choses : un FaceGen (incluant un mesh pour la sculpture du visage et une texture pour sa teinte) et des Head Parts. Ces dernières représentent les composants du visage du PNJ et sont contenues dans le plugin ; elles correspondent au FaceGen du PNJ.

Pour simplifier, si vous utilisez les FaceGen d'un mod A avec les édits de plugin d'un mod B, cela résultera très probablement en une dark face.

Un exemple de Dark Face en jeu
Un exemple de Dark Face en jeu.

Comprendre le fonctionnement

Pour contrôler les conflits de plugin, il faudra exécuter le programme xEdit et y charger tous les plugins.

Une fois les plugins chargés, recherchez un PNJ par sa FormID dans le champ dédié, tout en haut à gauche. Tous les PNJs sont traités dans la catégorie Non-Player Character (NPC).

Pour connaître la FormID d'un PNJ, vous pouvez cliquer directement dessus depuis la console en jeu avec More Informative Console.

Dans cet exemple, nous examinerons le cas d'Aela la Chasseuse (FormID : 0001A696). En trouvant Aela, nous constatons que plusieurs plugins la modifient :

L'entrée Aela dans xEdit
L'entrée Aela dans xEdit.

En parcourant les colonnes, nous pouvons voir les divers ajouts et modifications apportés par ces autres plugins :

Les différentes modifications apportées à Aela
Les différentes modifications apportées à Aela.
Seuls les édits du dernier plugin (donc celui le plus à droite) comptent ! Le moindre plugin chargé après celui modifiant le visage d'un PNJ ramènera très probablement les édits vanilla (face parts) et provoquera une dark face.

Résolution des conflits

Pour s'assurer que les fichiers des mods s'écrasent comme désiré, les fichiers contenus dans les archives BSA doivent impérativement être extraits, sans quoi les fichiers en loose prendront toujours le pas.

Pour profiter des modifications de chacun de ces plugins, nous allons devoir créer notre propre plugin de résolution de conflits. Pour ce faire, nous allons partir de l'un des plugins modifiant Aela afin de gagner du temps.

Pour notre exemple, nous allons faire un clic droit sur l'entête de colonne de Bijin AIO.esp, puis cliquer sur Copy as override (with overwriting) into....

La commande avec Copy as override (with overwriting) into... permet d'écraser les modifications préexistantes sur le plugin d'arrivée s'il existe déjà, contrairement à Copy as override into...

Une fenêtre s'ouvre pour nous permettre de choisir vers quel plugin envoyer ces édits. Puisque nous créons notre propre patch, nous allons choisir un nouveau plugin, en fin de liste : <new file>.esp | [Template] | | ESL). Il sera ainsi déjà ESLisé ! Choisissez le nom que vous souhaitez pour votre plugin et et cliquez sur OK.

Notre nouveau plugin embarquant les édits de Bijin AIO.esp apparaît maintenant tout à droite. Nous allons maintenant importer les modifications apportées par les autres plugins. Pour ce faire, faites glisser une catégorie modifiée par un autre plugin dans le nouveau plugin :

Faire glisser une information dans le patch personnalisé
Faire glisser une information dans le patch personnalisé.

Si les modifications apportées par les plugins prennent leur source dans ces plugins, un message s'affichera afin d'ajouter ces plugins en masters de votre patch, ce qui est normal (cliquez sur Yes). La modification devrait maintenant se trouver dans votre propre patch !

Il ne vous reste plus qu'à faire de même avec les autres modifications ainsi qu'avec les autres PNJs impactés, et sauvegarder votre plugin.

Votre nouveau plugin se trouve maintenant dans votre dossier Overwrite si vous utilisez MO2.

Cohabitation

Si vous installez plusieurs mods améliorant l'apparence de plusieurs PNJs, vous aurez peut-être le cas où le même PNJ est modifié par deux ou plusieurs de ces mods. Pas de panique, tout va bien !

Pour résoudre cette problématique, nous prendrons Falk Barbebraise pour nous servir d'exemple (ID : 00013274).

L'ID du PNJ est particulièrement importante ici, car elle nous servira également à localiser ses fameux FaceGen !

Dans ce genre de cas, la clé est de conserver la même cohérence de résolution de conflits entre les fichiers (FaceGen) et les plugins (Édits).

Concrètement, ça signifie que si, par exemple, mon cher Falk est modifié par "The Men of Winter" et "Pandorable's NPCs - Male", je devrai choisir quelle modification je veux conserver !

Décidons ici arbitrairement que nous voulons privilégier les modifications faites par "The Men of Winter" pour notre Falk adoré, nous allons donc commencer par vérifier les édits dans xEdit comme vu précédemment :

D'après notre ordre de chargement actuel, "PAN_NPCs_Male.esp" est chargé après "The Men of Winter". Il va donc falloir que, comme avant, nous fassions un clic droit sur l'entête de colonne de Men of Winter, puis à nouveau "[i][b]Copy as override (with overwriting) into...[/b][/i]", et que nous envoyions ces édits dans notre patch.

Sauvegardez votre patch et quittez xEdit.

Nous allons maintenant vérifier la cohérence avec les conflits de fichiers. Pour cela, depuis MO2, cherchez et ouvrez le dossier d'installation du mod souhaité, ici "The Men of Winter" (astuce : maintenir CTRL et double-cliquer sur le dossier depuis MO2 pour l'ouvrir).

Nous allons maintenant chercher les fichiers qui nous intéressent respectivement dans "meshes\actors\character\facegendata\facegeom\skyrim.esm\" pour la sculpture du visage et "textures\actors\character\facegendata\facetint\skyrim.esm\" pour la teinte. Les fichiers qui nous intéressent ont le même ID que notre PNJ, donc dans notre cas 00013274.

Nous pouvons maintenant créer un nouveau dossier de mod que nous placerons sous nos deux mods conflictuels.

Dans ce nouveau dossier d'installation, nous allons devoir recréer la même arborescence, soit "meshes\actors\character\facegendata\facegeom\skyrim.esm\" et textures\actors\character\facegendata\facetint\skyrim.esm\" et y déposer nos fichiers précédemment récupérés.

Métadonnées

Si vous utilisez LOOT pour trier vos plugins, vous pouvez créer une métadonnée afin de le forcer à charger votre plugin après d'autres plugins pouvant altérer vos modifications, comme le Bashed Patch.

Pour cela, démarrez LOOT et, dans la colonne de gauche, faites un clic droit sur votre plugin, puis "Éditer les metadata..." (ou CTRL + E).

Dans l'onglet "Charger après", cliquez sous "Nom du fichier", puis tapez "Bashed Patch".

Sélectionnez le plugin dans le champ de suggestion et cliquez sur "Enregistrer". Désormais, LOOT placera toujours votre plugin après le Bashed Patch !