Le HakPak

Répondre
Partager Rechercher
Le HAKPAK
[attention, ce fichier n'est la que pour expliquer GROSSIEREMENT ce qui se passe, pour aider a visualiser, et comprendre ce qui est en jeu. Puristes, passez votre chemin, le reste de ce texte est une heresie]

Le hakpak : definition

NeverWinter Nights est un jeu de rôle prévu pour pouvoir être joué de la même façon qu'un JdR sur table. C'est sa fonction première. Il est donc prévu qu'un maitre du jeu puisse créer comme bon lui semble ses aventures pour ses joueurs, et ce, a partir du ToolSet Aurora livré avec.

Mais parfois, un maitre du jeu va vouloir ajouter des monstres qui ne sont pas dans le mode solo de NeverWinter, ou bien ajouter des sorts. Ca peut aussi permettre de modifier les musique, puisse que la musique d'ambiance et toujours essentielle dans un JdR. Cela peut permettre aussi de rajouter des nouveaux visages, pour singulariser des PnJ importants, ou pour les joueurs, tout simplement. Enfin, ca peut servir a creer de nombreux items, (equipement, ou arme).

En bref, cela va permettre de rajouter du "materiel" pour le toolSet Aurora afi que chaque Mj puisse personnaliser ses parties comme pour chaque partie JdR papier qu'il a l'habitude de faire.

A noter que le hakpak n'est en gros qu'une facon de compresser ce que l'on va rajouter, un peu comme un .zip, mais utilisable seulement pour le jeu.


Créer un HakPak

Je ne rentrerait pas trop dans le detail, vu que comme je le precisait, c'est un peu comme de faire une compression de fichier.
L'outil pour créer un hakpak se trouve dans le dossier utils de NeverWinterNights. Cet outil suffit amplement pour créer la plupart des hakpak.
Au dessus de 9000 fichier, toutefois, on remarque que l'application declare avoir fini son travail alors que des processus tournent encore qui l'emploie : en effet, le NWHak retourne parfois sans avoir completement fini, ce qui fait que si vous fermez, vous interrompez la sauvegarde en cours, et donc corrompez le hakpak.

Encore une fois, c'est assez rare, et ne se produit que sur des hakpak tres consequent, mais il faut le savoir, c'est pourquoi on utilise souvent le NwNPacker.

Le principe est assez simple : vous selectionnez les fichier que vous voulez ajouter, et vous les integrez dans le hakpak. Puis vous sauvegardez.
Et voila...

Comment fonctionne un HakPak
Afin de bien utiliser le hakpak, il est necessaire de comprendre comme cela marche, dans la theorie (rien de technique ici)

On va donc regarder comment fonctionne les modification dans NwN, puis l'incidence entre le dossier override et les Hakpak.

Modifier l'existant dans NwN


En fait, dans NeverWinter, il est possible d'ajouter ou de modifier des fichier du jeu, et ce, a loisir.

Imaginons que, doués pour la 3D, et fatigué de voir les orcs avec les dents pointues et le look un peu "propret" de NwN, vous souhaitiez changer leur apparence.

Pour modifier un fichier existant, il suffit de connaitre son nom, puis de l'extraire avec le nwexplorer.
Une fois extrait, il va falloir le modifier avec les logiciels tiers idoines (photoshop / 3DSMax et autres).

Comment integrer ses modification dans le jeu ?

Il suffit simplement de placer le fichier dans le dossier override de votre NwN pour que la modification soit prise en compte. Essayez, par exemple, de mettre votre orc fait main dans le dossier override, puis lancer le toolset, et confirmer que maintenant, l'orc de base de NwN possede le nouveau visage que vous lui avez donné.
Pourquoi cela ? En fait, quand le jeu se lance, il charge en memoire toute ses tables de reference, puis il charge les apparence qui sont dans le .bif (le fichier de source), puis enfin, il charge l'override.
Comme dans l'override, il existe un fichier avec le même nom que quelque chose de deja chargé en memoire, il effectue un remplacement de ce dernier, plutot qu'un ajout. En gros, le dossier override va agir comme un calque appliqué sur les données du fichier source,
et ce qui existe deja sera donc remplacé par ce qui est dans le override.

Citation :
Mais la, un joueur ne voit pas la nouvelle forme, alors ?
Oui. il va falloir lui donner aussi le nouevau modele, pour qu'il le mette aussi dans son dossier override a lui.

Citation :
D'accord, mais bon, du coup, tous mes orcs maintenant subissent la modification de nez que j'ai fait en premiere partie ?
Oui. Même dans les scenario Bioware et tout. Pour le jeu, votre nouveau modele EST le modèle pour les orcs.

Citation :
Oui, mais pourquoi je ne peut pas creer directement un nouveau monstre en le placeant dans le dossier override, alors ?
Tout simplement car j'ai simplifié un peu le deroulement du chargement.
En fait, c'est plus proche de quelque chose comme ca :

Le jeu se lance, il fait le tour des fichier de reference, et charge en memoire se qui se trouve dans le fichier Source, sauf si une reference correspond dans le dossier override, dans ces cas la, il prendra ce dernier.

Citation :
Oulha ! Pis, c'est quoi, ces references ?
Alors, en fait, reprenons l'exemple de notre création d'Orc custom.

il existe un fichier qui repertorie toutes les apparences des monstres possibles. Pour simplifier, je vais vous montrer juste deux ou trois colones de ce fichier, mais il en possède plus.

Imaginons, donc, pour l'exemple, un fichier avec juste les ligne qui nous interesse :
Code:
ApparenceID 	Label 		ApparenceModel
53		Orc		nw_orc_de_bioware.mdl
En jeu, votre tribue orc, en fait n'est qu'une suite d' "objet", chacun comprenant des infos dont l'info "Que Dois-je Afficher Chez le Client".
Cette info est un chiffre qui fais reference au fichier dont nous parlions avant.
Donc, pour chaque orc en jeu, on a une reference chiffrée qui dit : si le joueur voit un orc, utilise le modele 3D N°53.

Le jeu chez le client va aller voir dans le fichier de reference ce qui correspond a 53, et l'afficher.

Ici, donc, le jeu va afficher le fichier "nw_orc_de_bioware.mdl" comme model 3D pour les orcs. (le label ne sert qu'a lire la table, il n'est pas utilisé en jeu dans notre exemple, ni en general, d'ailleurs).

Or, en mettant un fichier "nw_orc_de_bioware.mdl" different dans le dossier Override, vous indiquez au moteur du jeu qu'il doit afficher le votre a la place de celui present dans les fichier source de NwN.
Le moteur ne se trompe pas : il va voir dans le fichier de reference, regarde ce qu'il doit afficher, puis va chercher dans override s'il existe une reference idone, et sinon, il va chercher dans les sources.
C'est donc bien le votre qui s'affiche.

Dans le cas ou vous ajoutez juste un nouveau modele 3D dans le dossier override, vous n'avez pas acces a la forme crée car il n'existe pas de reference dans le fichier de reference des monstres qui pointe vers votre nouveaute.
Pour ajouter un nouveau monstre, il va donc falloir creer une nouvelle apparence, et la referencer (ca tombe bien, on a deja fais le monstre, y'a plus qu'a referencer )

Comme pour la modification, on va aller chercher dans les sources les fichier de references utilisés, puis les exporter pour les modifier, et enfin les mettre dans le Override.

On va donc avoir, dans le dossier override, 2 fichier : le modele 3D "orc_custom_a_moi.mdl" et le fichier de reference (qui s'apelle "apparence.2da")

on va modifier le fichier "apparence.2da" pour y integrer les valeurs qui nous interesse : une nouvelle reference unique qui pointe vers notre nouveau modele 3D
Code:
ApparenceID 	Label 		ApparenceModel
...		...		...
53		Orc		nw_orc_de_bioware.mdl
54		Orc_A_nez_plat	orc_custom_a_moi.mdl
On relance le jeu, et la, ô joie, le nouveau modele d'Orc est disponible, en plus de l'ancien

Dans tous les cas, et pour tout, il conviendra donc de verifier s'il existe un fichier de reference (terminaison .2da) qui corresponde a ce que l'on veut modifier, et le modifier aussi.

Citation :
Et le hakpak, la dedans ?
Et bien justement, c'est la que ca devient beau : le hakpak, c'est une espece de super Override pour un module donné.

Repennons le deroulement de l'affichage de votre nouveau modele d'orc, que vous avez mis dans un hakpak :

Le jeu indique au client qu'il doit afficher la forme N°53.
Le client regarde dans le hakpak s'il possede un fichier de reference "apparence.2da"
- Soit il y en a un, et dans ce cas, le client va afficher le modele 3D identifié en 53e
- Soit il n'y en a pas, et le moteur va chercher dans le repertoire override :
*Il existe un fichier de reference dans le dossier override : il selectione le modèle 3D qui s'y trouve.
*Ou bien il n'y a pas de fichier de reference, et il va pointer dans les sources.

Une fois la reference du modele 3D à afficher selectionnée, il va se passer la même chose :
- Soit il y a un "nw_orc_de_bioware.mdl" dans le hakpak du jeu, et il affiche celui la
- Soit il n'y en a pas, et donc il va afficher
*le modele present dans le dossier override s'il existe
*ou bien le modele present dans les sources.

Voila qui, j'espere clarifie un peu le fonctionnement du hakpak (encore une fois, c'est grossier, et surtout pour avoir une idée du "comment", ce qui va permettre de passer a la suite...)

Fusionner 2 hakpak

Une question qui reviens plus souvent, est d'apprendre a fusionner hakpak.

C'est une opération assez facile, mais les explications données sont souvent plus dure a comprendre qu'a appliquer.

Autre chose, je conseille à tous de lire la partie sur le fonctionnement du hakpak pour comprendre ce que l'on va faire.

Citation :
Quand je met 2 hakpak a mon module, je ne vois qu'un seul des deux.
Oui, et c'est normal : en fait, c'est a cause des fichier de reference. Pour imager un peu, en gros, imaginez que vous preniez le contenu du hakpak
et que vous le mettiez dans un dossier. Puis vous ouvrez le deuxieme, et vous le videz dans le même dossier : S'il existe des fichier commun, votre OS va vous indiquer
qu'il y a un doublon, et va vous demander de choisir, car il ne peut pas gerer 2 information identique et differentes en même temps.
Vous allez donc choisir un des deux fichier en doublon, et vous allez ecraser le moins prioritaire avec celui qui l'es plus.

Dans le cas de multiple hakpak, c'est pareil.

Imaginons que je veuille ajouter un Elephant Rose et une Tortue Pirate(et sa jambe de bois) dans mon module.. Chacun se trouve dans un hakpak que j'ai telechargé

Voici donc le hakpak 1 :
- Un modele 3D "elephant_rose.mdl" et un fichier de reference "apparence.2da" comme suit :
Code:
ApparenceID 	Label 		ApparenceModel
...		...		...
751		ElpehRose	elephant_rose.mdl
- Un modele 3D "tortue_pirate.mdl" et un fichier de reference "apparence.2da" comme suit :
Code:
ApparenceID 	Label 		ApparenceModel
...		...		...
751		Turtle		tortue_pirate.mdl
On voit bien que les 2 fichier "apparence.2da" sont differents, mais ils portent le même nom (c'est obligatoire, pour les fichier de reference).

Le jeu fais donc un choix entre les deux, par ordre de priorité (que vous pouvez choisir dans les propriete du module)

Il va donc falloir improviser un peu, afin d'avoir un resultat satifaisant.

le mieux, c'est d'exporter le contenu du Hakpak1 et du hakpak2 dans un dossier, et de regarder la ou ca doublonne, puis de dedoublonner.

ici, par exemple, le fichier de reference ne va pas passer. il va donc falloir creer un fichier de reference unique avec les 2. pour cela, on va regarder ce qui differe dans le apparence.2da du hakpak1 pour le rajouter dans le apparence.2da du hakpak2.

Quelque chose comme ca :
(copier / coller des lignes differentes)
Code:
ApparenceID 	Label 		ApparenceModel
...		...		...
751		ElpehRose	elephant_rose.mdl
751		Turtle		tortue_pirate.mdl

Une dernier chose a faire, bien evidemment, c'est de dedoublonner les colonnes identique, pour être bien tranquile.

Ca nous donne ceci :

Code PHP:

ApparenceID     Label         ApparenceModel
...        ...            ...
751        ElpehRose        elephant_rose.mdl
752        Turtle        tortue_pirate
.mdl 
On va donc creer un hakpak N°3 avec :

- Le nouvel "apparence.2da" fraichement crée, qui va posseder les 2 references ajoutées, et donc pouvoir tout gerer.
- le modèle 3D "elephant_rose.mdl"
- le modèle 3D "tortue_pirate.mdl"

On sauvegarde ce 3e hakpak, on le met a la place des 2 autres dans les propriete du module, on sauve, on re-ouvre le toolset, et la :

Oui, tout est bien la

C'est donc assez difficile pour un neophite, mais le principe est simple. Le plus dur etant de savoir si l'on a bien modifié les references en plus de fichier que l'on rajoute.
Re: Le HakPak
Citation :
Provient du message de eMRaistlin
Le HAKPAK

Code PHP:

ApparenceID     Label         ApparenceModel
...        ...            ...
751        ElpehRose        elephant_rose.mdl
751        Turtle        tortue_pirate
.mdl 
juste une petite question pour ce passage : on peut laisser les deux "751" ou il faut mettre 752 à un des deux?

sinon merci, je comprend un peu mieux ^^
Il vaut mieux mettre 751/752. J'ai corrigé. Merci

(pour info, ca ne joue pas vraiment pour le jeu, qui va lui même re-indexer les lignes, mais c'est plus propre et ca facilite la lecture... ^^)
Citation :
Fusionner 2 hakpak
*petite voix*

Et comment on fait pour extraire ce qui nous intéresse d'un hak pack (des textures, dans mon cas) avant de le fusionner avec le hak pack de son serveur ?

C'est pour diminuer le poids du hak, et donc du temps de téléchargement nécessaire pour un joueur.

Merci pour toutes ces précisions
Tu ouvre le hakpak avec le nwnpacker (ou le nwhak, au choix), puis tu selectionne ce qu'il y a dedans qui t'interesse, puis tu choisi "Exporter".

Ca va sortir les fichier interessant du hakpak.

Un conseil : quand un fichier 2da est dans un hakpak, exportez le toujours , et n'oubliez pas de couper/coller la ligne dans votre 2da a vous.
Une "petite" question... ou est ce que je trouve les fichiers itp originaux.

Je voudrais créer mon propre hak pak de tilesets... en ajoutant quelques tiles sur une palette connue.

Dommage qu'on ne puisse pas utiliser la fonction rechercher pour des mots de 3 caracteres ;(
__________________
Mandragore.
Rosk du Kheysa Meatus.
En utilisant NwNExplorer, tu trouveras les ITP dans templates.bif
Pour les TileSet, il y a deux itp.
ttfpal.itp et ttfpalstd.itp par exemple.

Dans le xxxpalstd.itp tu trouves la déclaration des catégories Eléments, Groupes et Terrain <== C'est ici que tu peux ajouter des entrées dans les différentes catégories pour faire des sous-menu dans le cas de nombreux ajouts.
Dans le xxxpal.ipt tu trouves la déclaration des éléments de TileSet. <== c'est ici que tu ajoutes les nouveaux TileSet en les affectant à une des catégories défini dans xxxpalstd.itp
J'ai essayé d'inclure dans un hak pak un truc bidouillé spécialement pour Oriel.
C'est un placeable d'apparence peinture à accrocher au mur.
Il est en format tga.
J'ai réussi à l'inclure dans mes 2da *fière*
Je l'ai inséré dans mon hak de placeable *fière*
J'ajoute mes haks sur un module test, et la pfffff une "erreur NWtoolset queqchose" *moins fière*
Bon j'ouvre mes placeables personnalisés, je vois le nom de mon placeable quand je fais défiler mes apparences *saute de joie*
Je le sélectionne et la...il n'a pas d'apparence *pleure*

Qu'est ce que j'ai pu faire a ce fichu grmlll pour que ça ne marche pas ?

Merci par avance pour vos réponses éclairantes
Tu as essayé de le tourner ?

Quand j'ai débuté, j'avais l'impression que les tableaux que je rajoutais dans mes haks n'avaient aucune apparence... Pis en les faisant pivoter paf, en fait on les voyait. Sinon, je sais pas.

PS : Ca fait plaisir à voir tant d'entrain
Quand tu dis "il est au format TGA", cela implique que tu n'as qu'un seul fichier dont l'extension est .tga ? Tu n'as pas de fichier .mdl (modèle 3d) ? Si c'est le cas, il te manque ce fichier qui correspond au modèle en 3d de ton tableau, le fichier .tga n'étant que la texture que tu appliques sur ce modèle. Concernant le fichier placeable.2da, il faut indiquer le nom de ton fichier .mdl dedans et non celui de ton fichier .tga.

En espérant que cela puisse t'aider.
Je l'ai tourné et retourné dans tous les sens et pas de modèle...*repleure*

Ah mais non je n'ai pas de fichier .mdl ! Je me disais que c'était bizarre que le mien en ait pas !

Comment je peux créer un fichier .mdl à partir d'un tga ?
Est-ce possible ? *quiche*

Est ce que je peux prendre un .mdl existant et coller ma texture tga dessus ?


Merci pour vos réponses "illuminantes" et votre aide Cristias et Biboule !
C'est dur la vie quand on est face à un hakpack avec un caractère de cochon !
Alors j'ai une question...
Si je veux ajouter un hak (celui des chevaux montables en l'occurrence) aux haks que j'utilise pour mon module ...
Je dois exporter toutes les lignes de ce hak et les coller dans un des miens ?
Si oui, est ce que je dois mettre les créatures du hak des chevaux dans mon hak créatures, les placeables, dans mon hak placeables etc....?

Merci de bien vouloir m'aider et par la même de réduire ma consommation d'aspirine !
Bonjour a tous

Excusez si la question a deja ete posée...
J'aimerai savoir comment on fait si j'ai envie de virer un hakpak qui ne me plait plus. Il suffit simplement d'effacer les fichiers qui sont ds le dossier Override?

Merci
Un hakpack qui ne te plait plus se supprime dans le dossier hak (et non dans le dossier override). Attention aux éventuels soucis sur le module où tu l'utilisais.
Bon voila, je suis débutant et, pour le module que je tente de faire, j'ai téléchargé un hak pak (une belle table) pour voir comment ca fonctionne. Et le probléme c'est que j'ajoute le fichier .hak dans le dossier hak mais je ne trouve pas l'apparence dans le jeu... Ca fait plusieurs fois que je fouille tout mais je ne trouve rien, ou plutôt, ne comprend rien.
Bon et bien si quelqu'un peut m'expliquer comment avoir l'apparence de la table que j'ai téléchargé je lui en serai reconnaissant.

Merci d'avance

MiyuSephyroth
La démarche est simple :
- tu ouvres ton module.
- tu fais ds le menu supérieur "Editer"/"Propriétés du Module"
- tu vas dans l'onglet "Contenu Personnalisé"
- tu choisis ton hakpack dans le menu déroulant et tu cliques sur "Ajouter"
- tu cliques sur "OK" et le tour est joué.
Il ne te reste plus qu'à créer une table avec cette apparence. Pour cela, dans ta palette de plaçables, tu édites une "Table" et tu parcours ensuite le menu déroulant "Type d'apparence" jusqu'à trouver la table qui t'intéresse .
Tu veut pas venir ché moi me l'installer ?
Ca serait cool !
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés