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.