Tutoriel d'importation et exportation pour Blender

 
 
 
Pour bien expliquer la méthode utilisée pour importer dans Blender des fichiers nif de Fallout 4 rien ne vaut un tutoriel détaillé parce que la procédure est assez complexe.
 
On va avoir besoin de plusieurs outils pour convertir le format nif de Fallout 4 et pour pouvoir l'importer dans Blender.
 
Tout d'abord il faut Blender bien sur, mais il faut une ancienne version qui peut importer des formats nif, la dernière version fonctionnelle c'est la 2.49.2. Les versions plus récentes n'ont pas encore de plugin d'importation pourles fichiers nif qui fonctionne. Il y avait quelques versions préalpha, mais il semble que le projet est un peu mort.
 
Pour savoir comment installer Blender et les plugins nécessaires, il faut se référer aux tutoriels pour Fallout 3 et Skyrim sur ce même site.
Le problème c'est que cette version de Blender ne supporte que les fichiers nif au format Fallout 3, on va devoir convertir ces fichiers nif de Fallout 4 avant de pouvoir importer dans Blender.
 
Pour le faire, il nous faudra un outil très important qui est 3DStudio Max, c'est le seul moyen de pouvoir convertir des fichiers nif de Fallout 4 vers Fallout 3 et inversément.

Il faut une version bien précise, la version 2013 de 3DSMax, c'est la seule avec laquelle le plugin nif est compatible.

Ce plugin mis à jour par Figment n'est actuellement plus en développement. Figment l'a mis à jour partiellement pour Fallout 4 en décembre 2015 àprès la sortie du jeu, mais il a annoncé qu'il cessait ensuite le développement.

Plugin NIF Pour 3Dsmax
 
Ce plugin fonctionne assez bien, mais il contient quelques défauts assez ennuyeux.
Premièrement lorsqu'on importe un fichier NIF de type Fallout 4, le plugin commet une erreur, Figment a cru bien faire de réaligner le modèle avec le squelette. Ca semblait logique, mais c'est une erreur, parce que avec le nouveau format le squelette est positionné normalement au dessus de l'origine, mais le modèle est décalé vers le bas je ne sais pas vraiment pour quelle raison, peut-être pour pouvoir mieux animer sans que le squelette soit au milieu du modèle.
Cette erreur a pour conséquence que si on réexporte le modèle, il devient inutilisable.
Il y a d'autres erreurs dans ce plugin qui font que le fichier exporté au format Fallout 4 n'est pas valide tel quel, il faut ensuit modifier certaines propriétés sinon il sera invisible ou fera planter le jeu.
 
Un autre outil très important, c'est le couple BodySlide/Outfit Studio créé par l'équipe de CBBE.
C'est un outil fantastique qui permet facilement d'ajuster les modèles, de les recomposer, de les lier à un squelette, de recréer les partions de démembrement.
Sans cet outil la création de modèles NIF pour Fallout 4 valides serait très difficile et aléatoire.
BodySlide et Outfit Studio
 
 
Comme exemple, on va importer dans Blender le corps d'origine avec les mains et la tête.
 
C'est la première chose à faire pour avoir une référence pour tous les modèles qu'on va créer ensuite.
Chaque modèle sera construit autour de ce corps et en contiendra tout ou une partie.
Il est très important de faire ce travail avec une grande précision, parce que lorsque le modèle de vêtement ou d'armure sera chargé dans le jeu, il faudra que le raccord du cou et des mains ne soit pas visible.
Il y a énormément de mods où ce problème est flagrant, même le modèle de corps d'origine comporte une erreur d'alignement de la main gauche. Ca a été négligé parce que le Pipboy recouvre cet endroit ou que la plupart des manches des vêtements le recouvre aussi.
 
La première opération va consister à utiliser Outfit Studio pour importer les divers éléments du corps et les assembler dans un seul fichier NIF.
Il y a plusieurs parties, le corps, les mains, la face et le crâne. Le crâne se trouve dans la section Faceparts de CharacterAssets.
 
On voit ci-dessus les quatre parties du corps de base d'origine
 
Une vue du squelette et de la liaison de la meshe au squelette.
 
Une vue des partitions de démembrement en Segments et Sub Segments
 
On va ensuite exporter ce modèle du corps complet.
Lors de l'exportation on va garder l'UVMapping de la texture, le lien au squelette sous forme de poids, mais on ne va pas pouvoir exporter les partitions, Outfit Studio le fait, mais le plugin pour 3DSMax ne le prend pas en charge.
Ci dessus une vue du modèle complet dans NifSkope.
 
 
L'étape suivante va consister à importer ce modèle dans 3DSMax 2013 puis à l'exporter immédiatement au format Fallout 3 grâce au plugin de Figment.
La marche à suivre est simple et on verra immédiatement que le plugin d'importation a réaligné le corps et le squelette, une erreur qui va nous donner pas mal de travail malheureusement.
 
 
Le corps complet au format Fallout 3 prêt pour l'importation dans Blender.
 
 
 
Ensuite on va pouvoir importer ce fichier au format Fallout 3 dans Blender.
 
Vérifiez bien les options d'importation avant de commencer.
 
 
Comme le corps n'est pas dans la bonne position, il va falloir le remettre en place.
Pour le faire il y a une astuce assez simple, depuis Outfit Studio on va exporter le modèle du corps au format Wavefront OBJ, puis importer ce fichier OBJ dans Blender.
Pourquoi ne pas tout simplement importer ce fichier et travailler avec me direz-vous!
Et bien c'est tout à fait possible, mais il faudra ensuite le relier à un squelette car le format OBJ ne conserve pas ces données. On pourrait très bien importer l'OBJ dans Blender, le modifier selon les besoins puis le réexporter au format OBJ et l'importer dans Outfit Studio. Ensuite dans Outfit Studio on le lie au squelette, on copie les poids depuis un autre modèle équivalent et c'est terminé.
C'est ce que font presque tous les moddeurs car c'est la méthode la plus simple.
Le problème c'est que Outfit Studio fonctionne bien, mais le système de copie de poids pour la liaison au squelette n'est pas optimal, je préfère faire ce travail dans Blender qui donne de bien meilleurs résultats.
 
Attention au options d'importation des OBJ dans Blender sinon l'échelle et la rotation ne seront pas bonnes. Il faut désélectionner -X90 et mettre Clamp Scale à 0 si on importe depuis Outfit Studio, mais si on importe un OBJ qui a été exporté depuis NifSkope, il faut mettre Clamp Scale à 1000
 
 
Bon une fois que dans Blender on a le modèle nif au format Fallout 3 et le modèle au fortmat OBJ, on peut se baser sur le modèle OBJ pour remettre en place le modèle du corps complet en quatre parties.
 
On voi ci-dessus le modèle importé comme OBJ qui est en bas dans la bonne position et le modèle importé au format Fallout 3 qu'il faudra déplacer.
 
Voilà le résultat du déplacement des quatres parties du modèle
 
On peut zoomer dans les deux positions face et côté pour aligner très précisement la jointure du cou, ensuite on peut faire de même pour les mains, mais il ne faut prendre que la main droite pour l'alignement car la gauche a un petit défaut de jointure d'origine.
Ensuite on peut corriger ce petit défaut du bras gauche pour que tout soit parfait.
 
Il faut ensuite bien vérifier que les origines des modèles soit bien toutes à (0,0,0), comme l'origine du squelette.
Si on a déplacé le modèle en mode objet, il va falloir replacer l'origine en commençant par aligner le curseur sur (0,0,0) (snap sur la grille : SHIFT + S) puis on fait Object/Transform/Center Cursor
 
C'est très important d'être précis et de bien réaligner les origines, sinon par la suite ça va nous causer bien des ennuis comme des modèles invisibles, des jointures avec des fentes etc...
 
Une fois qu'on a notre modèle de corps complet pour nous servir de base et de référence, on peut commencer à travailler sur notre modèle.
 
 
L'exportation depuis Blender vers le format NIF Fallout 4 :
 
 
Lorsqu'on a terminé notre modèle, il va falloir l'exporter au format Fallout 3.
 
On va commencer par bien vérifier que tous les éléments du modèle ont bien leur origine sur (0,0,0) et qu'on a bien supprimé le squelette qui est venu avec l'importation.
Il vaut mieux supprimer ce squelette et en importer un nouveau en le désignant comme parent de tous les éléments du modèle réalisé. C'est une assurance contre des problèmes de mauvaise liaison lors de l'exportation.
Pour le faire on va choisir un modèle convertit au format Fallout 3 qui possède le même squelette.
Attention certains vêtements nécessitent des os spéciaux, les jupes ou capes on besoin d'os qui seront animés par le mopteur physique par exemple.
Certains autres qui ont des cols assez hauts auront besoin des os de la tête également.
Pour avoir le bon squelette, on peut utiliser un modèle existant ou en créer un avec Outfit Studio en composant par exemple un corps et une tête, le squelette du modèle composé aura les os pour la tête en plus de ceux du corps.
Habituellement lorsqu'on exporte un corps ou un vêtement, on ne va pas exporter la tête ni les mains. On les a seulement importés dans Blender pour servir de repère lors de la construction de notre modèle. La tête et les maisn sont automatiquement ajoutées par le moteur du jeu, d'où l'importance d'un bon alignement avec la tête et les mains d'origine.
 
 
On va sélectionner tous les éléments du modèle à exporter après avoir caché tout ce qui ne doit pas être exporté, puis on va importer le modèle qui contient le squelette désiré.
Dans le plugin d'importation on va bien choisir l'option: Import Skeleton Only + Parent Selected
 
On va alors avoir notre modèle lié au squelette et on va pouvoir immédiatement l'exporter.
 
Pour l'exportation on va choisir le preset Fallout 3 dans le plugin, mais on va désactiver Stripify Geometries et Stich Strips.
Si on laisse ces deux options, ça va rendre le travail plus ennuyeux par la suite car ça risque de décomposer la géométrie en de multiples éléments. Ce qu'on veut ce sont des NiTriShapes et pas de NiTriStrips dans le modèle NIF.
 
Si le modèle est bien valide, que tous les sommets sont liés au squelette, que les textures ont été appliquée avec des UV maps et qu'on a bien appliqué les rotations et mises à l'échelle au modèle: Object/ Clear/Apply / Aply Scale/Rotation to ObData le modèle devrait s'exporter sans problème.
Le causes fréquentes d'erreurs d'exportation sont souvent dues à des sommets non liés au squelette ou à des transformation non appliquées.
 
 
Nous avons notre modèle exporté au format Fallout 3, la suite va consister à l'importer dans 3DSMax 2013 et à l'exporter immédiatement au format Fallout 4 avec le plugin de Figment.
 
Exportation au format Fallout 4 depuis 3DSMax
 
Maintenant on a bien un modèle au format Fallout 4, mais il n'est pas encore utilisable.
Il va falloir procéder à quelques modifications des éléments BSSubIndexTriShape du modèle NIF.
On va utiliser NifSkope pour modifier le modèle.
 
Pour chaque BSSubIndexTriShape, on va commencer par modifier la valeur VF5, le plugin la met à 32, c'est une erreur qui va causer un crash du jeu si une mouche bouffie vous crache sa larve opu si une reine fanmgeux vous arrose de son venin. En effet il semble que si cette valeur n'est pas à 0 ça fait planter le jeu immédiatement.
Donc c'est très important, mettez VF5 0
La deuxième chose à faire c'est de créer les segments de démembrement du modèle.
Il faut au moins les segments de base sinon le modèle risque d'être invisible dans le jeu.
Normalement le corps est divisé en plusieurs segments, le buste, bras gauche, bras droit, jambe gauche, jambe droite.
Les bras et jambes sont eux encore divisés en 4 segments pour chaque bras et 5 segments pour chaque jambe.
Ces segments servent pour le démembrement des corps, mais il n'est pas nécessaire de tous les créer. Il faut au moins un segment pour tout le corps, en cas de démenbrement seules les mains et la tête vont pouvoir être arrachés.
C'est pas optimal, mais c'est déjà ça, on pourra faire mieux plus tard dans Outfit Studio.
 
On va mettre dans chaque BSSubIndexTriShape Num Segments 4 et Total Segment 4, puis on clique sur les flèches vertes dessous pour mettre à jour et faire apparaitre les segments.
 
Ensuite dans la section Segment, on va mettre pour chaque Segment Parent Array Index à 4294967295. On ne peut pas taper cette valeur, il faut simplement sélectionner par double clic et utiliser la roulette de la souris pour modifier.
Dans le quatrième Segment dans la partie Num Primitives on va en plus reporter la valeur qui se trouve dans Num Primitives (juste en dessus de Num Segments).
 
De cette manière on a au moins une partition principale pour le corps qui est le minimum vital.
 
Dans l'image ci-dessus le shader n'est pas correct, il ne correspond pas à celui de la peau et n'utilise pas le Material comme ça doit se faire.
 
Il reste encore à mettre de bons shaders pour chaque élement du modèle, ceux que le plugin a mis ne sont pas corrects. Le plus simple c'est de faire un copié-collé depuis un autre modèle valide avec NifSkope.
Ensuite on définit dans le shader BSLightingShaderProperty le bon material BGSM à utiliser. N'utilisez pas l'ancienne méthode qui consiste à définir des textures dans le shader, le nouveau format utilise des fichiers Material BGSM qu'on peut configurer avec un petit éditeur très pratique.
 
 
Une fois qu'on a terminé ces modifications, à ne surtout pas négliger sous peine de problèmes très ennuyeux, on va valider le modèle en le chargeant dans Outfit Studio.
 
Dans Outfit Studio on va faire : File/ New Project
Puis dans la boite de dialogue on va choisir From File et choisir un modèle assez semblable et dans Shape on va choisir le corps de base si on le voit complètement ou un élément de vêtement qui recouvre la zone de notre modèle.
 
Puis on fait : Next / From File
Et on choisit notre modèle et puis Finish pour terminer.
 
On va obtenir le modèle de référence plus notre modèle.
Ensuite on peut exporter immédiatement notre modèle, mais il est plus prudent de légèrement ajuster le modèle qu'on a créé pour forcer Outfit Studio a bien reconstruire le fichier NIF:
 
Ensuite finalement on fait : File/ Export/ To Nif
On n'exporte pas la référence bien sur, sauf si on en a besoin pour compléter notre modèle.
 
Normalement à ce moment on a un fichier NIF complètement valide et utilisable dans le jeu. Il faut bien vérifier si les Bounding Sphere des os du squelette sont bien sur le corps, si il y a eu un problème d'origine pas à (0,0,0) lors de l'exportation depuis Blender ça peut arriver. Avec la version 3.8 de Outfit Studio, la translation était prise en compte et le problème corrigé automatiquement, mais avec la version 4.3 que j'ai actuellement ce n'est plus le cas. Lorsqu'on va importer le modèle dans Outfit Studio, les parties qui n'ont pas une origine à (0,0,0) seront décalées vers le haut.
 
Mais il peut d'arriver que malgré toutes ces précautions on se retrouve avec un modèle invisible.
Je n'ai pas vraiment localisé le problème, mais il semble que le plugin d'exportation de Blender n'exporte pas correctement certains objets. J'ai essayé de corriger avec NifSkope, en ajustant les normales et les tangeantes, mais ça ne change rien, la géométrie est invalide. Pourtant dans NifSkope et Outfit Studio tout est parfaitement visible et semble correct.
Dans le jeu on voit que le modèle est bien chargé, par exemple si on a un corps valide dessous, on va voir des ombres ou des taches ou se trouve le modèle. Le moteur du jeu ne parvient pas à rendre correctement la géométrie pour une raison inconnue.
Il y a une solution assez simple au problème.
 
Il faut exporter le modèle depuis Blender au format OBJ, attention aux options d'exportation! puis importer cet OBJ dans Outfit Studio après avoir terminé le processus de conversion.
Dans Outfit Studio on va importer notre modèle NIF invalide : File/ Import/ From NIF
Dans Outfit Studio on ensuite va importer l'OBJ : File/ Import/ From OBJ
Au moment de l'importation un message Merge or New va apparaitre il faut cliquer sur non, on veut un nouvel objet qu'on va nommer comme on veut.
 
Ce modèle au format OBJ n'aura pas de liaison au squelette, mais on va simplement transférer ces poids depuis notre modèle qui lui les a.
 
On va sélectionner notre modèle et dans la fenêtre de droite on va faire un clic droit dessus et choisir Set Reference
 
Ensuite on sélectionne le modèle OBJ importé et on fait Copy Bone Weight
 
Dans le menu on va mettre Serach Radius à 1 ou 2 seulement et Max Vertex Targets à 1
Puisqu'on a deux modèles strictement identiques (mêmes sommets) on va simplement copier le poids de chaque sommet à celui qui lui correspond. Pas besoin de faire une interpolation entre plusieurs sommets comme lorsqu'on a deux modèles différents qui n'ont pas des sommets identiques.
 
On vérifie que la copie des poids s'est bien passée et ensuite on exporte le modèle sans la référence et on n'a plus qu'à copier les bons shader dans le nouveau modèle.
 
Ce problème de modèles invalides est apparu soudainement je ne sais trop pourquoi, sous Windows 7 je ne me souviens pas avoir eu ce genre de difficulté et il me semble qu'au début avec Windows 10 ça marchait, mais depuis une réinstallation du système, ce problème survient de temps en temps. Ce doit probablement être une erreur du plugin d'exportation de Blender, c'est un plugin écrit avec un langage de script très peu performant qui est très lent et pas très stable.
 
La méthode d'importation en passant par un fichier OBJ semble bien plus simple et est utilisée par la majorité des moddeurs, mais il faut un modèle qui soit très ressemblant à celui qu'on importe pour servir de référence. L'outil de copie des poids a bien évolué dans Outfit Studio, on peut maintenant choisir la distance de copie entre le sommet du modèle et ceux de la référence et également le nombre de sommets de la référence qui peuvent être pris en compte pour la moyenne. C'est bien mieux qu'avant où la copie était souvent problématique, mais si les modèles sont très différents le résultat doit être ajusté à la main et ce n'est pas très simple à faire.
Dans mon cas de problème d'invalidité de nif, c'était facile parce que j'avais la référence qui était absolument identique et je n'avais qu'à copier les poids que d'un sommet à un autre avec la garantie qu'il n'y aurait pas de problème.
 
La finalisation avec un démembrement correct (pas encore fonctionnel):
 
Lorsqu'on a un modèle complètement valide, on peut se permettre le luxe de recréer des partitions de démembrent semblables à celle des modèles d'origine.
 
En effet les dernières version d'Outfit Studio permettent de recréer ces partions de façon assez simple.
 
Il suffit d'importer un modèle d'origine avec toute la structure de démembrement dans une fenêtre d'Outfit Studio, puis d'ouvrir une autre fenêtre d'Outfit Studio et recréer les partitions en se basant sur le modèle d'origine.
Il faut bien respecter la structure et ensuite il suffit de peindre les partitions sur le modèle.
 
Mais tout ça ne sert souvent pas à grand chose puisque le démembrement ne fonctionne pas sur des modèles qui ont un plus grand nombre de polygones que les originaux.
Il y a encore pas mal de choses qu'on ignore au sujet du nouveau format nif et ce problème de démembrement est encore un mystère! Mêm si le fichier nif semble correct avec tous les segments bien configurés et quil y a un fichier SSF qui accompagne le modèle ça ne marche pas.