Chapitre 15 Cabine de conduite

Open Rails cabine de conduite


OR prend en charge les cabines 2D compatibles MSTS ainsi que les cabines 3D natives, même sur la même locomotive.


Pour une liste complète des paramètres, voir Développement de contenu OU - Paramètres et jetons


15.1 Cabine de conduite 2D


OU prend en charge avec un haut degré de compatibilité toutes les fonctions disponibles dans MSTS pour les cabines 2D, et fournit quelques améliorations significatives décrites dans les paragraphes suivants.


15.1.1 Indicateur de vitesse circulaire ETCS



Vous pouvez ajouter à la cabine un indicateur de vitesse circulaire conformément au système de contrôle des trains standard européen ETCS.

Pour les développeurs de contenu


La jauge est ajoutée par l'insertion d'un bloc comme celui-ci dans le fichier .cvf :


Digital (

Type ( SPEEDOMETER DIGITAL )

Style ( NEEDLE )

Position ( 160 255 56 56 )

ScaleRange ( 0 250 )

Units ( KM_PER_HOUR )

)


Il est également possible d'afficher l'affichage ETCS complet en utilisant à la place le bloc suivant :


ScreenDisplay (

Type ( ORTS_ETCS SCREEN_DISPLAY )

Position ( 280 272 320 240 )

Units ( KM_PER_HOUR )

Parameters (

Mode FullSize

)

)


The following DMI size variants are available: FullSize (displays the whole DMI), SpeedArea (displays only the left part with information about distance and speed) and PlanningArea (displays only the planning area and navigation buttons).


The information displayed in the DMI is controlled via the TCS script. For more details, see C# engine scripting - Train Control System.


15.1.2 Coupe-batterie


Le coupe-batterie contrôle l'alimentation basse tension de la locomotive.


Les commandes suivantes sont disponibles pour la cabine :


• ORTS_BATTERY_SWITCH_COMMAND_SWITCH peut être utilisé si l'interrupteur est commandé directement depuis la cabine


• ORTS_BATTERY_SWITCH_COMMAND_BUTTON_CLOSE et ORTS_BATTERY_SWITCH_COMMAND_BUTTON_OPEN peuvent être utilisés si l'interrupteur est commandé avec deux boutons poussoirs (un pour fermer l'interrupteur et l'autre pour l'ouvrir)


• ORTS_BATTERY_SWITCH_ON peut être utilisé pour contrôler une lumière sur la cabine indiquant l'état du coupe-batterie


D'autres commandes peuvent être désactivées si l'alimentation basse tension n'est pas disponible à l'aide du paramètre suivant :


TwoState (

Type ( ORTS_CIRCUIT_BREAKER_CLOSED TWO_STATE )

...

DisabledIfLowVoltagePowerSupplyOff ( 1 )

)


Par défaut, le contrôle cabview sera complètement caché. Vous pouvez également définir une valeur spécifique pour le contrôle lorsqu'il est désactivé :


TwoState (

Type ( SPEEDOMETER DIAL )

...

DisabledIfLowVoltagePowerSupplyOff ( 1 )

HideIfDisabled ( 0 )

ValueIfDisabled ( 0 )

)


15.1.3 Passe-partout


La clé principale contrôle l'alimentation électrique de la cabine.


Les commandes suivantes sont disponibles pour la cabine :


• ORTS_MASTER_KEY peut être utilisé pour contrôler la clé principale


• ORTS_CURRENT_CAB_IN_USE peut être utilisé pour indiquer que la cabine actuelle est active


• ORTS_OTHER_CAB_IN_USE peut être utilisé pour indiquer qu'un autre taxi du train est actif


D'autres commandes peuvent être désactivées si l'alimentation de la cabine n'est pas disponible à l'aide du paramètre suivant :


TwoState (

Type ( ORTS_CIRCUIT_BREAKER_CLOSED TWO_STATE )

...

DisabledIfCabPowerSupplyOff ( 1 )

)


Par défaut, le contrôle cabview sera complètement caché. Vous pouvez également définir une valeur spécifique pour le contrôle lorsqu'il est désactivé :


TwoState (

Type ( SPEEDOMETER DIAL )

...

DisabledIfCabPowerSupplyOff ( 1 )

HideIfDisabled ( 0 )

ValueIfDisabled ( 0 )

)


15.1.4 Maintien du service


Le maintien en service peut être utilisé pour désactiver une cabine sans couper l'alimentation du train. Il ne peut être utilisé qu'avec un script d'alimentation utilisant cette fonctionnalité.


Les commandes suivantes sont disponibles pour la cabine :


• ORTS_SERVICE_RETENTION_BUTTON peut être utilisé afin d'activer la rétention de service


• ORTS_SERVICE_RETENTION_CANCELLATION_BUTTON peut être utilisé pour annuler la rétention du service


15.1.5 Alimentation des trains électriques


L'alimentation du train électrique contrôle la ligne électrique qui alimente les voitures particulières en électricité.


Les commandes suivantes sont disponibles pour la cabine :


• ORTS_ELECTRIC_TRAIN_SUPPLY_COMMAND_SWITCH peut être utilisé pour contrôler le commutateur d'alimentation du train électrique


• ORTS_ELECTRIC_TRAIN_SUPPLY_ON peut être utilisé pour indiquer que la ligne d'alimentation du train électrique est sous tension


15.1.6 Commandes pour allumer et éteindre les moteurs diesel


Les touches du clavier pour allumer et éteindre les moteurs diesel sont les suivantes :


• Ctrl+Y allume et éteint le premier moteur diesel de la locomotive du joueur


• Shift+Y allume et éteint les autres moteurs diesel de la locomotive du joueur, ainsi que tous les moteurs diesel des autres locomotives du train, s'ils sont MU (c'est-à-dire sous le contrôle de la locomotive du joueur), ce qui est la valeur par défaut.


Les commandes de cabine suivantes sont disponibles :


ORTS_PLAYER_DIESEL_ENGINE : le premier cadre est affiché lorsque le moteur diesel de la locomotive du joueur est dans les états arrêté ou à l'arrêt, tandis que le deuxième cadre est affiché lorsqu'il est dans les états en marche ou démarré. La commande peut être utilisée avec la souris et démarre/arrête le (premier) moteur diesel de la locomotive du joueur, et est utile lorsqu'un seul levier à deux états est utilisé pour démarrer/arrêter le moteur.


Example:


TwoState (

Type ( ORTS_PLAYER_DIESEL_ENGINE TWO_STATE)

Position ( 150 446 27 26 )

Graphic ( graphic1.ace )

NumFrames ( 2 2 1 )

Style ( ONOFF )

MouseControl ( 1 )

)


ORTS_HELPERS_DIESEL_ENGINES : le premier cadre est affiché lorsque d'autres moteurs diesel de la locomotive du joueur et/ou les moteurs diesel des locomotives d'assistance sont à l'arrêt ou à l'arrêt, tandis que le deuxième cadre est affiché lorsqu'ils sont à l'état de marche ou de démarrage. La commande peut être utilisée avec la souris et démarre/arrête d'autres moteurs diesel de la locomotive du joueur et les moteurs diesel des locomotives d'assistance, et est utile lorsqu'un bouton ou un levier à deux états est utilisé. Notez donc que ce


La commande peut également être utilisée pour les locomotives de joueur avec plus d'un moteur.


Example:


TwoState (

Type ( ORTS_HELPERS_DIESEL_ENGINES TWO_STATE)

Position ( 190 446 27 26 )

Graphic ( graphics2.ace )

NumFrames ( 2 2 1 )

Style ( ONOFF )

MouseControl ( 1 )

)


ORTS_PLAYER_DIESEL_ENGINE_STATE : cette commande sélectionne respectivement les trames 0, 1, 2, 3 pour les états du moteur de la locomotive du joueur Arrêté, Démarrage, Marche et Arrêt. Il s'agit d'un contrôle d'affichage uniquement.


Example:


MultiState (

Type ( ORTS_PLAYER_DIESEL_ENGINE_STATE TRI_STATE)

Position ( 270 446 39 40 )

Graphic ( cd_363_zberace.ace )

NumFrames ( 4 4 1 )

Style ( NONE )

MouseControl ( 1 )

Orientation ( 0 )

DirIncrease ( 1 )

)


ORTS_PLAYER_DIESEL_ENGINE_STARTER : il affiche la deuxième image lorsque le moteur diesel du joueur est en état de démarrage, et la première dans tous les autres cas. Il peut être utilisé avec la souris et ne peut démarrer que le moteur, il est donc utile en conjonction avec ORTS_PLAYER_DIESEL_ENGINE_STOPPER lorsque le démarrage et l'arrêt du moteur se font avec des commandes séparées (par exemple 2 boutons).


Example:

TwoState (

Type ( ORTS_PLAYER_DIESEL_ENGINE_STARTER TWO_STATE)

Position ( 310 446 27 26 )

Graphic ( graphics3.ace )

NumFrames ( 2 2 1 )

Style ( PRESSED )

MouseControl ( 1 )

)


ORTS_PLAYER_DIESEL_ENGINE_STOPPER : il affiche la deuxième image lorsque le moteur diesel du joueur est en état d'arrêt, et la seconde dans tous les autres cas. Il peut être utilisé avec la souris et il ne peut qu'arrêter le moteur, il est donc utile lorsque le démarrage et l'arrêt du moteur se font avec des commandes séparées (par exemple 2 boutons).


Example:


TwoState (

Type ( ORTS_PLAYER_DIESEL_ENGINE_STOPPER TWO_STATE)

Position ( 350 446 27 26 )

Graphic ( Bell.ace )

NumFrames ( 2 2 1 )

Style ( PRESSED )

MouseControl ( 1 )

)


15.1.7 Radio cabine


OR prend en charge le contrôle de la cabine radio de la cabine. L'appui sur les touches Alt+R allume et éteint la radio de la cabine. L'activation et la désactivation de la radio de la cabine active les déclencheurs sonores discrets 162 et 163, comme expliqué ici. Voici un exemple de bloc radiocommande cabine dans le fichier .cvf :


TwoState (

Type ( CAB_RADIO TWO_STATE )

Position ( 150 425 30 21 )

Graphic ( Horn.ace )

NumFrames ( 2 2 1 )

Style ( ONOFF )

MouseControl ( 1 )

)


15.1.8 éclairage de la cabine


OR prend en charge le contrôle de la cabine lumineuse de la cabine. L'appui sur la touche L allume et éteint l'éclairage de la cabine dans les mêmes conditions applicables au MSTS. L'allumage et l'extinction de l'éclairage de la cabine active le déclencheur sonore discret 161, comme expliqué ici. Voici un exemple de bloc de commande d'éclairage de cabine dans le fichier .cvf :


TwoState (

Type ( ORTS_CABLIGHT TWO_STATE )

Position ( 120 425 30 21 )

Graphic ( Horn.ace )

NumFrames ( 2 2 1 )

Style ( ONOFF )

MouseControl ( 1 )

)


15.1.9 Boutons dédiés aux contrôleurs de frein


En plus de la commande clavier BailOff, un contrôle cabview nommé ORTS_BAILOFF est disponible. Il est utilisé pour desserrer les freins du moteur tout en maintenant les freins du train appliqués.


Dans certains contrôleurs de frein, il y a un bouton qui permet un desserrage complet et rapide du frein de train lorsqu'il est pressé. OR prend en charge cela via le contrôle cabview ORTS_QUICKRELEASE.


Certains contrôleurs de frein ont un bouton dédié pour surcharger la conduite de frein. Le contrôle cabview ORTS_OVERCHARGE peut être utilisé à cette fin.


Voici un exemple de l'un de ces contrôles dans le fichier .cvf :


TwoState (

Type ( ORTS_BAILOFF TWO_STATE )

Position ( 120 425 30 21 )

Graphic ( BailOff.ace )

NumFrames ( 2 2 1 )

Style ( PRESSED )

MouseControl ( 1 )

)


15.1.10 Commande de freinage de traction signée


Cette commande de cabine affiche la valeur signée de la force (+ve ou -ve, c'est-à-dire de traction ou due au freinage dynamique) telle qu'affichée dans de nombreuses cabines de locomotives réelles. Le contrôle est ORTS_SIGNED_TRACTION_BRAKING. À titre de comparaison, le contrôle cabview TRACTION_BRAKING compatible MSTS affiche la valeur absolue de la force. Voici un exemple de bloc de commande d'éclairage de cabine dans le fichier .cvf :


Dial (

Type ( ORTS_SIGNED_TRACTION_BRAKING DIAL )

Position ( 319 223 3 32 )

Graphic ( ../../Common.Cab/CabE464/AgoDin.ace )

Style ( NEEDLE )

ScaleRange ( -761 1600 )

ScalePos ( 190 70 )

Units ( AMPS )

Pivot ( 36 )

DirIncrease ( 0 )

)


15.1.11 Commande de freinage total de traction signée


La commande ORTS_SIGNED_TRACTION_TOTAL_BRAKING se comporte et est définie comme ORTS_SIGNED_TRACTION_BRAKING, à la seule différence que la force de freinage inclut également la force de freinage du train en plus de la force de freinage dynamique.


15.1.12 Commandes du compteur kilométrique


Les commandes de cabine suivantes sont disponibles :


• ORTS_ODOMETER : utilisé pour afficher numériquement la valeur de l'odomètre


• ORTS_ODOMETER_RESET : utilisé pour réinitialiser l'odomètre


• ORTS_ODOMETER_DIRECTION_CHANGE : permet de changer le sens (haut/bas) de l'odomètre.


Les unités de mesure suivantes sont disponibles pour ORTS_ODOMETER :


• KILOMÈTRES


• MÈTRES


• MILLES


• PIEDS


• CHANTIERS


Le fonctionnement du compteur kilométrique est expliqué ici.


Voici un exemple d'utilisation des blocs de contrôle du compteur kilométrique au sein d'un fichier .cvf :


TwoState (

Type ( ORTS_ODOMETER_RESET TWO_STATE )

Position ( 320 70 24 22 )

Graphic ( OdoResetButton.ace )

NumFrames ( 2 2 1 )

Style ( WHILE_PRESSED )

MouseControl ( 1 )

)

TwoState (

Type ( ORTS_ODOMETER_DIRECTION TWO_STATE)

Position ( 320 100 13 15 )

Graphic ( OdoDirectionSwitch.ace )

NumFrames ( 2 2 1 )

Style ( ONOFF )

MouseControl ( 1 )

)

Digital (

Type ( ORTS_ODOMETER DIGITAL)

Position ( 377 100 26 17 )

ScaleRange ( 0 100000 )

Accuracy ( 0 )

AccuracySwitch ( 0 )

LeadingZeros ( 0 )

Justification ( 1 )

PositiveColour ( 1

ControlColour ( 255 255 255 )

)

NegativeColour ( 0 )

DecreaseColour ( 0 )

Units ( FEET )

)


15.1.13 Puissance distribuée


Les principes de l'alimentation distribuée sont décrits ici.


Les données de puissance distribuée peuvent être affichées à l'aide de la commande ORTS_DISTRIBUTED_POWER. Voici un exemple d'utilisation :


ScreenDisplay (

Type ( ORTS_DISTRIBUTED_POWER SCREEN_DISPLAY )

Position (

164.4 286.5 136 52 )

Parameters (

FullTable True

LoadUnits AMPS

)

Units ( KM_PER_HOUR )

ORTSDisplay ( 1 )

ORTSScreenPage ( "2300-0" )

)


Ci-dessous un exemple de la sortie du contrôle ci-dessus.

Lorsque le paramètre FullTable est défini sur False, seules les 6 premières lignes sont affichées. Le paramètre facultatif LoadUnits définit quelle est l'UoM utilisée pour le champ Load. La valeur par défaut est AMPS dans un environnement métrique et KILO_LBS dans les autres cas. Les LoadUnits sélectionnables sont AMPS, NEWTONS, KILO_NEWTONS, LBS et KILO_KBS.


L'affichage de l'écran peut être tourné dans les cabines 2D en ajoutant le paramètre ORTAngle (numéro) dans le bloc ScreenDisplay. L'angle est en degrés.


Des informations spécifiques aux cabines 3D peuvent être trouvées ici .


Pour chaque commande clavier liée à l'alimentation distribuée, un contrôle cabview est également disponible. Voici une liste des commandes de cabview :


- ORTS_DP_MOVE_TO_FRONT

- ORTS_DP_MOVE_TO_BACK

- ORTS_DP_IDLE

- ORTS_DP_TRACTION

- ORTS_DP_BRAKE

- ORTS_DP_MORE

- ORTS_DP_LESS


Voici un exemple d'utilisation d'un des champs :


TwoState (

Type ( ORTS_DP_MOVE_TO_FRONT TWO_STATE )

Position ( 163.2 378.4 13.75 10 )

Graphic ( "..\\..\\Common.Cab\\ES44v3\\softkey1trans.ace" )

NumFrames ( 2 2 1 )

Style ( WHILE_PRESSED )

MouseControl ( 1 )

ORTSDisplay ( 1 )

ORTSScreenPage ( "2300-0" )

)


15.1.14 EOT (dispositif de fin de train)


Voir ici pour une description complète des fonctionnalités EOT.


Les commandes EOT suivantes sont disponibles pour la gestion EOT :


• ORTS_EOT_BRAKE_PIPE : affiche la valeur de la pression de conduite de frein au dernier wagon. L'affichage est toujours activé (même si l'EOT est désarmé), car cet affichage peut également être disponible d'autres manières ; cependant il est possible de masquer l'affichage à l'aide d'une texture pilotée par l'état EOT.


• ORTS_EOT_STATE_DISPLAY : peut avoir des valeurs de 0 à 5, correspondant aux états listés ici


• ORTS_EOT_ID : l'EOT ID est généré sous la forme d'un nombre aléatoire à 5 chiffres et peut être affiché dans la cabine à l'aide de cette commande ; la saisie de l'ID par le conducteur du train n'est pas prise en charge, car les fichiers .cvf ne prennent pas en charge la saisie de données numériques pour l'instant


• ORTS_EOT_COMM_TEST : commande du conducteur qui lance le test de communication entre la locomotive et l'EOT


• ORTS_EOT_ARM_TWO_WAY : la commande du pilote passe l'EOT d'ArmNow à ArmedTwoWay


• ORTS_EOT_DISARM : passe l'EOT à l'état désarmé


• ORTS_EOT_EMERGENCY_BRAKE (marche-arrêt) : permet à l'EOT de ventiler la conduite de frein du dernier wagon.


Ces contrôles sont disponibles uniquement à l'aide de la souris ; uniquement Le dernier peut également être actionné par la combinaison de touches <Ctrl+Retour arrière>.


Un exemple de mise en œuvre des contrôles ci-dessus peut être vu dans cette image


La commande ORTS_EOT_EMERGENCY_BRAKE peut être mise en œuvre dans la cabine par un interrupteur ON-OFF.


Voici un exemple d'implémentation des contrôles ci-dessus dans un fichier .cvf :


TwoState (

Type ( ORTS_EOT_COMM_TEST TWO_STATE )

Position ( 474 385 16.25 10 )

Graphic ( "..\\..\\Common.Cab\\ES44v3\\softkey5trans.ace" )

NumFrames ( 2 2 1 )

Style ( WHILE_PRESSED )

MouseControl ( 1 )

ORTSDisplay ( 0 )

ORTSScreenPage ( "2100-0" )

)

TwoState (

Type ( ORTS_EOT_DISARM TWO_STATE )

Position ( 493 385 16.25 10 )

Graphic ( "..\\..\\Common.Cab\\ES44v3\\softkey5trans.ace" )

NumFrames ( 2 2 1 )

Style ( WHILE_PRESSED )

MouseControl ( 1 )

ORTSDisplay ( 0 )

ORTSScreenPage ( "2100-0" )

)

TwoState (

Type ( ORTS_EOT_ARM_TWO_WAY TWO_STATE )

Position ( 511.7 385.7 16.25 10 )

Graphic ( "..\\..\\Common.Cab\\ES44v3\\softkey7trans.ace" )

NumFrames ( 2 2 1 )

Style ( WHILE_PRESSED )

MouseControl ( 1 )

ORTSDisplay ( 0 )

ORTSScreenPage ( "2100-0" )

)

MultiStateDisplay (

Type ( ORTS_EOT_STATE_DISPLAY MULTI_STATE_DISPLAY )

Position ( 516 314.5 17 5.15 )

Graphic ( "..\\..\\Common.Cab\\ES44v3\\CommTest.ace" )

States ( 2 2 1

State (

Style ( 0 )

SwitchVal ( 0 )

)

State (

Style ( 0 )

SwitchVal ( 2 )

)

)

ORTSDisplay ( 0 )

ORTSScreenPage ( "2100-0" )

)

Digital (

Type ( ORTS_EOT_ID DIGITAL )

Position ( 421 313 22 8 )

ScaleRange ( 0 999999 )

Accuracy ( 0 )

AccuracySwitch ( 0 )

LeadingZeros ( 0 )

Justification ( 1 )

PositiveColour ( 1

ControlColour ( 255 255 255 )

)

NegativeColour ( 1

ControlColour ( 255 255 0 )

)

DecreaseColour ( 0

ControlColour ( 0 0 0 )

)

Units ( KILO_LBS )

ORTSFont ( 6 0 "Arial" )

ORTSDisplay ( 0 )

ORTSScreenPage ( "2100-0" )

)

MultiStateDisplay (

Type ( ORTS_EOT_STATE_DISPLAY MULTI_STATE_DISPLAY )

Position ( 513.5 328 22.66 5.15 )

Graphic ( "..\\..\\Common.Cab\\ES44v3\\EOTStatus2.ace" )

States ( 4 4 1

State (

Style ( 0 )

SwitchVal ( 0 )

)

State (

Style ( 0 )

SwitchVal ( 2 )

)

State (

Style ( 0 )

SwitchVal ( 4 )

)

State (

Style ( 0 )

SwitchVal ( 5 )

)

)

ORTSDisplay ( 0 )

ORTSScreenPage ( "2100-0" )

)

MultiStateDisplay (

Type ( ORTS_EOT_STATE_DISPLAY MULTI_STATE_DISPLAY )

Position (

431.4 292.1 9 5

)

Graphic ( "..\\..\\Common.Cab\\ES44v3\\MaskEOT.ace" )

States ( 2 2 1

State (

Style ( 0 )

SwitchVal ( 0 )

)

State (

Style ( 0 )

SwitchVal ( 2 )

)

)

)

TwoState (

Type ( ORTS_EOT_EMERGENCY_BRAKE TWO_STATE )

Position ( 53.5 344.2 21.4 42.8 )

Graphic ( ..\\..\\Common.Cab\\ES44v3\\EOTEmergency.ace )

NumFrames ( 2 2 1 )

Style ( ONOFF )

MouseControl ( 1 )

)


15.1.15 Essuie-glaces 2D animés


Cette commande anime les essuie-glaces vus depuis une cabine 2D. L'animation est activée/désactivée via la touche V. Voici un exemple de bloc de contrôle des essuie-glaces 2D dans le fichier .cvf :


ORTSAnimatedDisplay

(

Type ( ORTS_2DEXTERNALWIPERS MULTI_STATE_DISPLAY )

Position ( 155 0 331.875 236.25 )

Graphic ( ..//..//Common.Cab//CabE464_DMI//e464Tergicristallo9.ace )

ORTSCycleTime ( 1.35 )

States ( 9 3 3

State (

Style ( 0 )

SwitchVal ( 0 )

)

State (

Style ( 0 )

SwitchVal ( 0.11 )

)

State (

Style ( 0 )

SwitchVal ( 0.22 )

)

State (

Style ( 0 )

SwitchVal ( 0.33 )

)

State (

Style ( 0 )

SwitchVal ( 0.44 )

)

State (

Style ( 0 )

SwitchVal ( 0.55 )

)

State (

Style ( 0 )

SwitchVal ( 0.66 )

)

State (

Style ( 0 )

SwitchVal ( 0.77 )

)

State (

Style ( 0 )

SwitchVal ( 0.88 )

)

)

)


ORTSCycleTime est exprimé en secondes. Le fichier .ace ne doit contenir que les images liées au demi-cycle, c'est-à-dire si par ex. l'essuie-glace se déplace de gauche à droite et inversement, seules les images liées au mouvement de gauche à droite doivent être incluses. Pour le mouvement inverse, les mêmes cadres sont utilisés du dernier au premier. SwitchVal peut varier de 0 à 1.


15.1.16 Étiquettes de contrôle


La chaîne apparaissant à l'écran lorsque la souris survole un contrôle de commande peut être personnalisée avec la ligne suivante, à ajouter dans le bloc de contrôle dans le fichier .cvf :


ORTSLabel ( "chaîne" )


15.1.17 Plusieurs pages d'écran sur les affichages


Les locomotives modernes ont un ou plusieurs écrans dans leurs cabines, et souvent dans de tels écrans, il est possible de basculer entre plusieurs pages d'écran. Les champs et les contrôles décrits dans ce paragraphe permettent la mise en œuvre de fichiers .cvf avec une telle fonctionnalité, pour les cabines 2D et 3D.


Dans les blocs de contrôle .cvf, d'autres champs peuvent éventuellement être présents :


ORTSDisplay ( numérique ), indiquant le numéro d'identification de l'affichage (de 0 à 7) auquel le contrôle est lié ; si un tel champ est manquant, le numéro d'identification d'affichage zéro est supposé ;


ORTSScreenPage ( chaîne-alphanumérique ) indiquant la chaîne d'ID d'écran à laquelle le contrôle est lié ; cela signifie que la commande est affichée/peut être actionnée uniquement si son écran est actif à ce moment ; une entrée manquante indique que le champ est affiché indépendamment de la page écran sélectionnée ; au début du jeu, ces contrôles sont activés, ainsi que ceux avec la ligne ORTSScreenPage ( "default" ); plusieurs entrées ORTSScreenPage() dans un seul contrôle sont possibles.


Un nouveau contrôle marche/arrêt, appelé ORTS_SCREEN_SELECT est disponible, qui, en plus des champs habituels et des champs optionnels ORTSDisplay et ORTSScreenPage contient un ou plusieurs des champs suivants :


ORTSNewScreenPage ( alphanumeric-string numeric ): lorsque le contrôle est cliqué, les contrôles avec le champ ORTSScreenPage égal à la chaîne de ce champ et avec le champ ORTSDisplay égal au numérique seront affichés sur cet affichage à la place de ceux affichés jusqu'à ce moment . si le numérique est manquant dans ORTSNewScreenPage, l'affichage concerné est celui référencé dans le champ ORTSDisplay de ORTS_SCREEN_SELECT.


Un autre champ est disponible, nommé ORTS_STATIC_DISPLAY, qui est spécialement dédié au chargement du fond des pages écran (leur partie statique). Voici un exemple d'utilisation de celui-ci :


MultiStateDisplay (

Type ( ORTS_STATIC_DISPLAY MULTI_STATE_DISPLAY )

Position ( 246 151 105 16 )

Graphic ( semproniostatic.ace )

States ( 1 1 1

State (

Style ( 0 )

SwitchVal ( 0 )

)

)

ORTSScreenPage ( "sempronio" )

)


Avec ce bloc, la partie statique de la page d'écran « sempronio » est chargée sur l'écran 0 lorsque cet écran devient l'écran actif.


Les fichiers .cvf n'utilisant pas les champs et les contrôles répertoriés dans ce paragraphe fonctionnent comme d'habitude, sans aucune modification nécessaire.


15.1.18 Autres commandes de la cabine opératoire


OU prend en charge le contrôle de la cabine pour ouvrir/fermer les portes gauches, les portes droites et les rétroviseurs.


Les blocs de commande sont identiques à celui illustré pour l'éclairage de la cabine. Les chaînes de type sont ORTS_LEFTDOOR, ORTS_RIGHTDOOR et ORTS_MIRRORS.


15.1.19 Commandes de la cabine pour les articles génériques


OU prend en charge les contrôles cabview pour deux éléments génériques à deux états. Les contrôles cabview sont appelés <ORTS_GENERIC_ITEM1> et <ORTS_GENERIC_ITEM2>. Leur état peut également être modifié en cliquant respectivement sur les touches <Maj+.> et <Maj+,>.


Des événements sonores sont associés, c'est-à-dire :


240: GenericItem1On


241: GenericItem1Off


242: GenericItem2On


243: GenericItem2Off


Des animations dans le fichier .s de la locomotive, qu'elles soient à l'arrêt/en mouvement ou à deux états, peuvent être associées à l'état de l'élément. Les animations liées arrêtées/en mouvement (type essuie-glace) sont nommées <ORTSITEM1CONTINUOUS> et <ORTSITEM2CONTINUOUS>. Les animations à deux états liées (type portes) sont nommées <ORTSITEM1TWOSTATE> et


<ORTSITEM2TWOSTAT>. La vitesse d'animation par défaut pour les animations de type arrêté/en mouvement est de 8 FPS. Il peut être modifié avec le paramètre suivant dans le fichier .sd :


ESD_CustomAnimationSpeed ( 8 )


Les exemples d'utilisation sont le contrôle des ventilateurs, l'ouverture/fermeture des couvertures aérodynamiques des attelages dans les trains à grande vitesse, la commutation des pages de menu.


Des animations dans le fichier 3D cab .s sont également disponibles, comme suit :


ORTS_ITEM1CONTINUOUS

ORTS_ITEM2CONTINUOUS

ORTS_ITEM1TWOSTATE

ORTS_ITEM2TWOSTATE


par analogie avec les quatre animations du fichier .s de la locomotive.


15.1.20 Arrière-plans et commandes de cabine haute résolution


Dans MSTS, la résolution de l'image d'arrière-plan de la cabine est limitée à 1024x1024 ; cette limitation ne s'applique pas à OR en raison de la meilleure gestion par OR des grandes textures.


Les arrière-plans de cabine 2D peuvent atteindre au moins 3072x3072 ; cependant des résultats très fins peuvent être obtenus avec une résolution de 2560x1600. L'image n'a pas besoin d'être carrée.


Les animations 2D de la cabine ont également été grandement améliorées ; on rappelle ici qu'il existe deux types de jauges rotatives animées, à savoir les jauges normales et les animations générales utilisant plusieurs images. Dans ce deuxième cas dans MSTS, toutes les images devaient être présentes dans une seule texture avec une résolution maximale de 640x480. Dans OR, ces cadres peuvent être aussi grands que souhaités et OR les mettra à l'échelle à la bonne taille. En général, il n'est pas nécessaire d'utiliser une résolution supérieure à 200x200 pour chaque image.


La syntaxe à utiliser dans le fichier .cvf est la syntaxe standard telle que définie par MSTS.


Pour clarifier cela, les paramètres de position d'un exemple de bloc d'aiguilles sont décrits ici.


Dans l'instruction Position, les 2 premiers nombres sont la position du côté supérieur gauche de la texture de l'aiguille dans les unités cabview avec l'aiguille en position verticale. Dans le type Dial, les 2 derniers chiffres correspondent à la taille de la texture de l'aiguille. Le dernier chiffre (50 dans l'exemple) contrôle la mise à l'échelle de la texture de l'aiguille, c'est-à-dire que changer cela modifie la taille de l'aiguille que OR affiche.


Dial (

Type ( SPEEDOMETER DIAL )

Position ( 549 156 10 50 )

Graphic ( Speed_recorder_needle_2.01.ace )

Style ( NEEDLE )

ScaleRange ( 0 140 )

ScalePos ( 243 115 )

Units ( KM_PER_HOUR )

Pivot ( 38 )

DirIncrease ( 0 )

)


Voici un exemple d'animation de contrôle, celle-ci est une simple animation à 3 images. Les exemples illustrés dans les images suivantes sont les deux commutateurs rotatifs à droite des deux jauges de frein inférieures, les deux étant à 3 positions. (Le commutateur le plus à gauche est pour les phares). Pour ces animations, le graphique a été réalisé en 1600x1600 ; lorsque chaque image était terminée, elle était réduite à 200x200 et placée dans la texture de l'animation. Notez l'extrême netteté de ces contrôles dans l'image en médaillon.


L'ajout d'une légère quantité de flou de 2x2 pixels aide l'animation à mieux se fondre dans l'arrière-plan (cela a été fait pour les aiguilles de la jauge).


Vous trouverez ci-dessous la partie appropriée du CVF. La mise à l'échelle est contrôlée par les deux derniers chiffres de l'instruction Position :


TriState (

Type ( DIRECTION TRI_STATE )

Position ( 445 397 35 35 )

Graphic ( Switch_nob_3.0_Transmission.ace )

NumFrames ( 3 3 1 )

Style ( NONE )

MouseControl ( 1 )

Orientation ( 0 )

DirIncrease ( 0 )

)


Notez que le voyant "Airbrake On" (sur le panneau en haut à gauche) a également été animé. Il s'agit d'une simple animation à 2 images.

Ci-dessus, deux images d'une cabine 2D haute résolution, l'une montrant toute la cabine et l'autre montrant le détail de certaines commandes. Dans cet exemple, l'image d'arrière-plan de la cabine utilisée a été réduite à 2560x1600. La texture pour l'aiguille de l'enregistreur de vitesse est de 183x39 et pour les aiguilles de la jauge de frein est de 181x29, notez le nombre impair pour la largeur. Ceci est nécessaire car OR (et MSTS) supposent que l'aiguille est au centre de l'image. Les images d'animation de marche arrière et de commutateur de phare sont 116x116.


Il n'existe pas encore d'outils spécifiques pour créer ces cabviews ; un programme de manipulation d'image standard pour faire toutes les textures est nécessaire et pour créer de nouveaux éléments, par ex. les faces de la jauge, un programme de dessin standard peut être utilisé. Pour configurer réellement la cabine et positionner les animations, le fichier .cvf est modifié avec un éditeur de texte standard, et OR est utilisé comme visualiseur, en utilisant une section droite de voie sur un itinéraire de chargement rapide. Par itérations successives on arrive assez vite à un résultat satisfaisant.


15.1.21 Polices configurables


OR prend en charge une famille de polices configurable, avec une sélection de taille de police et un choix de style normal ou gras. Plusieurs polices ou tailles peuvent être utilisées dans la même cabine. Cela n'affecte pas l'affichage dans MSTS.


Une ligne facultative de la forme ORTSfont ( fontsize fontstyle "fontfamily" ) doit être insérée dans le bloc .cvf de la commande numérique ou de l'horloge numérique, où fontsize est un flottant (valeur par défaut 10), fontstyle un entier ayant la valeur 0 (valeur par défaut ) pour normal et 1 pour gras, et fontfamily est une chaîne avec le nom de la famille de police (ex. "Times New Roman"). La valeur par défaut est "Courrier Nouveau". Une police pratique, si disponible, est "Quartz MS" ou "Quartz", qui modélise un affichage à 7 segments.


Voici un exemple qui affiche l'horloge numérique avec un 12 pt. police gras utilisant la famille de polices Sans Serif :


DigitalClock (

Type ( CLOCK DIGITAL_CLOCK )

Position ( 40 350 56 11 )

Style ( 12HOUR )

Accuracy ( 1 )

ControlColour ( 255 255 255 )

ORTSFont ( 12 1 "Sans Serif" )

)


Il est acceptable que seul le premier paramètre de ORTSFont soit présent, ou seulement les deux premiers, ou les trois. Notez que vous ne pouvez pas utiliser l'éditeur MS Cabview sur le fichier .cvf après avoir inséré ces lignes facultatives, car l'éditeur supprimera ces lignes ajoutées lors de l'enregistrement du fichier.


15.1.22 Rotation des jauges et commandes numériques


L'un des inconvénients du rendu d'une cabview en 2D est que certaines parties de celle-ci ne sont pas représentées en vue frontale, précisément verticale ou horizontale. L'affichage d'une jauge verticale ou d'une commande numérique horizontale génère un effet irréaliste. C'est la raison d'être de l'entrée suivante, à ajouter dans un bloc de contrôle Gauge ou Digital cabview dans le fichier .cvf :


ORTSAngle ( 5 )


Le nombre entre parenthèses est l'angle en degrés par rapport à l'horizontale (ou à la verticale pour les jauges verticales). Les valeurs positives produisent une rotation dans le sens antihoraire.


À gauche de l'image, un exemple de jauge verticale blanche qui a été tournée de 12 degrés

Voici un exemple d'une indication de vitesse maximale rouge qui a été tournée de 5 degrés

Les jauges peuvent avoir le style POINTER ou SOLID.


La rotation peut être appliquée, avec la même syntaxe, également aux commandes de la cabine DigitalClock.


15.2 Cabines 3D


Si la locomotive a une cabine 3D, elle sera sélectionnée par défaut par le simulateur. Vous pouvez appuyer sur la touche <1> pour entrer dans la cabine. Dans le cas où la locomotive dispose à la fois de cabines 2D et 3D, la touche <Alt+1> peut être utilisée pour basculer entre les cabines 2D et 3D.


15.2.1 Règles de développement


• La cabine 3D est décrite par un fichier .s, les fichiers .ace ou .dds associés, et un fichier .cvf portant le même nom que le fichier .s. Tous ces fichiers résident dans un dossier nommé CABVIEW3D créé dans le dossier principal de la locomotive.


• Si le fichier .cvf est introuvable dans le dossier CABVIEW3D, la cabine 3D est associée au fichier .cvf de la cabine 2D.


• Les instruments sont nommés avec les mêmes conventions que les baffles 2D, c'est-à-dire FRONT_HLIGHT, SPEEDOMETER, etc.


• Une cabine peut avoir plusieurs instances des mêmes instruments, par exemple plusieurs horloges ou compteurs de vitesse.


• Les instruments sont triés en fonction de leur ordre d'apparition dans le fichier .cvf, par exemple SPEEDOMETER:0 correspond au premier compteur de vitesse dans le fichier .cvf, SPEEDOMETER:1 correspond au second.


• Un instrument peut avoir plusieurs sous-groupes pour rendre l'animation réaliste, par exemple, TRAIN_BRAKE:0:0 et TRAIN_BRAKE:0:1 appartiennent à l'instrument TRAIN_BRAKE:0. Cependant, si l'instrument est un appareil numérique, le deuxième nombre sera utilisé pour indiquer la taille de la police utilisée, par exemple SPEEDOMETER:1:14 signifie que le deuxième compteur de vitesse (qui est numérique tel que défini dans .cvf) sera rendu avec une police 14pt . Cela peut être modifié dans les futures versions de la salle d'opération. L'information importante pour un appareil numérique est son emplacement, il peut donc être défini comme un objet avec une petite face unique dans le modèle 3D.


• Les plages d'animation doivent être en accord avec le fichier .cvf


• Dans la section Wagon du fichier .eng, un bloc comme le suivant doit être généré :


ORTS3DCab(

ORTS3DCabFile ( Cab.s )

ORTS3DCabHeadPos ( -0.9 2.4 5.2 )

RotationLimit ( 40 60 0 )

StartDirection ( 12 0 0 )

)


• Il est également possible d'animer les wipers, en insérant dans le fichier .s une animation nommée EXTERNALWIPERS:0:0


• Les jauges de type solide doivent être nommées AMMETER:1:10:100 ; où les trois chiffres indiquent qu'il s'agit du deuxième ampèremètre, qu'il a une largeur de 10 mm et une longueur maximale de 100 mm. La couleur et la direction/orientation suivent celles définies dans les fichiers .cvf.


• Les chiffres pour les cabines 3D peuvent désormais utiliser des fichiers ACE personnalisés ; par exemple. nommez la partie CLOCK:1:15:CLOCKS. Cela dessinera la deuxième horloge avec une dimension de police de 15 mm, avec le fichier CLOCKS.ACE dans CABVIEW3D contenant la police. Si aucun as n'est spécifié, la valeur par défaut sera utilisée.


• Les rétroviseurs et les portes peuvent être commandés à partir des cabines 3D. Les noms utilisés sont LEFTDOOR, RIGHTDOOR et MIRRORS.


• comme les cabines 2D, les cabines 3D peuvent également avoir une version nocturne. Les textures de nuit, nommées comme les textures de jour correspondantes, doivent être situées dans un sous-dossier NIGHT du dossier CABVIEW3D. Pour activer les cabines de nuit, un fichier .sd portant le même nom que le fichier de forme de la cabine 3D doit être présent dans le dossier CABVIEW3D. Ce fichier .sd a un format standard et doit contenir la ligne suivante :


ESD_Alternative_Texture ( 256 )


• Comment contrôler la vue dans une cabine 3D est décrit ici.


Une rame de démonstration avec un 3Dcab, qui peut être utile aux développeurs, peut être téléchargée à partir de : http://www.tsimserver.com/Download/Df11G3DCab.zip


15.2.2 Un exemple de développement pratique pour un compteur de vitesse numérique


Supposons que vous souhaitiez créer un compteur de vitesse numérique en utilisant une police de taille 14.


Pour l'expliquer en langage gmax, vous devez avoir un objet appelé SPEEDOMETER dans la vue de la cabine et il doit être composé d'au moins une face.


Comme l'exemple de cabine n'a qu'un seul compteur de vitesse numérique, il peut être nommé SPEEDOMETER_0_14.


Le chiffre 0 indique qu'il s'agit du premier indicateur de vitesse dans la cabine et le chiffre 14 indique la taille de la police à afficher. Notez qu'un trait de soulignement est utilisé pour séparer les nombres car l'outil d'exportation LOD ne prend pas en charge l'utilisation des deux-points dans les noms d'objet lors de l'exportation. Plus à ce sujet plus tard.


La vitesse n'indique pas où se trouve la face de l'objet SPEEDOMETER mais où se trouve le point de pivot de l'objet SPEEDOMETER. Normalement, vous placeriez l'objet COMPTEUR DE VITESSE quelque part dans la cabine où il ne sera pas vu.


Avec l'objet SPEEDOMETER_0_14 sélectionné dans gmax, accédez à l'onglet Hiérarchie, sélectionnez Affecter le pivot uniquement et cliquez sur Aligner sur le monde pour réinitialiser l'orientation sur les coordonnées du monde. Utilisez ensuite l'outil Sélectionner et déplacer pour déplacer le pivot à l'endroit de la cabine où vous souhaitez que les chiffres apparaissent. Comme vous avez aligné le point de pivot sur les coordonnées mondiales, les chiffres s'afficheront verticalement. Comme la plupart des écrans primaires de locomotive sont normalement inclinés, vous devrez peut-être faire pivoter le point de pivot afin qu'il s'aligne avec l'angle de l'écran d'affichage.


Exportez le fichier .S pour la cabine comme d'habitude.


Vous devrez ensuite décompresser le fichier .s de la cabine à l'aide de Shape File Manager ou de l'outil de décompression de fichier .S de votre choix.


Ouvrez ensuite le fichier .S avec un éditeur de texte et recherchez les lettres "vitesse" jusqu'à ce que vous trouviez la première instance de SPEEDOMETER_0_14 et changez-la en SPEEDOMETER:0:14. Recherchez à nouveau et trouvez la deuxième instance de SPEEDOMETER_0_14 et remplacez-la également par SPEEDOMETER:0:14. Enregistrez le fichier .S dans l'éditeur de texte.


Maintenant juste une dernière chose. Téléchargez la rame de démonstration DF11G3DCab. Dans le dossier CABVIEW3D de ce téléchargement, vous trouverez un fichier ace appelé SPEED.ACE. Copiez ce fichier et collez-le dans le dossier CABVIEW3D de votre modèle.


Maintenant, ouvrez OR et testez votre compteur de vitesse.


15.2.3 FUEL_GAUGE pour les locomotives à vapeur


Le cadran FUEL_GAUGE est également disponible pour les locomotives à vapeur. Il peut être utilisé à la fois pour afficher un niveau de carburant pour les locomotives à vapeur à mazout (également dans les cabines 2D) et pour animer le niveau de charbon dans une locomotive à citerne. L'unité de mesure par défaut est le kg ; une autre unité de mesure peut être LBS. Voici ci-dessous un exemple d'entrée pour une cabine 3D :


Dial (

Type ( FUEL_GAUGE DIAL )

Style ( POINTER )

ScaleRange ( 0 5000 )

Units ( LBS )

)


15.2.4 Affichage de la puissance distribuée


Les informations suivantes s'appliquent à la création d'un affichage de puissance distribuée dans les cabines 2D, en plus de ce qui est décrit ici pour les cabines 2D.


Dans le fichier 3Dcab .s, un objet ORTS_DISTRIBUTED_POWER doit être défini, avec les mêmes règles de syntaxe des numériques, donc par ex. ORTS_DISTRIBUTED_POWER:0:8:DPI , où 8 est la taille de police de caractères sélectionnée et DPI est la texture DPI.ace associée.


Dans le dossier où se trouvent les fichiers cab 3D (généralement CABVIEW3D), un tel fichier DPI.ace doit être présent. Un exemple de fichier pour cela peut être trouvé dans Documentation\SampleFiles\Manual\DPI.zip . Voici à quoi ressemble un tel fichier

Les personnalisations pour ce fichier sont possibles en suivant ces règles :


1. Le rapport horizontal/vertical doit être conservé


2. Les quatre premières lignes doivent avoir les caractères centrés dans leur rectangle.


3. À partir de la 5ème ligne, les caractères peuvent également être espacés de manière plus épaisse (comme c'est le cas pour la chaîne Idle dans l'image ci-dessus)


4. À partir de la 5e ligne, les chaînes peuvent être remplacées par des chaînes dans d'autres langues nationales, à condition que les nouvelles chaînes ne soient pas plus larges que celles d'origine.


5. Il devrait être possible d'avoir un fond transparent si on le préfère.


À l'exception de la première colonne, les champs de l'affichage de puissance distribuée 3D sont toujours alignés au centre.


15.2.5 Alignement pour les commandes numériques


Pour des raisons de rétrocompatibilité, Justification ( 1 ), Justification ( 2 ) et Justification ( 3 ) conduisent toutes à un alignement à gauche du numérique dans 3Dcabs.


La justification ( 5 ) doit être utilisée pour l'alignement au centre et la justification ( 6 ) doit être utilisée pour l'alignement à droite. La justification (4) conduit à un alignement à gauche.

Share by: