[[fr:tutomakeobj3#objets|Revenir aux objets]]
====== Véhicules ======
===== Paramètres basiques =====
Voici les paramètres basiques d'un véhicule :
|**Paramètre \\ ** |**Description** |**Contenu \\ ** |**Exemple \\ ** |
|obj |type d'objet |vehicle ||
|name |nom |texte |SNFOS_Aero_front |
|[[fr:tutowaytype|waytype]] |type de voie |nom interne |maglev_track |
|cost |prix (%%*%%100c) |nombre |5000000 |
|weight |poids (t) |nombre |35 |
|runningcost |consommation (0,01c/km) |nombre |90 |
|[[fr:tutoenginetype|engine_type]] |énergie |nom interne |fuel_cell |
|speed |vitesse max (km/h) |nombre |550 |
|[[fr:tutogoods|freight]] |contenu |nom interne |Passagiere |
|payload |quantité du contenu |nombre |65 |
|power |puissance (kw) |nombre |4200 |
|[[fr:tutovehicle#gear|gear]] |couple (%%*%%0,01) |nombre |100 |
|intro_year |année de disponibilité |nombre |2019 |
|intro_month |mois de disponibilité |nombre |11 |
|retire_year |année de retraite |nombre |2039 |
|retire_month |mois de retraite |nombre |11 |
|[[fr:tutosmoke|smoke]] |fumée |nom interne |steam |
|[[fr:tutosound|sound]] |son au départ |voir plus bas |0 |
|length |longueur |nombre |8 |
|copyright |nom du créateur |texte |Gauthier |
|[[fr:tutovehicle#constraint|Constraint]] |Voir plus bas. ||||
===== Trames png et dat =====
Graphiquement, les véhicules nécéssitent huit images : une pour chaque orientation du véhicule (Nord, Nord-Est, Est, Sud-Est, Sud, etc …). Les véhicules symétriques aurant des images identiques deux à deux (Nord et Sud par exemple). Les véhicules peuvent avoir des longueurs différentes : chaque unité de longueur correspond à quatre pixels dans les vues Nord, Sud, Est et Ouest. Pour les vues diagonales c'est un nombre décimal donc les deux extremités de la trame prise pour une longueur donnée se chevaucheront. Voici la trame graphique :
{{ fr:tuto:dat:tramevehicle.png }}La longueur par défaut est de 8 (32 pixels de long sur une vue droite) si vous ne la précisez pas dans le .dat. Sur cette trame, chaque longueur a un gris différent, pour utiliser la trame, prenez la ligne nécéssaire selon le type de voie, supprimez, grâce à l'outil remplacer les couleurs et en jouant sur la tolérance, les niveaux de gris jusqu'à atteindre la longueur voulue. L'unité rose indique la longueur par défaut de 8. Le gris clair est l'avant du véhicule. Le fond de cette image est la couleur de transparence pour Simutrans. Pour les monorails suspendues, la trame n'indique pas la base du véhicule mais son toit.
Voici la trame .dat d'un véhicule, utilisant le trame graphique donnée ci-dessus.
obj=vehicle
\\ name=
\\ waytype=
\\ cost=
\\ runningcost=
\\ engine_type=
\\ speed=
\\ freight=none
\\ payload=0
\\ power=0
\\ gear=100
\\ copyright=
\\
\\ intro_year=1800
\\ intro_month=1
\\ retire_year=2999
\\ retire_month=1
\\
\\ smoke=-1
\\ sound=-1
\\ length=8
\\
\\ emptyimage[N]=source.0.0
\\ emptyimage[NE]=source.0.1
\\ emptyimage[E]=source.0.2
\\ emptyimage[SE]=source.0.3
\\ emptyimage[S]=source.0.4
\\ emptyimage[SW]=source.0.5
\\ emptyimage[W]=source.0.6
\\ emptyimage[NW]=source.0.7
==== gear ====
Le couple, donné en pourcentage dans le .dat, sert à modifier la puissance du véhicule. La puissance effective d'un véhicule dans le jeu, c'est à dire ce qui détermine son accélération, est le produit de la puissance (power) et du couple (gear).
puissance effective = power %%*%% gear
Pourquoi ne pas mettre directement le produit puissance %%*%% couple dans le paramètre power ?
Quand on reproduit des véhicules réels pour le jeu, on met la puissance réelle du véhicule en paramètre power, mais il est possible que cette puissance ne soit pas adaptée au jeu. Dans ce cas on utilise le couple afin de pouvoir conserver une puissance réaliste.
Il faut également tenir compte du fait que la puissance développée par un moteur n'est pas exactement proportionnelle à l’accélération qu'aura un véhicule, tout un tas de facteurs peuvent jouer là-dessus, en particulier lorsque la puissance indiquée d'un véhicule (une locomotive électrique par exemple) fait référence à l'énergie consommée et non à la puissance développée par le moteur.
Exemple : si on reproduit un véhicule ayant une puissance de 800 kw mais que cette puissance est insuffisante pour que le véhicule soit jouable, on ajoute un gear supérieure à 100 (1), par exemple 130 (1,30).
==== Constraint ====
Ce paramètre sert à définir quel véhicule peut être placé avant et quel véhicule peut être placé après un véhicule donné. Si on ne définit pas de constraints, le véhicule pourra être placé avant ou après n'importe quel véhicule n'ayant pas de constraints.
On met un véhicule possible par ligne, une ligne de constraint s'écrit comme ceci (exemple) :
Constraint[Prev][0]=none
Prev : véhicule pouvant être placé avant
Next : véhicule pouvant être placé après
0,1,2,3,… : il est nécéssaire d'ordonner les constraints Prev et Next en les numérotant, exemple :
Constraint[Prev][0]=véhicule1
\\ Constraint[Prev][1]=véhicule2
\\ Constraint[Prev][2]=véhicule3
\\ Constraint[Next][0]=véhicule4
Le contenu peut être le nom d'un véhicule (le nom du paramètre “name” du véhicule concerné) ou “none” qui signifie qu'on peut ne rien mettre avant ou après le véhicule concerné.
“none” doit toujours être le dernier constraint dans les Prev ou les Next, makeobj s'arrête de lire lorsqu'il lit “none”, si des véhicules sont placés après ils ne seront pas pris en compte. Si un véhicule n'a pas de “none” alors on sera obligé d'avoir un autre véhicule avant ou après.
Pour que deux véhicules se suivent, le véhicule 1 doit être dans les constraint[Prev] du véhicule2 et le véhicule2 doit être dans les constraint[Next] du véhicule1.
Exemple de constraint (SNCF_z22500_ZRBx_front)
Constraint[Prev][0]=SNCF_z22500_ZRBx_rear\\ Constraint[Prev][1]=none\\ Constraint[Next][0]=SNCF_z22500_ZBx_ZAB
===== Véhicule avec image de remplissage =====
Certains véhicules, notamment ceux transportant des marchandises, ont une image différente lorsqu'ils sont vides et lorsqu'ils sont chargés. Voici les paramètres nécéssaires, par exemple avec deus images remplissages différentes pour deux biens différents :
freightimagetype[0]=bien1\\ freightimagetype[1]=bien2
\\ freightimage[0][S]=image.x.2\\ freightimage[0][E]=image.x.0\\ freightimage[0][SE]=image.x.1\\ freightimage[0][NE]=image.x.3\\ freightimage[0][N]=image.x.4\\ freightimage[0][W]=image.x.6\\ freightimage[0][NW]=image.x.5\\ freightimage[0][SW]=image.x.7
\\ freightimage[1][S]=image.x².2\\ freightimage[1][E]=image.x².0\\ freightimage[1][SE]=image.x².1\\ freightimage[1][NE]=image.x².3\\ freightimage[1][N]=image.x².4\\ freightimage[1][W]=image.x².6\\ freightimage[1][NW]=image.x².5\\ freightimage[1][SW]=image.x².7
On précise d'abord de quels biens il s'agit en utilisant le nom interne du bien concerné. On met entre crochet le numéro utilisé dans les images après. Ensuite la trame graphique de l'image de base du véhicule est réutilisable ici à condition de mettre freightimage[n°] au lieu de EmptyImage. Dans l'exemple ci-dessus, les freightimage[0] correspondent aux images lorsque le véhicule est chargé avec le bien1 et les freightimage[1] correspondent aux images lorsque le véhicule est chargé avec le bien2. x et x² sont les numéros des lignes de ces images.
Exemple avec les images du wagon vrac du cirrus :
EmptyImage[S]=cirrus.8.2\\ EmptyImage[E]=cirrus.8.0\\ EmptyImage[SE]=cirrus.8.1\\ EmptyImage[SW]=cirrus.8.3\\ EmptyImage[N]=cirrus.8.4\\ EmptyImage[W]=cirrus.8.6\\ EmptyImage[NW]=cirrus.8.5\\ EmptyImage[NE]=cirrus.8.7\\ freightimagetype[0]=Kohle\\ freightimagetype[1]=Eisenerz\\ freightimagetype[2]=Stone\\ freightimagetype[3]=Sand\\ freightimagetype[4]=fertilizer\\ freightimagetype[5]=waste\\ freightimage[0][S]=cirrus.11.2\\ freightimage[0][E]=cirrus.11.0\\ freightimage[0][SE]=cirrus.11.1\\ freightimage[0][SW]=cirrus.11.3\\ freightimage[0][N]=cirrus.11.4\\ freightimage[0][W]=cirrus.11.6\\ freightimage[0][NW]=cirrus.11.5\\ freightimage[0][NE]=cirrus.11.7\\ freightimage[1][S]=cirrus.9.2\\ freightimage[1][E]=cirrus.9.0\\ freightimage[1][SE]=cirrus.9.1\\ freightimage[1][SW]=cirrus.9.3\\ freightimage[1][N]=cirrus.9.4\\ freightimage[1][W]=cirrus.9.6\\ freightimage[1][NW]=cirrus.9.5\\ freightimage[1][NE]=cirrus.9.7\\ freightimage[2][S]=cirrus.12.2\\ freightimage[2][E]=cirrus.12.0\\ freightimage[2][SE]=cirrus.12.1\\ freightimage[2][SW]=cirrus.12.3\\ freightimage[2][N]=cirrus.12.4\\ freightimage[2][W]=cirrus.12.6\\ freightimage[2][NW]=cirrus.12.5\\ freightimage[2][NE]=cirrus.12.7\\ freightimage[3][S]=cirrus.10.2\\ freightimage[3][E]=cirrus.10.0\\ freightimage[3][SE]=cirrus.10.1\\ freightimage[3][SW]=cirrus.10.3\\ freightimage[3][N]=cirrus.10.4\\ freightimage[3][W]=cirrus.10.6\\ freightimage[3][NW]=cirrus.10.5\\ freightimage[3][NE]=cirrus.10.7\\ freightimage[4][S]=cirrus.10.2\\ freightimage[4][E]=cirrus.10.0\\ freightimage[4][SE]=cirrus.10.1\\ freightimage[4][SW]=cirrus.10.3\\ freightimage[4][N]=cirrus.10.4\\ freightimage[4][W]=cirrus.10.6\\ freightimage[4][NW]=cirrus.10.5\\ freightimage[4][NE]=cirrus.10.7\\ freightimage[5][S]=cirrus.11.2\\ freightimage[5][E]=cirrus.11.0\\ freightimage[5][SE]=cirrus.11.1\\ freightimage[5][SW]=cirrus.11.3\\ freightimage[5][N]=cirrus.11.4\\ freightimage[5][W]=cirrus.11.6\\ freightimage[5][NW]=cirrus.11.5\\ freightimage[5][NE]=cirrus.11.7
===== Un véhicule pas à pas =====
Comme exemple concret nous allons refaire l'automotrice Etat 1001 dont voici un extrait de l'image source :{{ fr:tuto:dat:vehicule01.png }}Nous allons utiliser la trame graphique donnée plus haut, l'Etat 1001 étant un train nous utiliserons la ligne “track/tram”. Prenez-là avec précision sur la trame et faites-en une nouvelle image “Etat1001.png”. Voici donc cette image :{{ fr:tuto:dat:vehicule02.png }}Supprimez le cadre rouge et le texte “track/tram”. Ensuite sachant que l'automotrice a une longueur de 10, supprimons les longueurs en trop pour n'avoir que 10 longueurs. Etant donné que la trame est faite à partir de niveaux de gris, on peut utiliser l'outil de remplacement de couleur de photofiltre.
[[fr:tutophotofiltre#remplacer_une_couleur|Remplacer une couleur dans photofiltre]]
{{ fr:tuto:dat:vehicule03.png }}En jouant sur la tolérence on supprime facilement les carrés en trop.{{ fr:tuto:dat:vehicule04.png }}
Ensuite afin de changer le reste de la trame en une couleur unie et repérable (pour la supprimer facilement une fois le véhicule placé), on utilise l'outil baguette magique avec tolérance 0 sur le fond, on inverse la sélection pour n'avoir dedans que la trame, après avoir mis du rouge en couleur secondaire on supprime, en s'étant assuré d'avoir supprimé le lissage des sélections.
[[fr:tutophotofiltre#outils|Les outils de photofiltre (dont l'outil baguette magique)]]
[[fr:tutophotofiltre#lissage_de_la_selection|Lissage de la sélection dans photofiltre]]
On obtient ainsi une trame exploitable pour un véhicule ferroviaire de longueur 10 :{{ fr:tuto:dat:vehicule05.png }}Il ne reste plus qu'à placer nos images d'automotrice comme ceci :
{{ fr:tuto:dat:vehicule06.png }}Bien sûr ici j'ai utilisé la transparence pour que voyez où placer le véhicule exactement mais il ne faudra pas l'utiliser pour placer vos images.
Ensuite on supprime les morceaux de trame en trop avec l'outil remplacer les couleurs et voila l'image source :{{ fr:tuto:dat:vehicule07.png }}Ici on a une image avec une seule ligne car l'exercice ne concerne qu'un seul véhicule, mais certains trains sont composés de plusieurs véhicules. On peut mettre autant de lignes qu'on veut tant que l'ordinateur peut gérer l'image en entier. L'image du z50000 contient huit lignes par exemple.
Attaquons-nous maintenant au .dat de cette automotrice ! Pour commencer mettons la partie graphique du .dat à partir de la trame vue plus haut. Faisons les remplacements adéquats sachant que notre image se nomme Etat1001.png et que la ligne contenant le véhicule est la ligne n° 0 (la première ligne) :
emptyimage[N]=Etat1001.0.0
\\ emptyimage[NE]=Etat1001.0.1
\\ emptyimage[E]=Etat1001.0.2
\\ emptyimage[SE]=Etat1001.0.3
\\ emptyimage[S]=Etat1001.0.4
\\ emptyimage[SW]=Etat1001.0.5
\\ emptyimage[W]=Etat1001.0.6
\\ emptyimage[NW]=Etat1001.0.7
Ensuite il suffit d'ajouter les données de l'Etat 1001. Pour les constraints on sait qu'il s'agit d'une automotrice couplable en unité multiples, on peut donc placer soit rien soit une autre Etat 1001 devant, et pareil derrière.
obj=vehicle
\\ name=Etat_1001
\\ waytype=track
\\ cost=15072000
\\ runningcost=389
\\ engine_type=electric
\\ speed=70
\\ freight=Passagiere
\\ payload=116
\\ power=346
\\ gear=100
\\
\\ intro_year=1913
\\ intro_month=5
\\ retire_year=1938
\\ retire_month=12
\\ length=10
\\
\\ Constraint[Prev][0]=Etat_1001
\\ Constraint[Prev][1]=none
\\ Constraint[Next][0]=Etat_1001
\\ Constraint[Next][1]=none
\\
\\ emptyimage[N]=Etat1001.0.0
\\ emptyimage[NE]=Etat1001.0.1
\\ emptyimage[E]=Etat1001.0.2
\\ emptyimage[SE]=Etat1001.0.3
\\ emptyimage[S]=Etat1001.0.4
\\ emptyimage[SW]=Etat1001.0.5
\\ emptyimage[W]=Etat1001.0.6
\\ emptyimage[NW]=Etat1001.0.7
Pour faire apparaitre la motrice d'un train bloc (comme le TGV par exemple) dans l'onglet des trains de passagers, mettez freight=passagiere.
De même, pour faire apparaitre un wagon d'une automotrice électrique dans l'onglet électrique, précisez "engine_type=electric".
[[fr:tutomakeobj3#objets|Revenir aux objets]]