Bandeau Xylak
Bandeau LOCUS SOLUTUS
Bandeau arc-en-ciel
    Brimborions
     xylakaviens
fbNauvatag
xyljack.net


Oyiwen ed tanemert_______ Page mise à jour le 1er janvier 2024 vers 08h20 TUC    

 

Le fichier itr.tut

Retour au SOMMAIRE

Ce fichier contient une suite d'instructions permettant d'afficher des messages, jouer des fichiers .wav, changer de vue, etc. pendant le déroulement d'une activité ITR.

On trouvera ci-dessous
A  les principales particularités de ce fichier ;
B  la liste des instructions testées (classées par catégories) ;
C  une présentation plus détaillée de chaque instruction (classement alphabétique).


A  Principales particularités du fichier

Pour éviter l'impression de traverser à l'aveuglette la liste des particularités, commençons par un extrait commenté :

# ZEEWAARTS <07:00:00>ligne de commentaire (ignorée lors de l'exécution)
LOAD_SMS Messages_Z.smslit le fichier SMS contenant la liste des fichiers .wav à jouer
TEXT " départ imminent. bonne chance !" 10texte à afficher pendant 10 secondes
WAIT SECS 5attend 5 secondes
PLAY_WAVE 1joue le fichier .wav placé en Discrete_Trigger 1
WAIT SECS 15 
PLAY_METHOD "show_train_operations"ouvre la fenêtre [F9] (opérations ferroviaires)
TEXT " <!> Fixez la caméra de recul sur le wagon 0-3." 10 
PLAY_METHOD "set_headlights" 0met les feux à l'état [ARRÊT]
WAIT SECS 40 
PLAY_METHOD "hide_train_operations"ferme la fenêtre [F9]
SET_CAMERA "camera_passengers"passe en caméra passager (vue 5)
WAIT VARIABLE "variable_speed" 1 0.5 -1attend que la rame soit presque arrêtée
TEXT " arrêt au poste de contrôle." -1texte à afficher sans limite de temps

Remarque préalable : les indications données ci-dessous proviennent essentiellement d'observations et d'essais ;
  • leur choix est en partie subjectif (ainsi qu'on le verra notamment à propos de l'instruction PLAY_METHOD "set_...") ;
  • leur effet peut varier (surtout pour les réactions en cas d'erreur) d'une configuration à l'autre (taille de la mémoire disponible, présence ou absence de Bin) ;
elles devraient malgré tout pouvoir offrir une base utilisable par toutes.

  1.   Il ne peut exister qu'un fichier actif à la fois pour toute l'instance de MSTS ; c'est lui qui sera utilisé, quelle que soit l'activité ITR lancée ; il faut donc gérer la rotation de ce fichier si l'on a plus d'une activité ITR, même dans des lignes différentes ;
    •  contrairement aux fichiers .act ou .eng, il suffit de changer le nom du fichier Itr.tut pour que MSTS l'ignore ; un utilitaire peut faciliter cette gestion ;
    •  la présence d'un sous-répertoire \TUTOR (notamment quand l'Extracteur de géométrique crée une ligne nouvelle) pourrait donner à penser qu'il est possible d'y placer un fichier Itr.tut propre à la ligne (comme MSTS va chercher un fichier SMS dans le répertoire \Sound de la ligne avant d'aller voir dans le fichier \SOUND global) ; mais divers essais pour utiliser un fichier autre que le \Global\Itr.tut ont échoué.
  2.   l'existence des fichiers Itr.tut et Itr.kst (même vides) peut être obligatoire pour qu'une activité ITR puisse démarrer ; dans d'autres cas, MSTS se contente d'afficher un message signalant leur absence ;

    si le fichier contient une erreur, celle-ci est indiquée au lancement par un message détaillé ; on peut alors continuer l'activité (sans l'exécution du fichier Itr.tut, bien sûr) ; toutefois, il peut aussi arriver qu'un fichier corrompu empêche le lancement de toute activité ITR.


  3.   Ce fichier a un format particulier : comme la grande majorité des textes de MSTS, il est en Unicode 16, mais sans l'en-tête habituel, du genre SIMISA@@@@@@@@@@JINX0h0t______ ; cette absence augmente les risques d'erreur sur le format ;
    NB- il partage cette particularité avec les fichiers de bilan d'activité \saves\NomLigne\*EvalDet.rtf (dont l'extension incongrue est une bizarrerie supplémentaire).
  4.   Le fichier est composé de deux sortes d'instructions :
    Ⓐ  les commandes à exécuter (LOAD_SMS, TEXT, SET_CAMERA , etc.)
    Ⓑ  les indications de chronologie (WAIT , avec ses diverses variantes).

    Le système s'apparente donc aux événements-temps d'une activité jouable  mais avec une différence importante : pour les événements-temps, l'indication horaire donnée (et utilisée par MSTS) est le nombre de secondes depuis le début de l'activité ; dans le fichier Itr.tut, la lecture est purement séquentielle et l'on aura (si l'activité commence à 7 h)

    TEXT " départ imminent." 10affiché de 07:00:00 à 07:00:10
    WAIT SECS 5attend de 07:00:00 à 07:00:05
    PLAY_WAVE 1joué à 07:00:05
    WAIT SECS 15attend de 07:00:05 à 07:00:20
    PLAY_METHOD "show_train_operations"      exécuté à 07:00:20

    La simple lecture de l'horaire utilisé dans un tel fichier n'est donc pas immédiate, et on peut avoir besoin d'un utilitaire pour passer d'une chronologie à l'autre.


  5.   Il est donc possible de transposer en ITR les événements-temps ; mais l'émulation d'un événement-lieu n'est envisageable que s'il a l'option Arrêt obligatoire  (voir ci-dessous WAIT VARIABLE "variable_speed").
  6.   Si la dernière instruction du fichier est du type SET_CAMERA  ou PLAY_METHOD , on obtient un message d'erreur au lancement et le fichier Itr.tut est ignoré ; c'est pourquoi il est prudent de toujours laisser une ligne TEXT "" 0 en fin de fichier.
  7.   À côté d'Itr.tut, on trouve un fichier Itr.kst. Son extension et les messages d'erreur le concernant laissent à penser qu'il était destiné à contenir la définition d'ensembles de touches ; mais le seul exemple connu est celui qui est créé lors de l'installation de MSTS, et le fichier est totalement vide.

B  Instructions (classées par catégorie)
NB- seul le libellé de l'instruction apparaît ici. La liste alphabétique composant la troisième partie de cette page renseigne sur les paramètres et leur utilisation.

  1.   Chronologie
    WAIT SECSattendre n secondes
    WAIT VARIABLEattendre que telle variable atteigne telle valeur
    WAIT CAMERAattendre que l'acolyte ait choisi telle vue
    WAIT CONTROL_SETTINGattendre que l'acolyte ait utilisé telle commande

  2.   Messages visuels et sonores
    TEXTafficher un texte (pendant un temps fixé ou indéfini)
    LOAD_SMSfixer le fichier SMS contenant la liste des fichiers utilisés
    PLAY_WAVEjouer un fichier .wav

  3.   Vues et fenêtres
    SET_CAMERAfixer la vue (cabine, passager, etc.)
    PLAY_METHOD "show|hide"ouvrir ou fermer une fenêtre (horaire, aiguilles, rame, etc.)
    HIGHLIGHT_DISPLAYencadrer une commande

  4.   Commandes
    PLAY_METHOD "set"gérer les feux, les avertisseurs, le pantograhe, etc.
    exécuter diverses commandes moteur ou spécifiques aux locomotives à vapeur
  5.   Clavier
    DISABLEdésactiver une ou toutes les touches
    ENABLEréactiver une touche

  6.   Commentaires
    #ligne de texte ignorée à l'exécution

C  Présentation détaillée des instructions (dans l'ordre alphabétique)
LégendeINSTRUCTION et élément fixe (par exemple les guillemets)
paramètre libre  §§ - texte
   % - valeur numérique
paramètre à choisir dans une liste
paramètre incertain
 explications
comme d'habitude,[ ]encadre un élément facultatif
|sépare les éléments d'une liste dont un doit être retenu.

Remarque préalable : seuls les paramètres jugés utiles sont présentés ci-dessous ; on pourra se reporter à l'annexe Ⓐ   de la dernière page  [⇒] pour trouver l'ensemble des paramètres disponibles pour chaque instruction.

#   [§§]

La ligne est ignorée à l'exécution ; il semble que l'on puisse aussi placer # à l'intérieur d'une ligne pour transformer la fin de la ligne en commentaire.


DISABLE   CameraHeadOut|Camera_FrontTracking|…|All

Désactive une touche (ou toutes les touches avec All) ; une touche de commande désactivée n'aura plus d'effet si l'acolyte l'utilise.

Dans la plus pure tradition Microsoft®, le fichier Itr.tut d'origine commence par DISABLE All puis consacre plus de trente lignes à réactiver chacune des touches dont l'acolyte aura quand même besoin.

On ne trouvera ci-dessous que les mots-clés permettant d'empêcher l'utilisation des vues extérieures :

Camera_FrontTrackingvue [2]
Camera_RearTrackingvue [3]
Camera_Trainspottervue [4]
CameraCouplingvue [6]
CameraYardMastervue [7]
CameraHeadOutvue [↑]

L'annexe Ⓐ   de la dernière page  [⇒] contient une liste complète des paramètres possibles.


ENABLE   CameraHeadOut|Camera_FrontTracking|…|All

Réactive une touche (ou toutes) ; cf. l'instruction précédente.


HIGHLIGHT_DISPLAY  "train_brake|clock|…" 0|1

Si le chiffre est 1, trace un cadre autour de l'élément indiqué (ici, le frein de train ou la pendule) ;

si le chiffre est 0, le cadre est effacé.

L'utilité de cette instruction paraît limitée, en dehors des didacticiels maison (voir dans l'annexe Ⓒ   de la dernière page  [⇒] la présentation de ce type particulier d'activités).


LOAD_SMS §§.sms

Instruction à placer au début du fichier Itr.tut pour indiquer quel fichier .sms contient la liste des fichiers .wav à utiliser (inutile si le fichier Itr.tut ne contient aucune instruction PLAY_WAVE).

Pour plus de précisions sur ce fichier, se reporter à l'annexe Ⓑ   de la dernière page  [⇒].


PLAY_METHOD ordre_

Cette instruction, qui permet de donner divers ordres à la rame, présente de nombreuses variantes ; sa syntaxe dépend notamment du premier paramètre ; nous regrouperons donc ses emplois selon la nature de ce premier paramètre :


PLAY_METHOD "show_|hide_fenêtre"

Ouvre ou ferme une fenêtre du tableau de bord ; les principales possibilités sont

"show_track_profile"ouvre la fenêtre [F4]
"show_points_indicator"ouvre la fenêtre [F8]
"show_train_operations"ouvre la fenêtre [F9]
"show_timetable"ouvre la fenêtre [F10]
"show_note_book"ouvre la fenêtre [F11]
NB1- "hide_note_book" semble sans effet ; il faut refermer la fenêtre en appuyant sur [F11] ;
NB2- pour disposer d'une fenêtre dès le lancement de l'activité, il faut en programmer l'ouverture au début du fichier ;
NB3- l'acolyte peut également modifier l'état des fenêtres, si les touches [Fx] correspondantes n'ont pas été désactivées ;
NB4- il existe d'autres paramètres possibles, comme "show_next_signal_display", mais leur effet n'est pas évident.

PLAY_METHOD "set_headlights|set_bell_on|…" état

Modifie une commande :

"set_headlights"0
1
2
met les feux à l'état [ARRÊT]
       [RÉDUIRE]
       [COMPLET]

On notera que les états 0,1 et 2 sont codés respectivement 1, 2 et 3 dans les fichiers .wag  ou .eng .

"set_horn_or_whistle_on"met l'averisseur sonore en marche
"set_horn_or_whistle_off"arrête l'averisseur sonore
"set_bell_on"met la cloche en marche
"set_bell_off"arrête la cloche

Il existe d'autres paramètres correspondant à des commandes diverses :
"set_pantograph_up","set_pantograph_down","set_direction" 1
mais ils ne semblent pas influer sur le comportement de la rame.

De plus, il existe toute une série de commandes propres aux locomotives à vapeur, qui n'ont pas été testées ; il n'est donc pas impossible que certaines d'entre elles aient un effet sur la marche de la locomotive.


PLAY_WAVE %

Joue le fichier dont le nom correspond, dans le fichier chargé par LOAD_SMS, au Discrete_Trigger ( % . Voir plus de détails dans l'annexe Ⓑ   de la dernière page  [⇒].

Cette instruction comble une lacune des événements dans les activités jouables qui peuvent afficher un message, mais pas jouer un fichier-son.


SET_CAMERA "camera_cabview|…"

Fixe la vue utilisée :

"camera_cabview"vue [1] (cabine)
"camera_front_tracking"vue [2] (extérieur avant)
"camera_rear_tracking"vue [3] (extérieur arrière)
"camera_trainspotter"vue [4] (poursuite)
"camera_passenger"vue [5] (passager)
"camera_coupling"vue [6] (attelage)
"camera_yard_master"vue [7] (environnement)
"camera_headout"vue [↑] (tête dehors)
NB- Cette dernière instruction correspond toujours à la touche [↑], c'est-à-dire une vue initiale vers l'avant ; il ne semble pas y avoir d'équivalent de la touche [↓], vers l'arrière.

TEXT "§§" %

Cette instruction affiche le texte dans un bandeau noir en haut de l'écran ; ce texte (en police à espacement fixe) peut s'étendre sur deux lignes d'environ 70 caractères chacune ; les caractères de contrôle ne sont pas reconnus.

Le nombre qui suit le texte indique pendant combien de secondes le bandeau doit rester affiché ; comme on a pu le voir précédemment, ce temps n'intervient pas dans la chronologie ; si l'on met cette valeur à -1, le texte reste affiché jusqu'à l'instruction TEXT suivante.

Ici encore, on peut apprécier un système qui n'occupe pas les trois quarts de l'écran et, surtout, ne gèle pas image et sons jusqu'à ce qu'on ait appuyé sur [Échap].


WAIT CAMERA "Camera_CabView|" %%

Attend que l'acolyte ait choisi la vue du premier paramètre (même liste que pour SET_CAMERA) ou bien passe à la suite au bout de % secondes.

NB- Toute cette série d'instructions WAIT (sauf WAIT SECS) se termine par un nombre qui est tantôt 1, tantôt 0, tantôt -1. Effet inconnu.

WAIT CONTROL_SETTING " qualify_horn_or_whistle|" %1  %2  %3  %4

Attend que l'acolyte ait manœuvré la commande indiquée dans le premier paramètre. Quelques valeurs possibles :

"qualify_direction"levier de direction
"qualify_throttle"accélérateur
"qualify_train_brake"frein de train
"qualify_pantograph"pantographe
"qualify_bell"avertisseurs sonores
"qualify_horn_or_whistle"
%1  %2apparemment, valeur d'origine et valeur finale ; seul horn_or_whistle a été testé ; le résultat est celui qu'on peut attendre avec 1 0 ou 1 1, mais l'instruction semble ignorée avec 0 1 et 0 0
%3passe à la suite au bout de %3 secondes si la condition précédente n'est pas remplie ;
-1 attend indéfiniment que la condition précédente soit remplie.
%4effet inconnu

WAIT SECS %

Laisse passer % secondes avant de permettre l'exécution de l'instruction qui suit ; la chronologie s'établit d'une instruction WAIT à la suivante, sans tenir compte du temps pris par l'exécution des autres instructions (texte affiché, fichier .wav, etc.).

Tout comme l'horaire des rames de trafic, la chronologie des WAIT SEC est immuable ; si leur suite fait klaxonner à 7 h 9 mn 45 s, on entendra le klaxon à 7 h 9 mn 45 s à chaque fois qu'on exécutera l'activité ; mais si ce coup de klaxon est censé répondre à un panneau [Klaxonner], il se peut que la rame tantôt soit encore nettement en amont du panneau, tantôt l'ait dépassé depuis un certain temps. D'où l'intérêt de l'instruction suivante pour réharmoniser les chronologies.


WAIT VARIABLE "variable_speed|"  %1  %2  %3

Attend que la variable indiquée par le premier paramètre ait atteint la valeur %1.

Les essais n'ont porté que sur "variable_speed" (réagissant à la vitesse), avec les observations suivantes :

On peut ainsi remplacer un événement-lieu avec Arrêt obligatoire  par   WAIT VARIABLE "variable_speed"  1  0.5  -1  .

NB1- les exemples fournis par les didacticiels ont  10  9.8  -1  pour l'activité diésel,  20  18  -1  pour l'électrique et  2  1  -1  pour la vapeur ; mais les tests n'ont pas été concluants.
NB2- l'usage alterné de WAIT VARIABLE "variable_speed" et WAIT_SECS permet d'arriver à une synchronisation relativement sûre, malgré les variations de durée d'un même trajet.

Comme on peut le voir, le fichier Itr.tut offre un ensemble de commandes assez riche et varié pour permettre la réalisation de projets assez élaborés.


Ici s'achève cette présentation des Introductory Train Rides . Puisse-t-elle contribuer, même très modestement, à la découverte de ce vieux MSTS. Que l'on en fasse une bande-annonce de sa ligne, un simulateur de simulateur pour une activité difficile ou une vidéo-comme-sur-YouTube (mais qui ne sera jamais deux fois de suite exactement la même, la fantaisie du programme et RandomSelection  en sont la garantie), ces Voyages de présentation  valent bien un détour.



Plan du site & Mentions légales_._Site éclos sur Skyrock, développé avec Axiatel et mûri sur Strato.com_._© 2015-2024 - XylonAkau