Tutoriel de fabrication de vaisseaux pour Freelancer 1.0

Transcription

Tutoriel de fabrication de vaisseaux pour Freelancer 1.0
Tutoriel de fabrication de vaisseaux pour
Freelancer 1.0
Par Prospero.
I/ Introduction et présentation.
Tout d'abord, salut à vous qui comme moi êtes surement un grand fan de Freelancer au point de ne pas
pouvoir vous en séparer, et de ne plus jamais le désinstaller de votre ordinateur. Le tutoriel que vous allez
suivre sera relativement basique, mais certains passages que je trouverai très important seront plus
détaillés que d'autres. En fait, certains passages de ce tutoriel ne sont pas très compliqués, c'est pourquoi
nous n'aurons pas la peine de nous attarder dessus.
Je tiens tout de même à vous prévenir que ce sera long, et que j’ai moi-même passé beaucoup de temps
lors de mes premières créations à appliquer le tutoriel que j’avais sous les yeux.
Veuillez m'excuser aussi pour les possibles fautes d'orthographes qui je l'espère seront en nombre
réduits.
Je tiens aussi à parler un peu de mon expérience, et de moi même - j'essayerai de ne pas trop m'attarder,
promis - par pur plaisir de pouvoir communiquer cette passion qui m'anime à d'autres gens - vous en
l'occurrence - qui ont comme moi cette passion.
Après un an de jeu sur ce magnifique software qu'est Freelancer, j'ai finalement finis par apprendre que
l'on pouvait tout - ou presque - modifier de ce jeu. Sans attendre, je me suis empressé de rechercher des
manières de pouvoir incorporer dans ce jeu des vaisseaux, ce qui était pour moi, un ultime but si je puis
dire, et qui à présent est acquis, mais toujours d'actualité en visant toujours plus loin.
Ayant finalement trouvé ce que je cherchais, je fusse légèrement déçu lorsque je découvris que le tutoriel
était en anglais. Ca ne m’a pas freiné pour autant car je possédais tout de même un bon niveau d'anglais,
alors ce ne fût pas un problème pour moi. Je ne vous cacherai pas que j'ai dû subir un premier échec, à
cause de la non-compréhension de certains détails et certaines fonctionnalités des fichiers qui
paramètrent le jeu.
Un an plus tard, je décidais de m'y remettre fermement, et cela a finit par payer, au bout du compte. Une
petite création qui me tenait à cœur finit par voir le jour, et mon bonheur éclata.
Sachant que la communauté francophone de modding étant moindre vis-à-vis de celle des anglais,
américains et autres allemands, elle est quand même bien là et je sais que beaucoup de personnes
seraient vite dégouté en voyant un tutoriel très important à leurs yeux en anglais (ou une autre langue).
Voila pourquoi je rédige ce tutoriel, car je pense que nous en avons tous besoin, et que nous devons
tenter tant bien que mal de perpétuer un certain savoir, et même si Freelancer deviendra tôt ou tard, un
superbe abandonware joué par un millier de joueur dans le monde, je suis néanmoins persuadé que je
n'aurai pas fais cela en vain - oui je sais, ça fait complètement discours patriotique à l'attention du bon
petit freelancer, prêt à s'engager dans la LSF, mais j'ai ça sur le cœur :') .
Sans plus attendre, et sans transition, je vous propose de commencer à prendre connaissance des
ressources requises pour ce tutoriel.
II/ Liste des programmes à posséder pour ce tutoriel.
En premier lieu, il vous faudra un programme de modélisation 3D. Personnellement, j'utilise uniquement
MilkShape 3D, programme simple, mais qui permet d'effectuer bon nombre de choses. Je vous donnerai
quelques infos nécessaires concernant ce programme et la 3D, mais je n'irai pas jusqu'à en faire un
tutoriel à part entière.
Vous pourrez trouver Milkshape 3D gratuitement mais vous proposant une période d'essai de 30 jours, ce
qui est largement suffisant pour apprendre à utiliser les outils basiques et faire au moins deux vaisseaux
(avec une utilisation fréquent et régulière).
Secondement, Il vous faudra un programme de dessin pouvant enregistrer des images en Targa (fichier
image d'extension .tga). Pour ma part, j'utilise Photoshop CS 2, mais PaintShop pro le fait aussi il me
semble (attention, je ne parle pas de Paint, l'accessoire de Windows).
Par la suite, vous devrez obtenir deux choses très importantes: les exporteurs pour fichiers CMP
(structure) et MAT (textures) pour le jeu. Ce sont deux fichiers DLL à extraire dans le dossier de votre
programme de modélisation qui vous permettrons de convertir votre travail 3D en CMP et MAT. Vous
pourrez de même utiliser un exporteur de fichier *.SUR qui est le fichier qui gère les impacts sur votre
vaisseau. Celui-ci n’est pas nécessaire pour faire fonctionner le vaisseau, mais obligatoire si vous désirez
jouer correctement avec vos créations.
En suivant, puisque nous allons devoir modifier des fichiers *.INI du jeu initial, je vous conseille de vous
munir de Freelancer SDK (1.3). C'est une archive comportant tous les fichiers initiaux se trouvant dans le
dossier "DATA" de votre jeu. Si vous oubliez de faire un backup des ini qui vont nous servir, vous pourrez
les remplacer par celles de SDK. Pour modifier ces fichiers, vous devrez avoir un éditeur de fichiers BINI.
J'utilise BiniQDU, simple est très bien fait.
Et pour finir, Fled-ids qui vous servira à éditer vos fichiers DLL. Pour ce passage, je détaillerai le
maximum possible car cette partie me parait être la plus délicate, même si elle est, dans le fond, très
simple.
Je pense qu'il est inutile de le préciser, mais il vous faudra bien entendu Freelancer Mod Manager et notre
jeu préféré: Freelancer.
Une fois ces programmes téléchargés, nous sommes prêts à travailler.
Voici un lien qui pourra vous être utile et sur lequel vous pourrez trouver les exporteurs, le SDK, Fled-IDs,
et Bini QDU : http://frm222.free.fr/Freelancer
Sur ce même lien, je vous recommande de vous munir du « Freelancer.misc.database.xls », qui est un
fichier Excel listant en majeur partie des biens relatifs aux vaisseaux et leurs homonymes en langage bini.
Cela vous permettra de vous retrouver dans certains détails, et vous aidera sûrement si vous voulez
décortiquer le jeu.
Vous pourrez aussi vous procurer un tutoriel de réalisation d’une icône pour votre vaisseau visible chez le
marchand de vaisseau (tutoriel en anglais, l’auteur utilise Photoshop 7) à cette adresse :
http://elo.eko.free.fr/Ship_Icon_Tutoriel.pdf (n’est pas nécessaire pour faire fonctionner un vaisseau).
III/ Prêt à modéliser ? À l'abordage ...
Bien, nous allons donc commencer à modéliser.
Ouvrez votre MilkShape 3D.
Pour que nous nous comprenions bien, je vous demanderai la chose suivante: réglez votre vue du haut
droit sur "left", haut gauche sur "front", bas gauche sur "top" et bas droite "3d" (pour cela cliquez droit sur
la vue intéressée et allez sur le petit menu "projection").
Pensez à sauvegarder régulièrement votre travail.
Si vous commencez la modélisation, vous n’y penserez pas forcement, mais ca viendra très vite, à force
de crash incongrus, autres plantage en tout genre, ou de panne de courant, croyez moi, vous en aurez
marre, et vous vous ne vous ferrez plus prier pour enregistrer.
Vous remarquerez aussi trois petits traits de couleurs: jaune pour l'axe X, bleu pour l'axe Y et violet pour
l'axe Z.
Je ne m’attarderai pas sur la création d'un vaisseau (car c'est vous qui allez le faire, je ne tiens en aucun
cas à vous influencer), je vous aiderez seulement à comprendre un peu le fonctionnement de MilkShape
et ses outils.
Bien, vous remarquerez qu'à la droite (ou à gauche) de votre programme se trouve une colonne
comportant 4 onglets avec dans chacun de ces onglets, des outils. J'appellerai ces onglets "onglets
généraux" pour un meilleur repérage. Allez dans l'onglet général "Model" puis cliquez sur "Box" pour créer
une boîte. Cliquez sur n’importe quelle vue 2d et maintenez votre clic pour créer votre volume...
Magnifique, voila un cube parfait :) . Par soucis de simplicité et d'aide à cette « perfection », je vous
recommande de cocher la case "snap to grid", qui magnétisera vos brushs sur la grille de dessin.
Bien, un outil qui vous sera forcement utile sera celui de l'extrusion, il vous servira à embellir vos
volumes. Son utilisation reste relativement simple, et se fait en deux étapes.
Une fois votre boîte construite, cliquez sur l'outil "select" et dans les options apparaissant en dessous
cliquez sur "Face" (vous l'aurez compris, vous allez sélectionner une face).
/!\ Important /!\
En 3D, il faut savoir une chose très importante. Une face, fait partie d'un coté, et un coté peut être une
face ou un ensemble de faces. Vous allez vous l'expliquer: cliquez donc sur votre outil de sélection des
faces et cliquez une fois n’ importe où sur votre cube. Vous remarquerez que vous avez surement
sélectionné un triangle, ou plusieurs. Ce(s) triangle(s) est (sont) votre (vos) face(s).
De plus, vous avez dans la fonction « select », une option « vertex ». Il s’agit de sélectionner les vertices.
Les vertices sont les espèces de « poignées » qui caractérisent les sommets de vos volumes. Ils vous
permettront de créer des volumes qui sortent de l’ordinaire et en cumulant ces effets sur plusieurs
volumes, vous vous en sortirez avec des effets vraiment chiadés.
Revenons donc à notre cube.
Pour utiliser l'outil extrusion, vous n'allez pas sélectionner une face, mais plutôt un côté (sinon ce sera
vraiment moche). Vous allez devoir faire un rectangle de sélection pour sélectionner le côté qui vous
intéresse. Vous remarquerez qu'en plus de votre côté, vous avez sélectionné d'autre faces. Maintenez
votre bouton shift enfoncé et faites un rectangle de sélection sur ces faces inintéressantes mais avec le
bouton droit de votre souris cette fois. Ceci va désélectionner les faces inintéressantes.
Astuce : utilisez les différentes vues pour vous simplifier la tâche de désélection.
Vous remarquerez la particularité du désélectionnement qui est un peu spécial, vous devrez y aller à
tâtons pour comprendre comment il fonctionne. Pour ma part, ce que j'en ai compris, c'est qu'il faut,
lorsque l'on veut désélectionner une face, aller encadrer une arrête, ou parfois deux arrêtes.
Rentrez les données qui vous intéressent pour faire votre extrusion dans les indicateurs X Y et Z, puis
cliquez sur "extrude".
Personnellement, j'utilise cet outil pour creuser mes formes et faire des trous dans le genre d'entrée
d'aération: extrudez une première fois, à l'intérieur ou à l'extérieur, peu importe, puis faites revenir la face
extrudée à sa position initiale grâce à l'outil "move", et non "extrude" cette fois ci. Ensuite, sans
désélectionner, utiliser l'outil "Scale" (échelle) pour diminuer la taille de l'élément sélectionné selon les
axes (il s’agit toujours des axes X Y et Z), sachant que 1 est une valeur nulle, qui ne fera rien changer à
votre élément (il s'agit de l'échelle 1:1).
L'outil Scale changera la taille de votre groupe sélectionné (groupe: volume(s) entier(s) ) ou de vos
vertices (au moins 2 vertices sont à sélectionner pour utiliser l'outil "Scale" sur des vertices) ou encore,
une/des face(s). Gardez la valeur à 1 si vous ne voulez rien changer sur l'axe en question.
Sachant ces quelques points, vous serez dans la possibilité de vous servir de Milkshape 3D pour réaliser
des travaux simples, mais forcément, pas très embellis au début (ce qui est parfaitement normal, pour ma
part, c'était assez ... horrible). C'est en pratiquant régulièrement que vous pourrez petit à petit vous
familiariser avec le programme, et que vous pourrez créer des choses bien plus intéressante, pour cela, je
vous donne quelques petits conseils: multipliez les volumes, les enchevêtrements, les extrusions, alliez
des volumes cylindriques à des volumes rectangulaires, étirez les vertices etc ... Et vous vous en sortirez
avec des réalisations plutôt sympathiques au niveau des structures. Le rendu final doit aussi beaucoup
aux textures.
IV/ Finition de la modélisation. Les Hard Points et les
textures.
1/Hard Points.
Une fois votre vaisseaux fini, il vous faut placer les Hard Points, les slots d'armes, de bouclier, de
lumières, etc ...
Pour cela, vous allez devoir sélectionner une face puis la diviser pour arriver au final à avoir une surface
assez réduite pour être suffisamment précise. Pour cela, sélectionnez la face concernée et allez dans le
menu "Face" et cliquez sur "Subdivide 4". Faites le suffisamment de fois pour avoir assez de précision
(Ctrl + 4 revient à diviser par 4, ctrl + 3 par 3). En divisant par 4 vous aurez une face issue de la division
au milieu de votre face d’origine.
Une fois la précision acquise, désélectionnez les faces inintéressantes, puis dupliquez celle qui vous
intéresse (Ctrl + D). Allez maintenant dans l'onglet général "Groups" du menu de droite. Là vous aurez les
duplications qui sont répertoriées dans l'ordre chronologique dans le petit module de texte.
Bien, voici la liste des Hard Points que vous devrez appliquer (si bien sur vous les voulez, à moins de faire
autre chose qu'un vaisseau). Pour les appliquer, sélectionnez dans votre menu-onglet "groups" la face qui
a été dupliquée, puis renommée la avec le nom du Hard Point qui vous intéresse. Faites tout de même
attention à bien respecter la casse (minuscules et majuscules), je n'ai pas essayé en écrivant seulement
avec des minuscules, donc c'est à vous de voir:
Voici pour les points fixes, c'est à dire qu'ils ne bougeront pas (aucune rotation autorisée en jeu):
-
Hp|Fixed|HpEngine01
Hp|Fixed|HpEngine02...
Vos moteurs. Si vous désirez appliquer plus de 9 moteurs, à partir du dixième, le nom change un peu:
Hp|Fixed|HpEngine010, ...Engine011, ...
Hp|Fixed|HpThruster01
Est la Postcombustion - deux modules de postcombustion montés vous feront aller deux fois plus vite
qu’avec un seul (par experience, je préfère vous prévenir que c’est assez injouable).
Hp|Fixed|HpTractor_Source
Est le rayon tracteur, à placer à l'intérieur du vaisseau sur ce qui semble être votre soute.
Hp|Fixed|HpShield01
Est votre bouclier.
Hp|Fixed|HpMount
Est la face qui touchera le sol lorsque votre vaisseau sera arrimé sur une base ou une planète. Appliquezle un peu en dessous du plus bas niveau de votre vaisseau pour marquer un effet de lévitation.
-
Hp|Fixed|HpConTrail01
Hp|Fixed|HpConTrail02 ...
Les trainées que laisse vos ailes lorsque le vaisseau est en vol
Hp|Fixed|HpCM01
Est la Contre Mesure
Hp|Fixed|HpMine01
Est la mine
-
Hp|Fixed|HpRunningLight01
Hp|Fixed|HpRunningLight02...
Les lumières sur votre vaisseaux, bleues, rouges, jaunes... (La couleur ne se paramètre pas ici).
Hp|Fixed|HpScanner01
Est le scanner, à placer n’ importe où dans le vaisseau
Hp|Fixed|HpHeadLight
Est la lumière blanche à placer à l'avant du vaisseau
OU BIEN
-
Hp|Fixed|HpHeadLight01
Hp|Fixed|HpHeadLight02 ...
Si vous voulez en placer plusieurs
-
Hp|Fixed|HpDockLight01
Hp|Fixed|HpDockLight02 ...
Les lumières rouges qui s'activent en clignotant lors d'un arrimage
Maintenant, voyons ceux qui autorisent le mouvement:
Hp|Revolute|HpTorpedo01
Le slot de l'interrupteur de croisière et/ou de la torpille.
-
Hp|Revolute|HpTurret01
Hp|Revolute|HpTurret02 …
Les tourelles.
-
Hp|Revolute|HpWeapon01
Hp|Revolute|HpWeapon02 …
Les canons.
En ce qui concerne les Hp Revolute qui sont des slots d'armes, leur rotation est paramétrable sous
HardCMP, ce qui veut dire que l'on peut agrandir ou réduire l’angle de rotation qui leur est autorisé. Il en
va de même pour leur orientation. Toutefois si vous désirez faire en sorte que votre arme soit fixe, vous
devrez éditer le slot.
Ceci étant fait, nous allons pouvoir passer aux textures.
/ ! \ Enregistrez votre travail. / ! \
2/ Les textures.
Pour vos textures il vous faut des fichiers image au format .TGA, le Targa.
Pour cela, trouvez vous des images assez jolies, ou bien si vous êtes doués en la matière, faites les vous
même. Personnellement, j'ai utilisé certaines textures de jeux assez jolis.
Une fois travaillées comme vous le souhaitez, enregistrez vos images au format Targa avec le
programme approprié.
Revenez sous Milkshape.
L'application des textures est très simple. Sélectionnez un ou plusieurs groupes voulu(s) (avec l'outil
"select > group"; l'application de textures ne marche uniquement que sur les volumes entiers), puis allez
dans l'onglet général "Materials". Cliquez sur "New", renommez-le, puis cliquez sur le bouton "none" du
haut (il y en a deux) pour sélectionner votre texture. Une fois sélectionnée, cliquez sur "Assign".
Si vous ne voyez pas votre texture appliquée, cliquez droit sur une des vues (3D de préférence, pour
pouvoir avoir un aperçu complet de votre structure), puis en haut du petit menu, cliquez "Textured".
En principe, si tout s'est bien passé, vous devriez voir votre jolie texture :) .
/ ! \ Enregistrez votre travail. / ! \
V/ Exportations
Une fois votre structure finie ainsi que toutes vos textures appliquées, vous allez pouvoir exporter votre
travail en CMP et MAT. Ces deux fichiers sont indispensables pour pouvoir admirer votre création.
Comme précisé au début, il vous manquera le fichier *.SUR qui gère les impacts subit par votre vaisseau,
à moins que vous vous le soyez procuré. Néanmoins, ne l’utilisant pas, je ne saurais vous indiquer la
marche à suivre pour se servir de cet exporteur.
Avant de se lancer dans ce court travail, faites attention à la taille de votre structure. Pour référence, je
peux vous dire que les axes de couleur X, Y et Z que vous voyez sur Milkshape sont sur Freelancer très
petit, pour ne pas dire extrêmement petit.
Si votre structure est quelque peu plus grande que ces axes, grossissez environ 8 fois votre travail avec
l'outil "scale".
Pour essayer de vous aguiller, une vue 2d dézoomée au maximum s'apparente à peu près à la vue
depuis le cockpit d'un vaisseau type "Defender".
Pour vos premiers travaux, vous devrez revenir plusieurs fois sur Milkshape pour ajuster votre structure et
comprendre ce que j'ai écris au dessus.
Bien, premièrement, pour pouvoir exporter, il va vous falloir les fichiers *.dll dont j'ai parlé au début de ce
tutoriel. Vous devrez les déplacer dans le dossier d'installation de Milkshape (Ex: C:\program
files\Milkshape ). Si tout s'est déroulé comme prévu, vous devriez voir dans Milkshape > Fichiers > Export
des exporteurs Freelancer CMP et MAT. Si c'est le cas, nous allons pouvoir continuer. Dans le cas où
vous auriez déplacé les DLLs pendant que votre programme était ouvert, il vous faudra arrêter et
redémarrer le programme pour que vous ayez accès aux exporteurs.
Commençons par le CMP. Certaines versions diffèrent, mais il n'y a vraiment rien de compliqué. Sur tous
les exporteurs que j'ai eus, il m'a fallu retourner toute ma structure de 180° sur l'axe Z (peut aussi se faire
sur l’axe Y). Vous verrez, il y a une option lors de la création de votre CMP.
Cliquez sur l'exporteur. Une petite fenêtre devrait apparaitre vous demandant de créer un nouveau fichier,
ou d'en éditer un. Créez en un nouveau. Donnez lui un nom puis enregistrez le dans un dossier spécifique
que vous pourrez retrouver (les fichiers CMP ne sont pas des fichiers très lourds, aucun risque qu'ils vous
prennent de la place en excès).
En suivant, vous devriez voir apparaitre une autre fenêtre avec des options. Pour ma part, je ne touche
quasiment pas à ces options, mis à part l’orientation à laquelle je choisis upside-down. Remarquez, il ne
tient qu’à vous d’utilisez l’autre, seulement pensez auparavant à retournez votre travail dans le sens que
vous choisirez : si vous choisissez upside down, tournez le de 180° sur l’axe Z pour qu’il ait la tête en bas,
pour que lors de la compilation, il se retrouve dans le bon sens.
En ce qui concerne l’exportation pour le fichier *.MAT, l’affaire est bien plus simple. Si vous avez
appliquez correctement vos textures, aucun message d'erreur ne devrait survenir. Si tel est le cas,
reprenez l'application de vos textures, mais sachez que la manipulation des textures est vraiment très
simple. Il ne faut oublier aucun de vos volumes.
La manipulation de l'exportation étant terminée, nous allons pouvoir passer aux modifications des fichiers
*.INI et *.DLL du jeu.
VI/ Editions des fichiers INI et DLL.
1/ Les INI.
Avant de commencer, vous devez savoir que l'orthographe des noms que vous utiliserez pour tel ou tel
objet devra absolument être respectée, dans le cas contraire, vos fichiers ne retrouveront pas de
similitudes et ne pourront donc pas "raccorder" les données entre les fichiers et donc faire en sorte que
tout marche comme il faut.
Voici comment l'arborescence de votre mod doit être (elle doit être similaire à l'arborescence du jeu):
MonModVaisseau
-DATA (dossier)
-Equipment (dossier)
-Engine_equip.ini (fichier)
-Goods.ini (fichier)
-Misc_equip.ini (fichier)
-Ships (dossier)
-Shiparch.ini (fichier)
-Mesvaisseaux (dossier)
-MonVaisseau1 (dossier)
-Monvaisseau.cmp
-Monvaisseau.mat (ce sont vos deux fichiers que vous devrez rajouter).
-EXE (dossier)
-Nameresources.dll (fichier)
-Infocards.dll (fichier)
-Script.xml (nous verrons par la suite comment le fabriquer, ce n'est pas compliqué du tout mais
dispensable).
Commencez par aller dans vos dossiers DATA et EXE du jeu, et prélevez les fichiers Engine_equip.ini,
Goods.ini, Misc_equip.ini et Shiparch.ini. Copiez/collez les dans la nouvelle arborescence que vous avez
fabriqué au préalable. Lorsque vous enregistrerez les modifications que nous verrons, il faudra que vous
le fassiez directement sur ces fichiers là, et non sur ceux du jeu original.
Dans l’ordre, nous ouvrirons Goods.ini, Engine_equip.ini, Misc_equip.ini et Shiparch.ini.
Je ne parlerai pas de Market_ships.ini, qui sert à indiquer à quelle base/planète votre vaisseau se
trouvera en vente. L'utilisation de FLExplorer est largement suffisante, en revanche, j'indiquerai une petite
spécificité à son propos vers la fin de cette partie.
Lancez BiniQDU.
A/ Goods.ini.
Commençons par Goods.ini. Vous devrez garder ce fichier ouvert jusqu'à la fin de la manipulation.
Pensez à enregistrer régulièrement votre avancement.
Ce fichier se trouve dans ...\Freelancer\DATA\Equipment\Goods.ini .
En ce qui concerne ce fichier, nous aurons besoin de deux paragraphes de paramètres par vaisseau.
Voici à quoi devrait s'apparenter le premier paragraphe. Je vous propose d’utiliser le Defender comment
base d’exemple, que nous utiliserons tout au long de ce tutoriel.
Pour trouver le même paragraphe que le mien, utiliser la fonction recherche de BiniQDU et écrivez
« nickname = le_hull » par exemple.
Utilisez cette technique pour chaque fichier que nous ouvrirons (changez juste le texte que vous voulez
retrouver en fonction du fichier ouvert en vous servant des textes que je cite).
[Good]
nickname = le_hull
category = shiphull
ship = li_elite
price = 10400
ids_name = 12003
item_icon = Equipment\models\commodities\nn_icons \li_elite.3db
Ce paragraphe indiquera au jeu que le vaisseau est créé. Certes, il est créé, mais pas encore identifiable
et identifié. Nous verrons plus loin comment donner au jeu le moyen de l'identifier.
Petite explication: « Good » en anglais signifie « Bien ». Il a deux sens. Le premier, nous l'employons pour
émettre un avis: « c'est bien ». Le deuxième est employé pour parler d'une chose matérielle, un bien :
« un bien de consommation ».
Ainsi, lorsque vous voudrez éditer des informations sur une marchandise, une arme, un vaisseau, vous
verrez cette annotation en intitulé, puisqu'il s'agit de choses matérielles.
Copiez/collez ce paragraphe et remplacez les informations suivantes par celles qui sont à votre
convenance.
- « le_hull » est le nom qui s'apparente uniquement au goods.ini. Il doit bien entendu être toujours
différent des autres noms que l'on pourra trouver dans ce fichier. Nous le retrouverons dans le deuxième
paragraphe de ce fichier. Nous l'appellerons « monvaisseau_hull » (je suivrai cet exemple tout au long
de ce tutoriel, libre à vous d’employer un tout autre nom).
- La « category » restera « shiphull » puisqu'il s'agit ici d'un vaisseau.
- « li_elite » est le nom pur de votre vaisseau. Il doit être le même pour tous les autres fichiers dans
lesquels nous le retrouverons. Si ce n'est pas le cas, le jeu ne retrouvera pas toutes les informations de
votre vaisseau qui sont nécessaires à son bon fonctionnement et vous verrez votre jeu crasher. Nous
l'appellerons « monvaisseau ».
- « Price » est bien évidemment le prix de votre engin, à vous de le changer.
- « ids_name » est une ID qui est paramétrée pour donner au jeu l'information du nom de votre
vaisseau. Nous verrons après comment la paramétrer.
- Je ne m'attarderai pas sur « Item_icon » car il s'agit là d'un autre tutoriel que vous pourrez vous procurer
grâce au lien donné au début de ce tutoriel.
Vous devriez donc vous retrouver avec quelque chose comme ça dans le fichier:
[Good]
nickname = le_hull
category = shiphull
ship = li_elite
price = 10400
ids_name = 12003
item_icon = Equipment\models\commodities\nn_icons \li_elite.3db
[Good]
nickname = monvaisseau_hull
category = shiphull
ship = monvaisseau
price = 10400
ids_name = 12003
item_icon = Equipment\models\commodities\nn_icons \li_elite.3db
/ ! \ Enregistrez votre travail. / ! \
Ne fermez pas ce fichier.
Deuxième paragraphe:
Ce paragraphe là servira a donner certaines informations de votre vaisseau au jeu, comme par exemple
quel type de moteur et de centrale d'énergie lui affilier, et quelles types de lumières lui joindre, et les slots
auxquels elles sont raccordées.
[Good]
nickname = le_package
category = ship
hull = le_hull
addon = ge_le_engine_01, internal, 1
addon = li_elite_power01, internal, 1
addon = ge_s_scanner_01, internal, 1
addon = ge_s_tractor_01, internal, 1
addon = shield01_mark02_hf, HpShield01, 1
addon = LargeWhiteSpecial, HpHeadlight, 1
addon = SlowSmallBlue, HpRunningLight01, 1
addon = SlowSmallBlue, HpRunningLight02, 1
addon = SlowSmallBlue, HpRunningLight03, 1
addon = SlowSmallBlue, HpRunningLight04, 1
addon = contrail01, HpContrail01, 1
addon = contrail01, HpContrail02, 1
addon = DockingLightRedSmall, HpDockLight01, 1
addon = DockingLightRedSmall, HpDockLight02, 1
Re-copiez/collez ce paragraphe en dessous, puis étudions les différentes informations:
- Renommez "le_package" en "monvaisseau_package" pour que vous vous y retrouviez -facilement
dans cette zone.
- Ne touchez pas à la "category" puisque c'est un vaisseau.
- Renommez "le_hull" en "monvaisseau_hull", titre que nous avons donné dans le premier
paragraphe.
- "ge_le_engine_01" indique quel moteur le jeu doit appliquer à votre vaisseau. Sa fabrication est très
simple et se fait dans un autre fichier *.INI. Renommez "ge_le_engine_01" par
"monvaisseau_engine_01".
- "li_elite_power01" indique quelle centrale d'énergie le jeu appliquera à votre engin. Sa
fabrication, elle aussi, est simple, et se fait sur un autre fichier *.INI. Renommez "li_elite_power01"
par "monvaisseau_power01".
- Vous n'aurez pas besoin de changer "ge_s_scanner_01" et "ge_s_tractor_01", à moins que
vous vouliez changer certaines données de ces éléments, mais nous ne verrons pas cet aspect là.
- La ligne suivante signifie que nous avons un bouclier qui sera monté lors de l’achat du vaisseau. Ce
paramètre va de pair avec un autre que nous trouverons dans le Shiparch.ini un peu plus tard.
- Etudions la suite, qui est légèrement un peu plus complexe. Pour les 5 lignes suivantes, vous
remarquerez qu'il s'agit de couleur, et plus précisément de la couleur des lumières. Là où c'est subtil, c'est
que le slot de lumière concerné se trouve à la fin de la ligne de paramètre.
Nous avons donc, en premier, la lumière avant: "HeadLight" qui est caractérisée par
"LargeWhiteSpecial".
En suivant, vous avez les "RunningLight", qui se paramètrent de la même manière, mais ce coup ci, vous
utiliserez plutôt des lumières standards, « SlowSmallBlue ». Sachez que vous pouvez changez la
couleur en remplaçant "Blue" par "Red", "Green", "Yellow", "Orange" et "White" - il me semble que vous
avez aussi "Purple".
- "contrail01" est la trace que laisse votre vaisseau lorsqu'il bouge. Ils se trouvent généralement
derrière les ailes et/ou les ailerons. Laissez "contrail01" pour chaque slot de "HpContrail01",
"HpContrail02" ...
- "DockingLightRedSmall" est la lumière type de séquence d'arrimage à une base/planète. Vous
pouvez bien évidemment changer cette lumière, mais vous perdrez l'intérêt de la signalisation de cette
séquence d'arrimage.
Au final, vous devriez avoir quelque chose qui ressemble à ceci dans le bloc de texte:
[Good]
nickname = le_package
category = ship
hull = le_hull
addon = ge_le_engine_01, internal, 1
addon = li_elite_power01, internal, 1
addon = ge_s_scanner_01, internal, 1
addon = ge_s_tractor_01, internal, 1
addon = shield01_mark02_hf, HpShield01, 1
addon = LargeWhiteSpecial, HpHeadlight, 1
addon = SlowSmallBlue, HpRunningLight01, 1
addon = SlowSmallBlue, HpRunningLight02, 1
addon = SlowSmallBlue, HpRunningLight03, 1
addon = SlowSmallBlue, HpRunningLight04, 1
addon = contrail01, HpContrail01, 1
addon = contrail01, HpContrail02, 1
addon = DockingLightRedSmall, HpDockLight01, 1
addon = DockingLightRedSmall, HpDockLight02, 1
[Good]
nickname = monvaisseau_package
category = ship
hull = monvaisseau_hull
addon = monvaisseau_engine_01, internal, 1
addon = monvaisseau_power01, internal, 1
addon = ge_s_scanner_01, internal, 1
addon = ge_s_tractor_01, internal, 1
addon = shield01_mark02_hf, HpShield01, 1
addon = LargeWhiteSpecial, HpHeadlight, 1
addon = SlowSmallBlue, HpRunningLight01, 1
addon = SlowSmallBlue, HpRunningLight02, 1
addon = SlowSmallBlue, HpRunningLight03, 1
addon = SlowSmallBlue, HpRunningLight04, 1
addon = contrail01, HpContrail01, 1
addon = contrail01, HpContrail02, 1
addon = DockingLightRedSmall, HpDockLight01, 1
addon = DockingLightRedSmall, HpDockLight02, 1
/ ! \ Enregistrez votre travail. / ! \
Voila, il semblerait que nous ayons vu la quasi-totalité du fichier Goods.ini. Laissez-le ouvert sur BiniQDU.
Vous pouvez dès à présent ouvrir les fichiers "engine_equip.ini" et "misc_equip.ini" et nous
commencerons par l'engine_equip.
B/ Engine_equip.ini.
Voila à quoi s'apparente un paragraphe de ce fichier:
[Engine]
nickname = ge_le_engine_01
ids_name = 263688
ids_info = 264688
volume = 0.000000
mass = 10
max_force = 48000
linear_drag = 599
power_usage = 0
reverse_fraction = 0.200000
flame_effect = gf_li_smallengine02_fire
trail_effect = gf_li_smallengine02_trail
cruise_disrupt_effect = gf_li_cruisedisruption
trail_effect_player = gf_li_smallengine02_playtrail
cruise_charge_time = 5
cruise_power_usage = 20
character_start_sound = engine_li_fighter_start
character_loop_sound = engine_li_fighter_loop
character_pitch_range = -50, 25
rumble_sound = rumble_h_fighter
rumble_atten_range = -5, 0
rumble_pitch_range = -25, 25
engine_kill_sound = engine_li_fighter_kill
cruise_start_sound = engine_li_cruise_start
cruise_loop_sound = engine_li_cruise_loop
cruise_stop_sound = engine_li_cruise_stop
cruise_disrupt_sound = cruise_disrupt
cruise_backfire_sound = cruise_backfire
indestructible = false
outside_cone_attenuation = -3
inside_sound_cone = 60
outside_sound_cone = 180
- Nous avons donc en premier lieu "ge_le_engine_01" qui est le nom de votre moteur. Comme nous
l'avons vu précédemment, vous devrez le renommer "monvaisseau_engine_01" pour qu'il soit "raccordé"
à votre engin dans le fichier Goods.ini.
- En suivant, les IDS. Dans le cadre d'une construction d'un mod, je dirai, sommaire, nous n'aurons pas
besoin de toucher à ces nombres, qui n'engrangeront pas de conflit avec le reste des données. Il ne vous
sera demandé de modifier ces chiffres uniquement si vous désirez que votre moteur soit un bien
achetable en jeu, ou en tout les cas, qu'il devienne un objet à part entière.
- "max_force" est la vitesse maximale en vol normal multipliée par 600.
- Et "reverse_fraction" est la vitesse de déplacement en recul.
Petite explication: 80 x 600 = 48000 (pour la vitesse normal de vol) et 80 x 0.2 = 16 (pour la vitesse de
recul en vol)
- Pour finir, "cruise_charge_time" correspond au temps de chargement du moteur de croisière. Le
nombre écrit correspond au temps de chargement en secondes. Mettre la valeur à 5 signifie donc que le
moteur se chargera en 5 secondes. Si vous désirez avoir un moteur de croisière sans temps de
chargement, il vous suffira de mettre la valeur à 0, bien entendu.
Sommairement, vous devriez vous retrouver avec quelque chose dans ce style là:
[Engine]
nickname = ge_le_engine_01
ids_name = 263688
ids_info = 264688
volume = 0.000000
mass = 10
max_force = 48000
linear_drag = 599
power_usage = 0
reverse_fraction = 0.200000
flame_effect = gf_li_smallengine02_fire
trail_effect = gf_li_smallengine02_trail
cruise_disrupt_effect = gf_li_cruisedisruption
trail_effect_player = gf_li_smallengine02_playtrail
cruise_charge_time = 5
cruise_power_usage = 20
character_start_sound = engine_li_fighter_start
character_loop_sound = engine_li_fighter_loop
character_pitch_range = -50, 25
rumble_sound = rumble_h_fighter
rumble_atten_range = -5, 0
rumble_pitch_range = -25, 25
engine_kill_sound = engine_li_fighter_kill
cruise_start_sound = engine_li_cruise_start
cruise_loop_sound = engine_li_cruise_loop
cruise_stop_sound = engine_li_cruise_stop
cruise_disrupt_sound = cruise_disrupt
cruise_backfire_sound = cruise_backfire
indestructible = false
outside_cone_attenuation = -3
inside_sound_cone = 60
outside_sound_cone = 180
[Engine]
nickname = monvaisseau_engine_01
ids_name = 263688
ids_info = 264688
volume = 0.000000
mass = 10
max_force = 48000
linear_drag = 599
power_usage = 0
reverse_fraction = 0.200000
flame_effect = gf_li_smallengine02_fire
trail_effect = gf_li_smallengine02_trail
cruise_disrupt_effect = gf_li_cruisedisruption
trail_effect_player = gf_li_smallengine02_playtrail
cruise_charge_time = 5
cruise_power_usage = 20
character_start_sound = engine_li_fighter_start
character_loop_sound = engine_li_fighter_loop
character_pitch_range = -50, 25
rumble_sound = rumble_h_fighter
rumble_atten_range = -5, 0
rumble_pitch_range = -25, 25
engine_kill_sound = engine_li_fighter_kill
cruise_start_sound = engine_li_cruise_start
cruise_loop_sound = engine_li_cruise_loop
cruise_stop_sound = engine_li_cruise_stop
cruise_disrupt_sound = cruise_disrupt
cruise_backfire_sound = cruise_backfire
indestructible = false
outside_cone_attenuation = -3
inside_sound_cone = 60
outside_sound_cone = 180
Notez que je n'ai changé que le nom du moteur, mais il ne tient qu'à vous de changer les données
restantes.
/ ! \ Enregistrez votre travail. / ! \
Vous pouvez fermer ce fichier.
C/ Misc_equip.ini.
Nous allons voir le paramétrage de la centrale à énergie.
Ouvrez le fichier « Misc_equip.ini » et allez au paragraphe suivant :
[Power]
nickname = li_elite_power01
ids_name = 263721
ids_info = 264721
volume = 0.000000
mass = 10
DA_archetype = equipment\models\hardware\li_fusion_reactor.3db
material_library = equipment\models\hardware.mat
capacity = 1500
charge_rate = 157
thrust_capacity = 1000
thrust_charge_rate = 100
lootable = false
- Nous retrouvons donc le nom de la centrale, à savoir « li_elite_power01 » qu’il faudra renommer
en « monvaisseau_power01 » pour l’accorder, lui aussi, au Goods.ini.
- Toujours dans la même logique de rester simplistes, nous ne toucherons pas aux IDS.
- Passons donc aux choses qui nous importent le plus : la « capacity » est l’énergie totale de votre
centrale. Pour vous donner un ordre d’idée, il s’agit ici d’une centrale d’un Defender. Une centrale avec
plus de puissance devrait vous permettre d’accueillir des armes plus puissantes (logique remarquez …).
Le « charge rate » est le taux de rechargement d’énergie de la centrale. Plus ce chiffre se rapprochera de
celui de la « capacity », plus votre centrale se rechargera vite. Dans un cadre de respect de logique du
jeu, mettre une valeur proche du dixième de la « capacity » de votre centrale semble être plus intéressant.
Il en est de même pour les données de la post combustion : « thrust capacity » et « thrust charge rate ».
Employez des valeurs adaptées au niveau de vos engins pour obtenir un rendu plus logique : des petites
valeurs pour des vaisseaux léger, et des grandes valeurs pour des vaisseaux plus lourds.
/ ! \ Enregistrez votre travail. / ! \
Vous pouvez fermer ce fichier.
D/ Shiparch.ini.
Ouvrez le fichier sur BiniQDU.
Je vais vous briefer rapidement sur ce fichier. C’est dans ce fichier que nous trouverons toutes les
caractéristiques techniques du vaisseau, à part celles déjà rencontrés dans Goods.ini (les lumières, quel
moteur et quelle centrale utiliser), Engine_equip.ini (les caractéristiques moteur) et Misc_equip.ini (les
caractéristiques énergétiques) et nous commencerons par paramétrer ces caractéristiques.
Nous retrouverons aussi quelles IDs utiliser pour cet engin, et nous verrons juste après comment les
créer.
1/Paramètres généraux.
Pour retrouver le Defender dans toute cette pagaille, utilisez « Li_elite » dans la boîte de recherche de
BiniQDU. Vous devrez tombez sur un gros paragraphe comme celui là :
[Ship]
ids_name = 237033
ids_info = 66567
ids_info1 = 66568
ids_info2 = 66608
ids_info3 = 66569
ship_class = 1
nickname = li_elite
msg_id_prefix = gcs_refer_shiparch_Libhf
mission_property = can_use_berths
LODranges = 0, 75, 150, 1300
type = FIGHTER
DA_archetype = ships\liberty\li_elite\li_elite.cmp
material_library = ships\liberty\li_playerships.mat
material_library = fx\envmapbasic.mat
envmap_material = envmapbasic
cockpit = cockpits\liberty\l_elite.ini
pilot_mesh = generic_pilot
nanobot_limit = 14
shield_battery_limit = 14
mass = 150.000000
hold_size = 30
linear_drag = 1.000000
fuse = intermed_damage_smallship01, 0.000000, 400
fuse = intermed_damage_smallship02, 0.000000, 200
fuse = intermed_damage_smallship03, 0.000000, 133
max_bank_angle = 30
camera_offset = 8, 34
camera_angular_acceleration = 0.050000
camera_horizontal_turn_angle = 17
camera_vertical_turn_up_angle = 5
camera_vertical_turn_down_angle = 25
camera_turn_look_ahead_slerp_amount = 1.000000
hit_pts = 1600
explosion_arch = explosion_li_elite
surface_hit_effects = 0, small_hull_hit_light01,
small_hull_hit_light02, small_hull_hit_light03
surface_hit_effects = 150, small_hull_hit_medium01,
small_hull_hit_medium02, small_hull_hit_medium03
surface_hit_effects = 300, small_hull_hit_heavy01,
small_hull_hit_heavy02, small_hull_hit_heavy03
steering_torque = 50000.000000, 50000.000000, 230000.000000
angular_drag = 40000.000000, 40000.000000, 141000.000000
rotation_inertia = 8400.000000, 8400.000000, 8400.000000
nudge_force = 30000.000000
strafe_force = 20000
strafe_power_usage = 2
bay_door_anim = Sc_open baydoor
bay_doors_open_snd = cargo_doors_open
bay_doors_close_snd = cargo_doors_close
HP_bay_surface = HpBayDoor01
HP_bay_external = HpBayDoor02
HP_tractor_source = HpTractor_Source
num_exhaust_nozzles = 2
shield_link = l_elite_shield01, HpMount, HpShield01
hp_type = hp_gun_special_4, HpWeapon01, HpWeapon02
hp_type = hp_gun_special_3, HpWeapon01, HpWeapon02,
HpWeapon03, HpWeapon04, HpWeapon05
hp_type = hp_gun_special_2, HpWeapon01, HpWeapon02,
HpWeapon03, HpWeapon04, HpWeapon05
hp_type = hp_gun_special_1, HpWeapon01, HpWeapon02,
HpWeapon03, HpWeapon04, HpWeapon05
hp_type = hp_elite_shield_special_4, HpShield01
hp_type = hp_elite_shield_special_3, HpShield01
hp_type = hp_elite_shield_special_2, HpShield01
hp_type = hp_elite_shield_special_1, HpShield01
hp_type = hp_thruster, HpThruster01
hp_type = hp_mine_dropper, HpMine01
hp_type = hp_countermeasure_dropper, HpCM01
hp_type = hp_turret_special_4, HpTurret01
hp_type = hp_turret_special_3, HpTurret01
hp_type = hp_turret_special_2, HpTurret01
hp_type = hp_turret_special_1, HpTurret01
hp_type = hp_torpedo_special_1, HpTorpedo01
hp_type = hp_torpedo_special_2, HpTorpedo01
- Vous verrez en premier les nombres IDS. Il y en a 5 et nous verrons en dernier comment les utiliser.
- Modifier le «ship_class» n’est pas extrêmement important pour le jeu, mais pour vous aider à vous
y repérer.
- Le nom « li_elite» est bien entendu à remplacer par « monvaisseau »
- Le « type » de vaisseau est à changer selon le type de véhicule que vous a créer. Ce paramètre n’a
aucune incidence sur le jeu.
- « DA_archetype » est le paramètre qui indique au jeu où se trouve le fichier qui gère la structure
de votre vaisseau, le *.CMP en l’occurrence. Vous devez prendre en origine d’arborescence le dossier
« ships » pour indiquer comme ci-dessus où se trouve votre fichier en indiquant très précisément le
chemin à suivre parmi vos dossiers.
- Refaites la même chose pour le premier « material_library » en indiquant où se trouve le
fichier *.MAT cette fois ci.
- Le paramètre « cockpit » indique, comme précédemment, quel fichier *.INI utilisé pour les
paramètres de la caméra.
Je m’explique. Vous savez qu’il y a trois types de caméras : vue cockpit, externe et tourelle.
Je passerai la vue cockpit.
En ce qui concerne la vue externe, elle est gérée par le shiparch.ini et ces paramètres se trouvent un peu
plus loin.
La caméra tourelle est gérée par un autre fichier (celui qui est indiqué par le chemin
« cockpits\liberty\l_elite.ini »). De plus, ce fichier indique quel fichier *.CMP doit
utiliser le vaisseau pour l’intérieur du cockpit.
Pour vous la faire rapidement, vous aurez besoin d’aller bidouiller ce fichier si votre vaisseau est un
bâtiment de guerre ou un cargo imposant, sinon vous risqueriez d’avoir quelques problèmes de visions, et
vous vous retrouveriez à l’intérieur de votre engin.
- « nanobot_limit » et « shield_battery_limit » indique combien de batteries et de
nanobots votre vaisseau pourra emporter.
- La «mass» indique le « poids » de votre engin. Une « mass » de 150 équivaut à un poids d’un
chasseur très lourd.
- La taille de la soute est caractérisée par « hold_size ». Le chiffre indiqué indique le nombre d’unités
que la soute peut accueillir.
- Revenons à la caméra : la ligne « camera_offset » paramètre sur les axes tridimensionnels la
position de la caméra de la vue externe. Ici, l’arrangement des axes est particulier, dites vous simplement
que 8 correspond à l’axe Y, 34 à l’axe X et qu’utiliser des valeurs positives sur cet axe fera reculer la
caméra, au lieu de la faire avancer comme si nous nous trouvions sur un repère en trois dimensions.
L’axe Z existe bien lui aussi, seulement, il n’est pas inscrit dans le paramétrage du placement de la
caméra puisque nous voulons avoir une caméra axée sur le centre du vaisseau. Néanmoins, vous pouvez
le rajouter vous-même en ajoutant une virgule après la deuxième valeur, un espace puis une donnée qui
vous convient. Le principe est le même pour le fichier annexe qui gère la caméra.
- « hit_pts » est bien évidemment le nombre de « point de vie » de votre vaisseau. Sur le jeu original,
un chasseur très lourd a des points de vie aux alentours de 10 000.
- « num_exhaust_nozzles » indique combien de moteur(s) vous voulez utiliser. Admettons que
vous avez placé 4 HardPoints pour moteur (Hp|Fixed|HpEngine01 …), vous devrez mettre « 4 » à cette
ligne là.
À moins que vous ne désiriez en utiliser qu’un, deux ou trois … En tous les cas, votre nombre d’HardPoint
doit être égal ou plus grand que le nombre de « num_exhaust_nozzles ».
Nous arrivons donc à la partie la plus intéressante du Shiparch.ini : le paramétrage des armes.
- La première ligne concerne le bouclier, et comme nous l’avons vu précedemment, il s’agit du bouclier qui
sera monté à l’achat du vaisseau. Cette ligne n’est là que pour confirmer ce paramètre.
- La suite est néanmoins plus subtile :
« hp_gun_special_1 », « hp_gun_special_2 » … Correspondent à la classe de l’arme
(classe 1, classe2 …).
« HpWeapon01 », « HpWeapon02 », « HpWeapon03 » … Correspondent aux slots de canon que
vous avez placés sur votre vaisseau.
En résumant cela un peu plus clairement, la première ligne signifie qu’uniquement les slots 1 et 2 d’arme
pourront accueillir des armes de classe 4.
La deuxième ligne signifie que les 5 slots d’armes du Defender pourront accueillir des armes de classe 3.
La troisième ligne signifie que les 5 slots d’armes pourront accueillir des armes de classe 2.
Et enfin, la quatrième ligne signifie que les 5 slots d’armes pourront accueillir des armes de classe 1.
- Nous retrouvons le même principe pour le bouclier :
« hp_elite_shield_special_1 » correspond à la classe du bouclier et
« HpShield01 » correspond au slot sur lequel sera fixé le bouclier – n’ayant généralement qu’un seul
slot de bouclier sur les vaisseaux, vous n’aurez pas de complications avec celui là.
- la ligne suivante indique sur quel slot sera fixé le module de postcombustion. Ici, il s’agit du slot
« HpThruster01 » - il devrait en être de même pour vous.
/ ! \ Attention, deux modules de postcombustion montés vous feront aller deux fois plus vite qu’avec un
seul. / ! \
- Même principe que le thruster pour la mine et la contre mesure, à l’exception d fait que sir vous avez
placés plusieurs slots de mine et/ou de contre mesures vous devrez le notifier : par exemple
« hp_type = hp_mine_dropper, HpMine01, HpMine02… » suivant le nombre de slots
que vous avez placés.
- En ce qui concerne les tourelles, le principe est le même que celui des canons.
- En revanche pour les interrupteurs de croisière, nous remarquerons aussi une subtilité :
« HpTorpedo01 » correspond toujours au slot, mais « hp_torpedo_special_1 » correspond
à un slot de torpille tandis que « hp_torpedo_special_2 » correspond à un slot d’interrupteur de
croisière.
En l’occurrence, le Defender peut équiper un lanceur de torpilles ou d’interrupteurs de croisière.
/ ! \ Enregistrez votre travail. / ! \
2/Créations des nombres IDS.
Attaquons donc la partie la plus délicate : nous allons faire de la manipulation au niveau des DLLs du jeu.
Pour cela, il vous faudra ouvrir FLED-ids. Néanmoins, laissez Bini-QDU ouvert avec le Goods.ini et le
Shiparch.ini.
Dans le paragraphe du Shiparch.ini, vous remarquez que les 5 premières lignes sont uniquement
consacrées aux nombres IDS. Voici un petit éclaircissement à leur propos :
Premièrement, une fois après avoir ouvert le programme, vous devrez lui dire où se trouve le jeu
(exemple : C:\Program files\Microsoft Games\Freelancer)
Ceci fait, vous pouvez inscrire le chiffre 237033 dans l’emplacement « ids_name » qui se trouve en haut
à gauche et appuyer sur « Get ids_name ». Vous devriez alors voir apparaître le nom du vaisseau - en
l’occurrence, le Defender. Pour les nombres ids restant, il s’agit d’utiliser la fonction « Get ids_info ».
Voici ce à quoi vous allez devoir faire face :
- ids_name gère le nom de l’objet en rapport avec ce nombre (ici il s’agit d’un vaisseau).
Defender
- ids_info gère l’affichage de toutes les caractéristiques du vaisseau (texte + données).
<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><TEXT> </TEXT><PARA/><TRA
data="1" mask="1" def="-2"/><JUST loc="center"/><TEXT>Stats</TEXT><PARA/><TRA
data="0" mask="1" def="-1"/><JUST loc="left"/><TEXT> </TEXT><PARA/><TEXT>Gun/Turret
Mounts: 5/1</TEXT><PARA/><TEXT>Armor: 1600</TEXT><PARA/><TEXT>Cargo Space:
30</TEXT><PARA/><TEXT>Max Batteries/NanoBots: 14/14</TEXT><PARA/><TEXT>Optimal
Weapon Class: 2</TEXT><PARA/><TEXT>Max. Weapon Class:
4</TEXT><PARA/><TEXT>Additional Equipment: M, CM,
CD/T</TEXT><PARA/><PARA/><POP/></RDL>
- ids_info1 gère la description du vaisseau que l’on peut apercevoir chez le marchand et en affichant les
informations générales en appuyant sur F7.
<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><TRA data="1" mask="1" def="2"/><JUST loc="center"/><TEXT>BDR-337 "Defender" Liberty Heavy
Fighter</TEXT><PARA/><TRA data="0" mask="1" def="-1"/><JUST
loc="left"/><TEXT> </TEXT><PARA/><TEXT>"The best of the best," this heavily outfitted rig
represents the pinnacle of Liberty's technological advances and design savoir faire. With
its elevated armor and power rating as standard and the additional mount for firepower, it's
no wonder that this ship is the number one choice of the Liberty Armed
Forces.</TEXT><PARA/><POP/></RDL>
(J’ai volontairement mis l’écriture colorée en gras pour qu’elle soit plus lisible).
- ids_info2 gère l’affichage des caractéristiques (textes).
<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><TRA data="1" mask="1" def="2"/><TEXT>Stats</TEXT><PARA/><TRA data="0" mask="1" def="1"/><TEXT> </TEXT><PARA/><TEXT>Gun/Turret
Mounts:</TEXT><PARA/><TEXT>Armor:</TEXT><PARA/><TEXT>Cargo
Space:</TEXT><PARA/><TEXT>Max Batteries/NanoBots:</TEXT><PARA/><TEXT>Optimal
Weapon Class:</TEXT><PARA/><TEXT>Max. Weapon
Class:</TEXT><PARA/><TEXT>Additional Equipment: </TEXT><PARA/><POP/></RDL>
- ids_info3 gère l’affichage des caractéristiques (données).
<?xml version="1.0" encoding="UTF-<?xml version="1.0" encoding="UTF16"?><RDL><PUSH/><TEXT> </TEXT><PARA/><TEXT> </TEXT><PARA/><TEXT>5/1</TEXT
><PARA/><TEXT>1600</TEXT><PARA/><TEXT>30</TEXT><PARA/><TEXT>14/14</TEXT><P
ARA/><TEXT>2</TEXT><PARA/><TEXT>4</TEXT><PARA/><TEXT>M, CM, CD/T
</TEXT><PARA/><POP/></RDL>
Pas d’affolement, cette partie est vraiment très simple, mais un peu capricieuse.
Avant de commencer, prenez les DLLs que vous trouverez dans le dossier EXE puis copiez/collez de côté
« Infocards.dll » et « NameRessources.dll » dans un dossier annexe au jeu et à votre mod.
La seule chose que vous avez à faire, c’est de remplacer les textes de couleur et le nom du vaisseau.
N’effacez pas les balises qui se trouvent autour, cela risquerait de mettre le bazar complet dans votre
affaire, et plus rien ne fonctionnerai.
Lorsque vous avez modifié les textes intéressants, copiez les, puis cherchez un nouveau nombre ids
vierge - lorsque vous cliquez sur un bouton « Get ids_ … » vous devriez avoir un cadre blanc. Il y en a un
bon paquet, il faut juste chercher un petit peu.
Après avoir trouvé un nombre ids vierge, collez votre bloc de texte précédemment copié, puis appuyer sur
« save ids_... ». Vous devriez avoir la notification « done » en bas de la fenêtre pour vous avertir que la
sauvegarde s’est bien déroulée. Dans le doute, ré-appuyez sur le bouton « Get ids_... » et si cela a
effectivement bien marché, votre bloc de texte ne devrait pas avoir bougé.
Nous avons une petite particularité au niveau du nombre « ids_name » qui nécessite une conversion.
Pour se faire, trouvez un nombre ids vide, puis enregistrez ce nombre. Ceci fait, copiez votre nombre puis
allez dans le cadre intitulé « ResID to ids_name/ids_info », et dans le déroulant, sélectionnez
« NameRessources.dll ». Collez votre nombre ids dans le champ « Resource ID » et cliquez sur convert.
Juste en dessous, vous verrez votre « ids_name » apparaître, et vous devrez utilisez celui-ci pour les
fichiers *.INI.
Une fois tous les nombre ids vérifiés et validés, retournez dans le dossier « EXE » de votre jeu original,
puis copiez les DLLs « infocards.dll » et « Nameressources.dll » et allez les coller dans le dossier « EXE »
de votre mod. Une fois ceci fait, allez chercher les deux DLLs que je vous avais demandé de mettre à
l’écart (les DLLs originales) et remettez les dans le dossier « EXE » de votre jeu original.
Revenons rapidement à notre Shiparch.ini, et allez au début du paragraphe concernant votre vaisseau
puis remplacez les 5 nombres ids par les votre que vous venez de créer.
Enregistrez le « Shiparch.ini » et fermez-le.
Revenons rapidement au « Goods.ini » et faites de même avec la ligne de l’ « ids_name » de votre
vaisseau en remplaçant l’ancien nombre par le nouveau (celui que nous avons converti).
Enregistrez puis fermez le fichier.
VII/ Mise en vente du vaisseau.
Ca y est ! Votre vaisseau est finalement créé, si tout s’est bien déroulé comme prévu, et si je n’ai pas
oublié de vous parler de quelque chose d’extrêmement important en cours de route.
Blague à part, c’est bien joli tout ça, mais le but du jeu, c’est de pouvoir utiliser l’engin et faire le beau
devant la Navy.
La partie qui va suivre sera révélatrice : s’il y a un pépin, nous le verrons tout de suite.
Avant de nous lancer, vérifiez bien l’arborescence de votre mod dans le dossier « mods » de FLMM que
je vous ai indiqué au chapitre VI, verset 1 (j’ai oublié de vous préciser que ce tutoriel est maintenant votre
Bible).
Une fois certain de la bonne forme de notre affaire, lancez FLExplorer, puis lorsqu’il vous demande
d’éditer à partir d’un mod existant, choisissez « oui », puis sélectionnez votre mod dans la liste.
Suite à cela, éditez le système de votre choix (New York semble être tout désigné, pour vous éviter d’aller
courir trop loin lors du test en jeu).
Choisissez une planète ou une base et cliquez droit dessus pour éditer les vaisseaux en vente.
C’est là que tout se joue : suivant le paramétrage de la station, vous verrez apparaître 1, 2 ou 3 menus
déroulant, dans lesquels vous verrez apparaitre la liste des vaisseaux dans l’ordre dans lequel ils sont
inscrits dans le Shiparch.ini. Ainsi, si vous avez inscrit votre vaisseau après le Defender, vous devriez
voir le nom de votre vaisseau après celui du Defender.
SI ce n’est pas le cas, et que vous voyez un blanc, cela signifie donc qu’il y a eu un problème au niveau
de l’édition des DLLs, et que vous devez reprendre cette étape en étant plus attentif lors des sauvegardes
des fichiers, ou bien des nombres que vous avez utilisés.
Si tout se déroule comme prévu, vous devriez voir apparaitre le nom de votre vaisseau dans la liste.
Sélectionnez-le, et validez le tout. Validez l’édition du système puis enregistrez le travail effectué en
cliquant sur « Appliquer les modifications/Mise à jour du mod ».
Quittez FLExplorer.
VII/ Script.xml
Voici la dernière chose à voir : le script qui affichera une description pour votre mod sous FLMM.
Il n’est pas nécessaire pour le bon fonctionnement de votre mod, donc vous pouvez sauter cette étape,
néanmoins si vous tenez à publier votre création pour le public, je vous recommande l’utilisation de cette
fonctionnalité.
Le script peut se réaliser à partir d’un nouveau document texte, il vous suffira d’en changer l’extension, en
passant de *.TXT à *. XML
Je vais rapidement vous exposer une ébauche simple, libre à vous ensuite d’étoffer le texte de
présentation.
<script>
<header name="MonModVaisseau">
<scriptversion>
1.0
</scriptversion>
<author>
Pseudonyme
</author>
<description>
Ce mod vous permettra de piloter MonVaisseau, réalisé par moi-même.
</description>
</header>
</script>
Ne pas oublier de finir en fermant les balises que l’on a ouvertes.
À propos de « name="MonModVaisseau" », le nom entre parenthèse sera le nom que l’on verra sous la
fenêtre de FLMM, dans la liste des mods disponibles, peu importe le nom que vous avez donné à votre
dossier se trouvant dans l’arborescence de FLMM.
VIII/ Test final.
Nous y voila enfin, le moment tant attendu.
Sans plus attendre je vous laisse aller en récréation, la classe est terminée.
Vous remarquerez le léger problème de ne pas pouvoir tester au fur et à mesure l’avancement du travail,
mais concrètement, avec de l’expérience de la régularité, la partie d’édition des INIs ET DLLs ne dure pas
plus de 20 minutes. Le plus long est bien évidemment la modélisation de votre vaisseau.
Lors de votre test en jeu, si votre application crash, je vous conseille de faire un check de la totalité de
éléments du mod, même des fichiers du vaisseau :
Utilisez Milkshape et ré-ouvrez vos fichiers sous le format « ms3d ». Si aucun message n’apparait, alors
votre structure va bien.
Ouvrez HardCMP et ouvrez votre fichier *.CMP. Si vous observez un problème, je vous conseille
vivement de réexporter votre création via Milkshape en *.CMP.
Vérifiez tous les fichiers *.INI auxquels nous avons touchés, il est possible que vous ayez fais une faute
de frappe, en premier le Shiparch.ini, vérifiez les chemins d’accès donnés pour les fichiers *.CMP et
*.MAT.
Si, en jeu, vous arrivez chez le concessionnaire de vaisseau, et que tout se passe bien, mais que vous ne
voyez pas le vaisseau, deux possibilités s’offrent à vous :
Tout d’abord, arrangez pour acheter votre véhicule, puis achetez des équipements en tout genre qui
puisse se voir une fois dans l’espace (arme, tourelle, mine, cm, bouclier, post combustion).
Sortez.
Si vous voyez une masse énorme sortir de la planète/base, cela signifie que votre engin est trop gros et
que vous devrez revenir sur Milkshape pour le réduire.
Si, dans le cas inverse, vous ne voyez qu’un tout petit amas de canon, tourelles, bouclier, lanceur de
mines et contremesures, alors cela signifie que votre structure est bien trop petite, et qu’un
agrandissement est largement suggéré.
Dans le cas où votre vaisseau serait invisible mais de bonne taille (les équipements vous semble bien
répartis), le problème viendrait du fichier *.MAT qui gère les textures. Peut être que le chemin donné dans
le fichier Shiparch.ini n’est pas valide, auquel cas le jeu ne trouverait rien à l’emplacement indiqué, ou
bien il se peut qu’il y ait eu un problème lors de l’exportation avec Milkshape, je vous recommande donc
de relancer ce programme et réexporter votre fichier.
Conclusion.
J’espère avoir été assez clair en ce qui concerne les passages les plus délicats de cette fabrication.
En tout les cas, sachez que ce n’est pas franchement compliqué, il faut garder à l’esprit une certaine
attention et que l’orthographe de vos éléments est primordiale.
Remerciements.
Je tiens à remercier en premier lieu la communauté de Projet Area, sans qui, je pense, j'aurai perdu la foi,
tout spécialement à Kasar, merci pour tes messages, même si au niveau théorique, tu ne m'as pas
apporter grand chose, tu as su me donner le plus important, à savoir la persévérance, qui est absolument
indispensable, et bien entendu, merci à Tonton Her Doki Dok, je veux parler de toi, mon cher AstroDoc
des TFli, qui m'a apporter beaucoup de connaissances théoriques et pratiques - même si à tes yeux, ce
n'est pas grand chose, ça l'a été pour moi - et de ressources en matières de softs à utiliser. Merci de
même pour la permission de publier le lien de ton ftp comportant les ressources nécessaires à la
réalisation de ce tutoriel.
Merci bien évidemment à ceux qui ont su me motiver, tout comme Kasar, je pense notamment à Oloerin,
et notre guilde en général, ainsi qu’à Revan et Freedon, sans qui je ne me serai pas mis de coups de pied
au derrière pour faire avancer mon schmilblick (merci pour les quelques heures passées à tester les
nouvelles versions du mod et les reports bugs). De même à Ladwin, le commerçant fou du commerce et
Thors l’opportuniste (what !?), qui m’ont indirectement (ou pas) pressé pour que je finisse mon travail.
Mais surtout, à Drizzt, sans qui je n'aurai pu comprendre comment réaliser toutes ces choses, ainsi, si tu
as l'occasion de comprendre un jour le français et de tomber sur ces quelques lignes, tu sais qu'il y a
quelqu'un quelque part qui te remercie pour le travail que tu as fournis et qui a profité à beaucoup de
personnes.
Merci à toutes les personnes que j’ai pu rencontrer tout autour de ce jeu et avec qui j’ai évolué, en bien ou
en mal, en bien comme en mal, et bien et en mal. Ils ont, eux aussi, une part de motivation à m’avoir
donné.
Sur ces entre-faits, sachez tout de même que l'univers de Freelancer est vaste, et qu'il n'appartient qu'à
vous de le faire évoluer, et si possible, grandir.
Je vous souhaiterai la chose la plus importante, et la plus essentielle, à nous, qui sommes astronautes
dans l'âme, pilotes de lignes, marchands, chasseurs de primes, parias, militaires, unionistes, policiers,
contrebandiers, prospecteurs, pirates de l'espace ou simple freelancer:
Bon vol,
et abusez bien du Bloody Mary.