Faire de nouveaux Placeables a partir des Tilsets

de Skanzo et Tyriael


Voila comme promis , je l'ai fait vite fait (je bosse moi messieurs) alors si y a un souci n'hésitez pas à le signaler

Permière étape:

Tout d'abord procurez vous les logiciels suivants :

nwnviewer de zoligato
nwnMdlviewer de bioware
mdl2ascii.exe

Voila ensuite créez un dossier ou vous fourrez tout ca ; appellons le : Mobilier.
Faites dans le même dossier un raccourci du programme mdl2ascii.exe.
Créez votre hak avec le nwnviewer de zoligato (File/nwn packer/icone page blanche/new hak/-nom de votre hak-).


Deuxième étape:

lancez le nwnviewer.
cliquez sur File/BIF/Never WinterNight
Puis dans le cadre "BIF list", cliquez sur la ligne 8 : "Data\aurora_tin.bif".

Une liste de trucs apparaîtra en dessous. Dans cette liste, remarquez les lignes de Type MDL , ce sont celles-ci qui nous intéressent , cliquer dessus et voyez a droite apparaître le tileset .

Prenons le premier:
tin01_a01_01 , cliquez dessus, à droite un tilset avec au mur une lanterne.
Sur la partie de droite vous pouvez voir 2 cadres , animation et node
Intéressons nous a "node" cliquer dessus et faite défiler les différents éléments dedans , vous pouvez voir que sur l'image certaines parties correspondant au nom passe en violet .Nous allons nous occuper de la lanterne qui devient violette avec le node : Box2151, et object 863 notez le quelque part ou souvenez vous en.

Bien à présent, faites un clique droit sur "tin01_a01_01" dans la liste et "extract file to _le fichier que l'on a appelle Objet_ "


Troisième étape:

Allons dans ce fichier , vous y voyez donc le fichier que l'on vient d'exporter "tin01_a01_01.mdl". Bien a présent faite sur le raccourcis de mdl2ascii.exe clic droit /propriété. Remplacez la ligne en face "cible" par la ligne suivante :"D:\Mes Documents\nwn\Objet\mdl2ascii.exe" tin01_a01_01.mdl . Vous l'avez compris on rajoute à la fin de la ligne le nom du tilset que l'on a importé (bien entendu remplacez le début de l'adresse par votre hdd et dossier).

Et ensuite validez , fermer les propriété , et double-cliquez sur le raccourci, vous devez obtenir ceci : tin01_a01-01.mdl.ascii

Quatrième étape:

Faites un double que vous renommez objet1 (par exemple) , Ouvrez le avec wordpad, à l'intérieur vous devez voir un truc comme ceci :


#Model converted by mdl2ascii
#For updates/comments check out http://nwn-j3d.sf.net
filedependancy Unknown
newmodel TIN01_A01_01
setsupermodel TIN01_A01_01 NULL
classification Character
setanimationscale 1.000000
#MAXGEOM ASCII
beginmodelgeom TIN01_A01_01
node dummy TIN01_A01_01
parent NULL
endnode
node dummy TIN01_A01_01sl2
parent TIN01_A01_01
position -0.006734 3.375280 1.761660
orientation 0.000000 0.000000 -1.000000 -1.570800
endnode
node light TIN01_A01_01ml2
parent TIN01_A01_01
position -3.036070 -3.140780 4.000000
orientation 0.000000 0.000000 0.000000 0.000000
#this is fake data - real one has to be determined
etc...

Effacez tout et mettez ceci :


#Model converted by mdl2ascii
#For updates/comments check out http://nwn-j3d.sf.net
filedependancy Unknown
newmodel TIN01_T01_01
setsupermodel TIN01_T01_01 NULL
classification Character
setanimationscale 1.000000
#MAXGEOM ASCII
beginmodelgeom TIN01_T01_01
node dummy TIN01_T01_01
parent NULL
endnode

[ ]

endmodelgeom TIN01_T01_01
donemodel TIN01_T01_01

Ce qui correspond au début et à la fin de ce qu'il y avait...

Sauvegardez sous le nom plc_t27.

Ensuite, ouvrez le fichier original qui était souvenez vous : tin01_a01-01.mdl.ascii, à l'intérieur cherchez les lignes qui corresponde à l'objet qui nous intéresse , soit la lanterne et donc le node :Box2151 et la box2151 (Pensez bien à chaque fois de sélectionner tous les objets violets qui compose le placeable , parfois un seul , parfois plusieurs .)

Faites un copier de tout ce qui est entre node trimesh Box2151 et endnode de la box2151 , (node trimesh Box2151 et endnode y compris)

Collez ensuite ce que vous venez de copier à la place des [ ] du fichier plc_t27 (qui je le rappelle est expliqué juste au dessus). Puis à la suite du endnode de la box2151 Faite un copier de tout ce qui est entre node trimesh object863 et endnode du object863. Puis sauvegardez.

Ensuite selectionnez ceci : TIN01_T01_01 puis Edition/remplacer et remplacer par le nom plc_t27(je vous expliquerai le nom plus tard, mais remarquez que c'est le même nom que le nom du dossier).

Ensuite regardez bien la ligne "parent TIN01_A01_01" , remplacer TIN_A01_01 également par plc_t27 (dans les 2 objets , box2151 et object863).

Ensuite Remplacez la ligne position -0.010000 3.540000 1.950000 de la box2151et par la ligne :
position 0.000000 0.000000 0.000000
(faites de même pour l' object863)

Puis sauvegardez.

Renommez votre fichier plc_t27.mdl.asciien supprimant le .ascii vous devez obtenir ceci: plc_t27.mdl.

Ouvrez le programme nwnmdlviewer et regardez avec votre dossier ainsi créé et admirez la lanterne


Cinquième étape:

Ouvrir le programme de zoligato File /NWN packer/ puis ouvrez le dossier _le nom de votre hack _.hak

A gauche tous les placeables :

Exportez le dossier Placeable.2da dans votre dossier Fourre tout Mobilier, ensuite allez dans ce dossier et ouvrez le Placeable.2da avec wordpad .vous pouvez voir la liste des placeables : d'ou le nom plc= placeable , le numéro qui suit (soit pour nous 27 car j'en suis rendu la mais vous pourriez commencer a plc_t11 qui est le premier "nom libre de la liste ) correspond a un numéro "libre" qui suit la liste des placeable et le t , ben parce que !!! lool , disons que on aurais aussi bien put prendre a27 ou c27 etc.

donc tout en bas on prend a la suite et on copie/colle la ligne 200 soit :
200 BB_pouch 66494 gi_pouch **** **** **** **** 23 etc.
et on remplace le par ce qu'il faut soit pour nous :
201 Lanterne_murale 6591 PLC_T27 **** **** **** **** 15 etc.

201: c la ligne suivant 200
Lanterne_murale : c'est le nom de notre objet
6591: correspond dans le toolset à miscellaneous (divers)
PLC_T27 : est le nom de save de notre objet
Puis on sauvegarde (en gardant le nom placeable.2da)


Sixième étape

On réouvre (troisième fois) le viewer de zoligato File /NWN packer/ puis ouvrez le dossier _le nom de votre hack _.hak.

Et a droite, on ouvre notre dossier Mobilier.(vous devez y voir votre plc_t27 et votre dossier placeable.2da.

A gauche dans votre hak , faite glisser de droite à gauche votre plc_t27 et votre dossier placeable.2da.

Sauvegardez sous le nom de votre hak (ainsi que sous celui qui est dans le dossier du jeu Neverwinter nights, le hak appelé par le jeu quoi ....) .


Septième et dernière étape

Ouvrez votre toolset , validez votre hak : edit/module properties/advanced/hak/mobilier (n'oubliez pas de le revalider a chaque nouvel objet ou changement du dossier placeables.2da).

Ensuite une fois celui ci chargé , allez sur votre module, icone placeable/custom.

Faites new , choisissez miscellaneous , tapez le nom de votre objet (ici Lanterne Murale ) et cochez "launch properties dialog".

Dans appareance type cherchez les lignes "placeable objet" et voyez votre lanterne apparaître.
Posez la sur un mur , mettez y une flamme ou non et voila le tour est joué

Faites de même pour les autres objets des autres tilesets et vous aurez ainsi pleins de nouveaux objets. Pensez bien à chaque fois à sélectionner tous les objets violets qui compose le placeable , parfois un seul , parfois plusieurs .


Problèmes
Quand vous importez un hak de ces placeables et que vous avez deja un de ces hak dans votre dossier , pensez à renommer tous les nouveaux placeables et leurs lignes dans le dossier placeable.2da , sinon vous risquez d'écraser ceux qui sont déjà en place !!!!!

Parfois problème de positionnement des placeables quand ils sont composés de plusieurs éléments (faut jouer avec les numéros de position)


Demande
si quelqu'un saurait programmer toute cette manip afin d'en obtenir un petit programme simple avec juste des clics par ci par la , ben bravo

Mais dans l'immédiat un prog qui permettrait de placer automatiquement le nouveaux placeable a la suite des autres dans le dossier placeables (ligne du nouvel objet = ligne du dernier de la liste+1, et nom de save plc_t(nom du dernier plc+1) etc., ça serait bien pratique aussi , voila


Bon courage a tous et n'hésitez pas à demander si vous avez un souci...


__________________
Skanzo et Tyriael