Table des matières

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
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
engine_type énergie nom interne fuel_cell
speed vitesse max (km/h) nombre 550
freight contenu nom interne Passagiere
payload quantité du contenu nombre 65
power puissance (kw) nombre 4200
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
smoke fumée nom interne steam
sound son au départ voir plus bas 0
length longueur nombre 8
copyright nom du créateur texte Gauthier
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 :

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 :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 :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.

En jouant sur la tolérence on supprime facilement les carrés en trop.

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.

On obtient ainsi une trame exploitable pour un véhicule ferroviaire de longueur 10 :Il ne reste plus qu'à placer nos images d'automotrice comme ceci :

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 :

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”.