Traductions possibles :

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

fr:tutomakeobj [2010/07/13 11:06]
gauthier
fr:tutomakeobj [2018/09/23 00:05] (version actuelle)
lieven
Ligne 1: Ligne 1:
====== Makeobj ====== ====== Makeobj ======
- 
makeobj est le logiciel qui sert à compiler les fichiers .dat et les images .png. Il est très simple de s'en servir. makeobj est le logiciel qui sert à compiler les fichiers .dat et les images .png. Il est très simple de s'en servir.
- 
===== 1.Présentation ===== ===== 1.Présentation =====
- 
Si on lance makeobj directement, rien ne se passe. Makeobj est un programme en console, si on veut y voir quelque chose il faut le lancer depuis la ligne de commande de l'OS … on se passera de ça. Pour l'utiliser correctement il faudra le lancer depuis la ligne de commande avec un mot clé en majuscule derrière qui lancerait la bonne commande de makeobj. Il y a deux façons de le faire : le plus confortable est d'utiliser une interface graphique de makeobj comme pakhelper, le plus rapide est de faire des fichiers de commande. Les deux méthodes seront détaillées ici. Si on lance makeobj directement, rien ne se passe. Makeobj est un programme en console, si on veut y voir quelque chose il faut le lancer depuis la ligne de commande de l'OS … on se passera de ça. Pour l'utiliser correctement il faudra le lancer depuis la ligne de commande avec un mot clé en majuscule derrière qui lancerait la bonne commande de makeobj. Il y a deux façons de le faire : le plus confortable est d'utiliser une interface graphique de makeobj comme pakhelper, le plus rapide est de faire des fichiers de commande. Les deux méthodes seront détaillées ici.
- 
Makeobj crée un fichier .pak par objet mais il est possible de fusionner plusieurs .pak en un seul pour plus de facilité. Makeobj crée un fichier .pak par objet mais il est possible de fusionner plusieurs .pak en un seul pour plus de facilité.
- 
===== 2.Pakhelper ===== ===== 2.Pakhelper =====
- 
<WRAP download>[[http://minami-fukuoka.simutrans.net/english/pakhelper/PakHelper_3.2.zip|Télecharger Pakhelper]] </WRAP> <WRAP download>[[http://minami-fukuoka.simutrans.net/english/pakhelper/PakHelper_3.2.zip|Télecharger Pakhelper]] </WRAP>
- 
Une fois téléchargée, décompressez-le, vous avez alors un dossier “pakhelper”. Pakhelper n'étant qu'une interface, il nécéssite makeobj pour fonctionner, celui-ci est à l'intérieur du dossier. Remplacez-le par la dernière version de makeobj que vous avez. Ensuite lancez pakhelper, voila ce qu'on trouve : Une fois téléchargée, décompressez-le, vous avez alors un dossier “pakhelper”. Pakhelper n'étant qu'une interface, il nécéssite makeobj pour fonctionner, celui-ci est à l'intérieur du dossier. Remplacez-le par la dernière version de makeobj que vous avez. Ensuite lancez pakhelper, voila ce qu'on trouve :
- +{{  fr:tuto:makeobj:makeobj01.png  }}Réglez la taille du pak pour lequel vous créez (pak64, pak128, ou un autre pak dont vous devez indiquer la taille), ensuite sélectionnez le fichier .dat avec le bouton “open” et indiquez un nom pour le .pak final qui regroupera tous les .pak créés à partir du fichier .dat.
-{{  :fr:makeobj01.png  }}Réglez la taille du pak pour lequel vous créez (pak64, pak128, ou un autre pak dont vous devez indiquer la taille), ensuite sélectionnez le fichier .dat avec le bouton “open” et indiquez un nom pour le .pak final qui regroupera tous les .pak créés à partir du fichier .dat. +
<WRAP important>Le problème de pakhelper est de ne pouvoir compiler qu'un seul fichier .dat à la fois.</WRAP> <WRAP important>Le problème de pakhelper est de ne pouvoir compiler qu'un seul fichier .dat à la fois.</WRAP>
- 
Vous trouverez dans l'onglet “Extract” un outil permettant de séparant un fichier .pak multiple en fichiers .pak simples, l'onglet “Merge” vous permettra de faire l'inverse (fusionner plusieurs .pak en un seul). Vous trouverez dans l'onglet “Extract” un outil permettant de séparant un fichier .pak multiple en fichiers .pak simples, l'onglet “Merge” vous permettra de faire l'inverse (fusionner plusieurs .pak en un seul).
- 
===== 3.Les fichiers de commande ===== ===== 3.Les fichiers de commande =====
- 
Un moyen plus rapide et plus efficace de compiler ses fichiers .dat est d'utiliser des fichiers de commande qui lancent makeobj directement. Un moyen plus rapide et plus efficace de compiler ses fichiers .dat est d'utiliser des fichiers de commande qui lancent makeobj directement.
- 
On a vu plus haut que makeobj se lançait par la ligne de commande avec une indication pour dire à makeobj quelle fonction éxécuter. Les fichiers de commande que nous allons créer reviennent au même mais il suffira de lancer un de ses fichiers pour éxécuter makeobj avec la bonne fonction. On a vu plus haut que makeobj se lançait par la ligne de commande avec une indication pour dire à makeobj quelle fonction éxécuter. Les fichiers de commande que nous allons créer reviennent au même mais il suffira de lancer un de ses fichiers pour éxécuter makeobj avec la bonne fonction.
- 
Voici une liste des commandes intéréssantes de makeobj Voici une liste des commandes intéréssantes de makeobj
- 
Makeobj PAK128 : crée des fichiers .pak pour pak128 (on peut faire de même avec pak64 ou autre) à partir des fichiers .dat. Makeobj PAK128 : crée des fichiers .pak pour pak128 (on peut faire de même avec pak64 ou autre) à partir des fichiers .dat.
- 
Makeobj MERGE : fusionne les fichiers .pak en un seul. Makeobj MERGE : fusionne les fichiers .pak en un seul.
- 
Makeobj EXTRACT : divise un fichier .pak multiple en plusieurs .pak simples. Makeobj EXTRACT : divise un fichier .pak multiple en plusieurs .pak simples.
- 
==== Windows ==== ==== Windows ====
Ligne 81: Ligne 63:
Si vous avez précisé les chemin d'accès, vous n'aurez qu'à copier vos fichiers de commande, de plus il sera facile de mettre à jour makeobj puisque vous n'aurez qu'un fichier à remplacer. L'éxecution de chacun de ses fichiers ne s'appliquera qu'aux fichiers qui se trouve dans le même dossier. Vous pouvez ainsi facilement vous organiser en créant un dossier par projet par exemple. Pour create les erreurs éventuelles seront marquées dans le fichier err.txt créé lors de la compilation. Si vous avez précisé les chemin d'accès, vous n'aurez qu'à copier vos fichiers de commande, de plus il sera facile de mettre à jour makeobj puisque vous n'aurez qu'un fichier à remplacer. L'éxecution de chacun de ses fichiers ne s'appliquera qu'aux fichiers qui se trouve dans le même dossier. Vous pouvez ainsi facilement vous organiser en créant un dossier par projet par exemple. Pour create les erreurs éventuelles seront marquées dans le fichier err.txt créé lors de la compilation.
- 
==== Linux ==== ==== Linux ====
- 
Sous linux on utilise des scripts shell, qui reviennent sensiblement à la même chose que les fichiers de commande sous windows. Par définition un script shell possède l'extension ”.sh”. Sous linux on utilise des scripts shell, qui reviennent sensiblement à la même chose que les fichiers de commande sous windows. Par définition un script shell possède l'extension ”.sh”.
- 
Mettez makeobj dans le dossier de votre choix puis ouvrez une console dans ce dossier. Mettez la commande “pwd” qui nous donneras le chemin complet du dossier où est makeobj sur l'ordinateur. Chez moi par exemple : Mettez makeobj dans le dossier de votre choix puis ouvrez une console dans ce dossier. Mettez la commande “pwd” qui nous donneras le chemin complet du dossier où est makeobj sur l'ordinateur. Chez moi par exemple :
- 
<WRAP  box>/home/fefe/simutrans_travail</WRAP> <WRAP  box>/home/fefe/simutrans_travail</WRAP>
- 
donc makeobj est situé ici : donc makeobj est situé ici :
- 
<WRAP  box>/home/fefe/simutrans_travail/makeobj</WRAP> <WRAP  box>/home/fefe/simutrans_travail/makeobj</WRAP>
- 
Vous avez le chemin de makeobj? On passe à la suite alors. Ouvrez un éditeur de texte puis tapez cette ligne : Vous avez le chemin de makeobj? On passe à la suite alors. Ouvrez un éditeur de texte puis tapez cette ligne :
- 
<WRAP  box>#!/bin/sh</WRAP> <WRAP  box>#!/bin/sh</WRAP>
- 
Cette ligne permet d'indiquer où est l'interpreteur shell. Elle doit être au début de chacun de vos scripts. Cette ligne permet d'indiquer où est l'interpreteur shell. Elle doit être au début de chacun de vos scripts.
- 
Voici les fichiers à créer (remplacez “makeobj” par son chemin d'accès et ne pas oublier la petite ligne du dessus). Voici les fichiers à créer (remplacez “makeobj” par son chemin d'accès et ne pas oublier la petite ligne du dessus).
- 
create.sh<WRAP box>makeobj pak128 2>err.txt</WRAP> create.sh<WRAP box>makeobj pak128 2>err.txt</WRAP>
- 
merge.sh<WRAP box>makeobj MERGE name.pak %%*%%.pak</WRAP>(remplacez  “name” par le nom que vous désirez pour le .pak final) merge.sh<WRAP box>makeobj MERGE name.pak %%*%%.pak</WRAP>(remplacez  “name” par le nom que vous désirez pour le .pak final)
- 
extract.sh<WRAP box>makeobj EXTRACT</WRAP> extract.sh<WRAP box>makeobj EXTRACT</WRAP>
- 
Voila la grosse différence avec windows : Linux n'autorise pas l'execution de logiciel ou script comme ça. Pour cela il va falloir modifier les droits d'execution de nos scripts créés précédemment. Pour cela, dans une console il faut utiliser la commande chmod : Voila la grosse différence avec windows : Linux n'autorise pas l'execution de logiciel ou script comme ça. Pour cela il va falloir modifier les droits d'execution de nos scripts créés précédemment. Pour cela, dans une console il faut utiliser la commande chmod :
- 
<WRAP box>chmod u+x //nom_du_script.sh// </WRAP> <WRAP box>chmod u+x //nom_du_script.sh// </WRAP>
- 
Et pour lancer le script, a partir d'une console : Et pour lancer le script, a partir d'une console :
- 
<WRAP box>./nom_du_script.sh</WRAP> <WRAP box>./nom_du_script.sh</WRAP>
- 
<WRAP important>Pour ceux qui connaissent bien le système linux, vous pouvez simplifier l'appel de makeobj en utilisant un lien symbolique</WRAP> <WRAP important>Pour ceux qui connaissent bien le système linux, vous pouvez simplifier l'appel de makeobj en utilisant un lien symbolique</WRAP>
- 
<WRAP important>Pour ceux qui utilise les distributions debian, ubuntu et dérivé, il existe dans les depôts un paquet qui se charge d'installer makeobj proprement sur votre système. Ainsi la procédure reste identique mais il suffit de mettre makeobj dans le script au lieu du chemin complet</WRAP> <WRAP important>Pour ceux qui utilise les distributions debian, ubuntu et dérivé, il existe dans les depôts un paquet qui se charge d'installer makeobj proprement sur votre système. Ainsi la procédure reste identique mais il suffit de mettre makeobj dans le script au lieu du chemin complet</WRAP>
===== 4.Erreurs graphiques possibles ===== ===== 4.Erreurs graphiques possibles =====
- 
==== Les objets ressemblent à des sapins de Noël en mode nuit ==== ==== Les objets ressemblent à des sapins de Noël en mode nuit ====
- 
Votre image source contient pas mal de special colors à des endroits où il ne devrait pas y en avoir. Vous pouvez les enlever avec l'outil “remplacer les couleurs” de photofiltre par exemple. Votre image source contient pas mal de special colors à des endroits où il ne devrait pas y en avoir. Vous pouvez les enlever avec l'outil “remplacer les couleurs” de photofiltre par exemple.
- 
==== Barres blanches ==== ==== Barres blanches ====
- +{{  fr:tuto:makeobj:makeobj02.png  }}Votre image source est enregistrée en .png 32 bits, ce qui peut arriver si vous utiliser paint sous windows 7 par exemple. Enregistrez votre image avec un autre éditeur d'image comme photofiltre.
-{{  :fr:makeobj02.png  }}Votre image source est enregistrée en .png 32 bits, ce qui peut arriver si vous utiliser paint sous windows 7 par exemple. Enregistrez votre image avec un autre éditeur d'image comme photofiltre. +
===== 5.Autres erreurs sans message d'erreur de err.txt ===== ===== 5.Autres erreurs sans message d'erreur de err.txt =====
- 
==== L'objet n'apparait pas dans le jeu ==== ==== L'objet n'apparait pas dans le jeu ====
- 
Il y a deux causes possibles à ce problème : soit votre objet porte le même nom qu'un autre, dans ce cas il aura été remplacé par l'autre, soit le problème vient de l'image qui n'a pas les bonnes dimensions : les dimensions ne sont pas multiples du pak pour lequel vous créez (1025 au lieu de 1024 pixels par exemple) ou alors il manque certaines images (l'icone d'un bâtiment par exemple). Il y a deux causes possibles à ce problème : soit votre objet porte le même nom qu'un autre, dans ce cas il aura été remplacé par l'autre, soit le problème vient de l'image qui n'a pas les bonnes dimensions : les dimensions ne sont pas multiples du pak pour lequel vous créez (1025 au lieu de 1024 pixels par exemple) ou alors il manque certaines images (l'icone d'un bâtiment par exemple).
- 
===== 6.Messages d'erreur de err.txt ===== ===== 6.Messages d'erreur de err.txt =====
- 
Voici les différents messages d'erreur qu'on peut trouver dans err.txt, certaines erreurs peuvent s'accompagner d'un crash de makeobj … pas de panique. Voici les différents messages d'erreur qu'on peut trouver dans err.txt, certaines erreurs peuvent s'accompagner d'un crash de makeobj … pas de panique.
- 
<WRAP box>Error:: No such file or directory\\  ERROR IN CLASS image_writer_t: cannot open ./image.png\\  </WRAP> <WRAP box>Error:: No such file or directory\\  ERROR IN CLASS image_writer_t: cannot open ./image.png\\  </WRAP>
- 
Le fichier “image.png” n'est pas trouvé, vérifiez qu'il se trouve dans le dossier, vérifiez qu'il n'y a pas d'erreur dans le nom. Le fichier “image.png” n'est pas trouvé, vérifiez qu'il se trouve dans le dossier, vérifiez qu'il n'y a pas d'erreur dans le nom.
- 
<WRAP box>FATAL ERROR: get_waytype()\\  invalid waytype ””</WRAP> <WRAP box>FATAL ERROR: get_waytype()\\  invalid waytype ””</WRAP>
- 
Il manque un paramètre indispensable dans le .dat, ici c'est le paramètre “waytype”. Il manque un paramètre indispensable dans le .dat, ici c'est le paramètre “waytype”.
- 
Voila les problèmes les plus courants, dans tous les cas si il manque des données à vos véhicules, vérifiez TOUJOURS la bonne orthographe des paramètres (par exemple un très courrant c'est “lenght” au lieu de “length”), certains paramètres ont une mauvaise orthographe mais ils doivent s'écrire comme ils sont donnés dans le tuto précédent. Si vous avez des véhicules qui ne s'attachent pas correctement, vérifiez que les noms sont bien orthographiés dans les constraints, au pire copiez collez les noms dans les constraints pour être sûr, pour les bugs graphiques, l'erreur se trouve toujours dans l'image ou dans l'offset si vous l'utilisez. Si vos images sont décalées, prenez une capture d'écran et mesurez le nombre de pixels de décalage, décalez l'image en conséquence sur le fichier source. Voila les problèmes les plus courants, dans tous les cas si il manque des données à vos véhicules, vérifiez TOUJOURS la bonne orthographe des paramètres (par exemple un très courrant c'est “lenght” au lieu de “length”), certains paramètres ont une mauvaise orthographe mais ils doivent s'écrire comme ils sont donnés dans le tuto précédent. Si vous avez des véhicules qui ne s'attachent pas correctement, vérifiez que les noms sont bien orthographiés dans les constraints, au pire copiez collez les noms dans les constraints pour être sûr, pour les bugs graphiques, l'erreur se trouve toujours dans l'image ou dans l'offset si vous l'utilisez. Si vos images sont décalées, prenez une capture d'écran et mesurez le nombre de pixels de décalage, décalez l'image en conséquence sur le fichier source.
- 
En cas de problème insoluble, créez un sujet pour une demande d'aide [[http://forum.simutrans.com/index.php?board=7.0|ici]]. En cas de problème insoluble, créez un sujet pour une demande d'aide [[http://forum.simutrans.com/index.php?board=7.0|ici]].