Technique avancée : les évènements dans une activité
|
Ce
tutoriel décrit les caractéristiques et le fonctionnement
des évènements dans les activités
|
|
| Avant-propos | |
| Que votre activité soit une activité
de frêt ou une activité passagers, les évènements
vous permettent de contrôler que le joueur respecte votre scénario.
Avec les évènements, vous pouvez également donner des informations au joueur à des moments opportuns, ou décider d'arrêter l'activité si le joueur ne respecte pas votre scénario. |
|
| Exemple : Votre activité prévoit
que le joueur parte de la gare A pour se rendre à la gare B avec
un arrêt dans le gare D. Si vous n'avez pas utilisé d'évènement dans votre activité, le joueur pourra parcourir en toute quiétude le trajet de A vers B sans s'arrêter dans la gare D. Mais si vous utilisez les évènements appropriés, vous pourrez rappeler à l'ordre le joueur s'il ne s'arrête pas à la gare D ou même terminer l'activité quelques km après la gare D. |
|
| C'est un principe de programmation assez simple: SI un évènement se produit, ALORS le moteur réagit. | |
| Le rôle de TS est de surveiller si les
évènements que vous avez programmés se déclenchent
ou non pendant que le joueur parcours votre activité. Dans l'éditeur de mode, vous définissez la condition à surveiller, vous activez ou désactiver cette surveillance et vous spécifiez les résultats que TS doit effectuer lorsque l'évènement se déclenche. |
|
| Par contre, la mise en oeuvre est un peu plus complexe parce que l'aide intégrée de l'éditeur de mode est très sommaire, l'interface de définition des évènements est un peu abstraite et la réaction de Train Simulator n'est pas toujours compréhensible! | |
| Cet article se propose de clarifier l'utilisation
des évènements. Il fait la synthèse des tests que
j'ai pu faire en développant des activités et des informations
que j'ai trouvées en parcourant différents forums. Il n'en reste pas moins vrai que Train Simulator n'est pas une science exacte et donc si vous relevez des anomalies ou si vous avez des astuces complémentaires, n'hésitez pas à me contacter pour la mise à jour de cette page! |
|
| Vous avez des remarques à faire sur cet article, vous avez des astuces à faire partager : participez au forum | |
|
Sommaire |
|
| Présentation des évènements | |
| Les évènements se définissent
dans des fenêtres 'Evènements' Le menu 'Fenêtre' permet d'afficher ou de masquer ces trois fenêtres principales. |
|
![]() |
|
![]() |
|
| Chacune de ces fenêtres correspond à un type d'évènement que l'on peut détecter : Actions - Lieux - Moment | |
| A noter que lors de la création d'une activité, l'évènement lié à l'action 'Arrêt à la dernière gare' est automatiquement créé. | |
| Pour créer un nouvel évènement, il suffit de cliquer sur le bouton Nouveau dans la fenêtre appropriée. | |
| Chaque type d'évènement affiche sa propre fenêtre de définition et donc possède ses propres paramètres. | |
   
![]() |
|
| Par contre, on remarque que ces fenêtres de définition ont une structure identique composée de trois zones : | |
| La partie haute définit les paramètres
de l'évènement qui doit se déclencher. Elle est spécifique
à chaque type d'évènement, elle s'intitule Action,
Lieu ou Moment en fonction du type dévènement. C'est la spécification de ce que vous souhaitez surveiller pendant le déroulement de votre activité.. |
|
|
La partie du milieu intitulée Evènement définit
les paramètres niveau d'activation et textes. Elle est commune
aux 3 types d'évènements. |
|
| La partie basse définit le ou les résultats
lorsque l'évènement se déclenche. Elle est commune
aux 3 types d'évènements. Ces résultats permettent de modifier le comportement de TS ; vous pouvez afficher des messages, arrêter l'activité ou modifier le niveau d'activation d'un autre évènement. |
|
| Notez la case à coher 'Réversible' dans la fenêtre des évènements actions, nous verrons plus loin son utilisation. | |
| Les 3 régions de ces fenêtres sont décrites successivement dans les 3 chapitres suivants | |
| Première partie : la région des paramètres des évènements | |
| Les paramètres des évènements, Moment - Lieux - Actions, correspondent à la partie SI de la structure SI - ALORS, c'est à dire qu'ils définissent ce que vous pouvez contrôler dans votre scénario. | |
|
Evènements de moment |
|
| Exemple : SI l'activité a débuté il y a 30 minutes, ALORS j'affiche un message pour prévenir le joueur qu'il devrait déjà avoir terminé cette activité | |
| Pour créer un évènement de moment, on clique sur le bouton Nouveau de la fenêtre Evènements liés aux moments. | |
![]() |
Dans cette fenêtre, il faut indiquer un
horaire relatif au début de votre activité et non pas l'heure
à laquelle il se déclenche. Concrètement, si votre activité débute à 9h00 et que vous désirez que votre évènement se déclenche à 9h30, vous devez saisir Heures : 0 - Minutes : 30 - Secondes : 0 dans les propriétés de l'évènement et non pas Heures : 9 - Minutes : 30 - Secondes : 0 |
| Evènements
de lieux Ces évènements se déclenchent lorsque le train du joueur atteind un point que vous avez défini sur le chemin du service du joueur. |
|
| Exemple : SI le joueur arrive au PK100, ALORS j'active le contrôle de limite de vitesse | |
| Pour créer un évènement de lieu : | |
![]() |
soit on clique sur le bouton Nouveau de la fenêtre évènements liés aux lieux puis on positionne le lieu sur la carte avec le bouton gauche de la souris (en cliquant sur le bouton droit on annule la création de l'évènement) |
![]() |
soit on clique directement sur la carte avec le bouton droit de la souris pour choisir l'option 'Placer un évènement lieu' dans le menu contextuel |
![]() |
Dans les 2 cas on obtient la fenêtre des propriétés de l'évènement de lieux |
|
Le numéro de l'évènement lieu est attribué automatiquement. |
|
| Le Rayon indique le rayon d'un cercle qui définit la zone dans laquelle se déclenche l'évènement. | |
![]() |
L'évènement numéro 0 est
défini avec un rayon de 10 mètres, l'évènement
numéro 1 est défini avec un rayon de 3 mètres. Il faut faire attention lors de la définition du rayon car l'évènement 0 se déclencherait si le train du joueur circulait sur la voie immédiatement à droite de celle où est défini l'évènement. |
![]() |
Si la case à cocher 'Arrêt obligatoire' est cochée, alors l'évènement de lieu de ne se déclenchera que si le train du joueur s'arrète dans la zone définie par le rayon. |
|
Exemple |
|
|
Evènements Actions |
|
| SI le joueur s'arrête à la dernière gare du parcours, ALORS j'arrête l'activité avec succes. | |
![]() |
Pour créer un évènement action, cliquez sur le bouton Nouveau de la fenêtre Evènements liés aux actions puis sélectionnez l'action à contrôler. |
| Arrêt à la dernière gare (si le service du joueur prévoit des arrêts) se déclenche lorsque le joueur s'arrête à la dernière gare du chemin et débarque ses passagers | |
![]() |
Choisissez l'action Arrêt à la dernière gare. |
| Embarquer des passagers (si le service du joueur prévoit des arrêts) se déclenche lorsque le joueur embarque les passagers | |
![]() |
Choisissez l'action Embarquer des passagers |
![]() |
L'editeur demande la confirmation du quai, cliquez sur OK |
![]() |
L'évènement contient maintenant la référence au quai où le joueur doit embarquer ses passagers. |
| Effectuer un chargement (si la route contient des points de chargement) se déclenche lorsque le joueur effectue le chargement sur le point de ravitaillement sélectionné (eau, charbon, fuel) | |
![]() |
Vérifiez dans le menu Affichage que l'option
'Points de chargement' est cochée Choisissez l'action Effectuer un chargement L'éditeur demande de choisir le point de chargement. Cliquez sur OK et sélectionnez en cliquant sur le symbole représentant le chargement à contrôler. |
![]() |
L'évènement contient maintenant la confirmation que le chargement est sélectionné.. |
| Atteindre la vitesse se déclenche que le train du joueur atteind la vitesse spécifiée | |
![]() |
L'éditeur demande de spécifier
la vitesse qui déclenchera cet évènement. On indique la vitesse et on répond OK à ce message. |
![]() |
Utilisation de la case à cocher 'Reversible' : |
|
Accrocher des voitures se déclenche
lorsque les voitures spécifiées ont été
accrochées dans un ordre quelconque au train du joueur |
|
![]() |
Choisissez l'action Accrocher des voitures, Constituer le train, Constituer le train sur place ou Abandonner les voitures sur place |
| Pour les actions Constituer le train sur place
et Abandonner les voitures sur plac, l'éditeur demande de choisir
une voie de garage Cliquez sur OK puis sélectionner le trait vert repésentant la voie de garage |
![]() |
![]() |
Cliquez sur le bouton Ajouter Pour les actions Constituer le train et Constituer le train sur place vous devez inclure en premier la locomotive ou le dernier wagon/voituredu train du joueur auquel vous accrocherez les voitures Si la voiture concernée fait partie du service du joueur vous devez au préalable exécuter la commande 'Option\Vérifier l'état initial' pour que le train du joueur soit affiché |
![]() |
Si vous sélectionnez une voiture qui ne se trouve pas sur une
voie de garage, l'éditeur vous demande de spécifier le
nom de l'emplacement. |
![]() |
Répétez l'opération 'Ajouter' autant de fois que nécessaire L'évènement ci-contre prévoit d'accrocher 2 wagons. Vous pouvez également supprimer une des voitures contenue dans
l'ordre : |
| Notez la différence entre Accrocher des voitures et Constituer le train : dans le premier cas, l'ordre dans lequel le joueur effectue l'opération n'est pas pris en compte pour que l'évènement se déclenche et dans le deuxième cas le joueur doit impérativement respecter l'ordre défini dans l'évènement pour que l'évènement se déclenche. | |
| Notez aussi que les actions Constituer le train et Constituer le train sur place nécessitent d'inclure en tête de liste des voitures à ajouter le matériel du train du joueur auquel seront accrochées les autres voitures (la loco si elle est seule ou le dernier wagon si la rame est déjà partiellement constituée). | |
| Enfin, l'action Constituer le train sur place se déclenchera lorsque le train sera formé dans l'ordre défini dans l'évènement ET que la rame se trouvera sur la voie de garage spécifiée, c'est à dire ENTRE les 2 traits verts matérialisant la voie de garage. | |
| Les manoeuvres et l'ordre se service | |
| Les évènements d'actions se rapportant aux manoeuvres se retrouvent dans le livret d'opérations (touche F11) / onglet ordre de service. | |
| Au fur et à mesure que vous menez à
bien les manoeuvres, les évènements sont considérés
comme terminés. A la fin de l'activité, l'onglet ordre de service doit présenté toutes les manoeuvres comme terminées. |
|
|
Dans la pratique, la gestion des évènements terminés
ou non terminés par TS semble un peu aléatoire. |
|
|
Action0 : Abandonner des voitures sur place. Action1 : Constituer le train (vous noterez que l'action
inclus la locomotive du 'Service du joueur'). |
 ![]() |
| Voici l'ordre de service au départ de l'activité | ![]() |
| Le même une fois le train constiué | ![]() |
| Puis à la fin de l'activité, après dépot du dernier wagon | ![]() |
![]() |
  On retrouve ici les textes "Abandon OK" et "Train OK" définis dans les évènements Ation0 et Action1 |
| La réversibilité des manoeuvres | |
|
La case à cocher 'Reversible' influe sur le comportement des évènements d'actions de manoeuvre. La première foit que le joueur accomplit correctement la manoeuvre définie dans l'évènement, l'ordre de service enregistre cette manoeuvre comme terminée, les réultats associées à cet évènement sont exécutés. (nous verrons dans le chapitre suivant comment définir les résultats), l'évaluation de l'activité contiendra le texte de la zone "Texte déclenché" de l'évènement. Supponsons maintenant que le joueur accomplisse la manoeuvre inverse
à celle définie dans l'évènement. Si vous laissez la case 'Reversible' non cochée, l'évènement restera terminé et les résultats seront conservés. Si vous cochez la case 'Reversible', l'évènement ne sera plus considéré comme ayant été réalisé et les résultats précédemment exécutés seront annulés. |
|
| Deuxième partie : La région Evènement | |
![]() |
Cette région est commune aux trois types d'évènements |
| Le niveau d'activation | |
|
Le niveau d'activation indique si l'évènement est actif
où non. |
|
|
Principe : |
|
| Exemple : Vous faites une activité où le joueur doit arriver à un lieu précis en 10 minutes maximum |
|
|
Vous définissez un évènement LIEU qui arrête
l'activité SANS succès avec un niveau d'activation = 0
(appelons cet évènement SANS) |
|
| Maintenant vous définissez un évènement
MOMENT qui se déclenche au bout de 10 minutes et qui a 2 résultats: Augmenter le niveau d'activation de SANS et diminuer le niveau d'activation de AVEC |
|
| Si le joueur arrive à LIEU en moins de 10 minutes, les évènements AVEC et SANS ne seront pas modifiés et c'est donc l'évènement AVEC succès se déclenchera. | |
|
Si le joueur arrive à LIEU en plus de 10 minutes, l'évènement
MOMENT se déclenchera à la 10ème minute et: |
|
| Texte déclenché - Texte non déclenché | |
![]() |
Ces deux zones influent sur le rapport d'évaluation de l'activité
obtenu lorsque l'on quitte l'activité La zone remarque est une zone de saisie libre |
![]() |
Voici un extrait d'un rapport d'évaluation détaillé de l'activité dans lequel les messages ont été consignés suite au déclenchement ou non des évènements |
| Troisième partie : La région des résultats | |
| Nous avons vus dans les 2 chapitres précédents
que pour qu'un évènement se déclenche dans TS : - la condition définie dans la partie haute des paramètres de l'évènement doit être réalisée, - l'évènement doit être actif lorsque la condition se réalise: son niveau d'activation doit être supérieur ou égal à 1. |
|
| Regardons maintenant comment définir les résultats.. | |
| Les résultats correspondent à la partie ALORS de la structure SI - ALORS, ils définissent ce que le moteur doit exécuter lorsque l'évènement se produit | |
![]() |
Vous indiquez d'abord dans la zone avec ascenseur le nombre de résultats que vous souhaitez et vous verrez alors autant d'onglets résultats numérotés 0,1,2,..... Remarquez que quel que soit l'évènement que vous créez, par défaut, le résultat du premier onglet contient 'Achevez l'activité avec succès'. Ne vous faites pas piéger en oubliant de modifier ce résultat... |
| Vous définissez ensuite pour chacun des onglets de résultat ce que TS va exécuter si l'évènement se déclenche. | |
| Aucun | |
![]() |
L'evènement ne produit aucun résultat. Vous pouvez utiliser ce résultat pour renseigner l'ordre de service du joueur si votre activité prévoit des manoeuvres, vous pouvez aussi utiliser ce résultat pour alimenter le rapport d'évaluation de l'activité en fonction de l'évènement, etc. |
| Augmenter de un le niveau d'activation
d'un évènement Diminuer de un le niveau d'activation d'un évènement Activer un évènement Rétablir le niveau d'activation : valeur d'origine |
|
|
|
Nous avons vu plus haut comment fonctionnait le niveau d'activation
d'un évènement de façon à le rendre actif
ou inactif, En choisissant un de ces 4 résultats, la zone Evènement devient accessible et vous propose la liste des évènements déjà créés. |
| Achever l'activité avec
succès Mettre fin à l'activité sans succès |
|
![]() |
Ces deux résultats mettent tous deux fin à l'activité Le premier affiche "Activité achevée" et inscrit
dans le rapport d'évaluation "Vous avez mené cette
activité à bien ..." Si l'évènement exécute plusieurs résultats, la fin de l'activité doit se trouver dans le dernier onglet de résultat. |
| Afficher un message | |
![]() |
Ce résultat rend actif le bouton 'Editer message' |
| Ne plus tenir compte des limites
de vitesse Tenir compte à nouveau des limites de vitesse |
|
![]() |
Malgré plusieurs tests, je n'ai pas trouvé le mode de fonctionnement de ces deux résultats. Si vous avez l'explication, contactez-moi! |
| Renommer, modifier et supprimer les évènements | |
| Pour terminer ce tutoriel, il nous reste à
voir comment renommer, modifier ou supprimer un évènement. Ces opérations s'effectuent à partir des fenêtres Evènements. |
|
![]() |
Par défaut, l'éditeur de mode nomme vos évènements
Action0, Action1 ou Lieu0, Lieu1 ou Moment0, Moment1, ... Vous double-cliquez sur l'évènement que vous souhaitez renommer |
![]() |
Vous avez alors une fenêtre pour donner un nom explicite |
![]() |
Pour modifier ou supprimer un évènement vous cliquez droit sur l'év_nement pour ouvrir le menu contextuel - Propriétés : affiche la fenêtre des propriétés de l'évènement - Supprimer : Supprime l'évènement. |
| A vous de jouer | |
| Voici un exercice que vous pouvez essayer de réaliser par vous même : |
Contrôle de la vitesse du
joueur sur une portion de route.
|
| Il s'agit de contrôler la vitesse du joueur
uniquement sur une portion de parcours, indépendemment des limites
de vitesses de la route Vous préviendrez le joueur un peu avant cette zone qu'il doit réduire sa vitesse puis vous activerez le contrôle dès qu'il entrera dans la zone. Vous lui laisserez 2 possibilités de dépassement, à la troisième, vous arrêterez l'activité sans succès . A la sortie de la zone contrôlée, vous désactiverez ce contrôle. Vous devrez garder des traces dans le rapport d'évaluation de l'activité du respect ou du non respect de la vitesse par le joueur. |
|
![]() |
|
|
Si vous ne voyez pas encore comment réaliser cet exercice, voici une piste avec 5 évènements : PREVENIR LIMITE VITESSE : affiche un message d'alerte |
|
| Dans la pratique, il faut définir en premier les évènements qui seront activés ou désactivés par les autres évènements | |
| ARRETER ACTIVITE On définit un évènement ACTION qui contrôle la vitesse MAIS qui n'est pas actif au départ de l'activité SI le joueur dépasse 30 km/h ALORS on arrête l'activité Niveau d'activation = -1 : le niveau sera incrémenté (+1) si le joueur dépasse la vitesse maxi par l'évènement CONTROLER VITESSE. Au premier dépassement de la vitesse l'évènement CONTROLER VITESSE incrémente le niveau d'activation qui passe de -1 à 0 : ARRETER ACTIVITE n'est pas encore actif. Au deuxième dépassement de la vitesse l'évènement CONTROLER VITESSE incrémente le niveau d'activation qui passe de 0 à 1 : ARRETER ACTIVITE devient actif. Au troisième dépassement de vitesse l'evènement ARRETER ACTIVITE se déclenche et arrête l'activité. |
|
| CONTROLER VITESSE On définit un évènement ACTION qui contrôle la vitesse MAIS qui n'est pas actif au départ de l'activité SI le joueur dépasse 31 km/h ALORS on affiche un message pour le rappeler à l'ordre ET on incrémente l'évènement ARRETER ACTIVITE Niveau d'activation = 0 : le niveau sera incrémenté (+1) lorsque le joueur atteindra la zone sous contrôle par l'évenement ACTIVER CONTROLE VITESSE et sera désactiver à la sortie (-1) par l'évènement DESACTIVER CONTROLE VITESSE. |
|
| PREVENIR LIMITE VITESSE On définit un évènement LIEU pour prévenir le joueur de la limitation de vitesse SI le joueur approche de la zone contrôlée ALORS on affiche un message le prévenant que la zone va être limitée Niveau d'activation = 1 : l'évènement est actif dès le début de l'activité |
|
| ACTIVER CONTROLE VITESSE On définit un évènement LIEU qui active le contrôle de la vitesse SI le joueur entre dans la zone contrôlée ALORS on active l'évènement contrôle de la vitesse Niveau d'activation = 1 |
|
|
DESACTIVER CONTROLE VITESSE |
|
|
Voilà, nous avons fait un tour complet
de la gestion des évènements dans l'éditeur de
mode.
|
|
|
|
|