Microsoft Flight Simulator, ou FS2020, c’est en 2022 le simulateur qui offre des paysages absolument spectaculaires, ceux dont on ne peux que réver ; c’est celui que tout possesseur de simulateur aimerait sur ses écrans.
Mais comment l’intégrer dans le simu existant sans tout remettre en cause, les logiciels, les matériels et les milliers d’heures passés à les interfacer ? et puis, FS2020 est-il capable d’animer 3 vues extérieures, le must en terme d’immersion ?
A ces questions, il y a des réponses, et le résultat est véritablement enthousiasmant !
1 - Préambule :
Depuis le début, le simulateur a vécu de nombreuses évolutions, il me donne vraiment satisfaction ; mais dès que de nouvelles perspectives se présentent, l’envie revient de faire encore mieux ; et là, FS2020 et ses extraordinaires paysages sont arrivés, et la tentation est grande d’en profiter.
Le chemin n’est pas vraiment balisé, alors je résume succintement la situation de départ :
– Le coeur du simulateur, c’est P3Dv4.5 pour faire voler l’avion et afficher les vues extérieures, au nombre de 3 (face, gauche et droite), et A320 FMGS (Jeehell) qui simule tous les systèmes de l’avion et anime tous les composants du cockpit (panels, commandes, …)
– Les logiciels sont répartis sur 3 PC en réseau : un serveur P3D et A320 FMGS, qui abrite également les logiciels d’interfaçage aux panels et commandes (SIOC et Profiler de Skalarki), un client A320 FMGS qui fait fonctionner les divers sous-sytèmes de l’avion et affiche les écrans correspondants, et un client P3D, en charge de produire les 3 vues extérieures, affichées sur un écran courbe grace à 3 vidéo-projecteurs.
– Les panels et commandes sont soit “DIY”, soit des panels Skalarki.
Au plan des aspects délicats de l’ensemble, il y a l’architecture P3D serveur/P3D client (une instance de P3D fait voler l’avion et transmet position et attitude de l’avion à une seconde instance de P3D qui ne fait qu’afficher 3 vues externes, et la capacité du client P3D à produire 3 vues avec un bon niveau de performance (30 fps nécessaires).
Pour ce qui concerne la cible, l’objectif est de conserver l’ensemble du simulateur tel quel, et d’y adjoindre un client FS2020 en parallèle au client P3D, qui produirait 3 vues FS2020 ; à l’idéal, choix possible au lancement du simulateur d’afficher les vues externes soit grace à P3D, soit grace à FS2020.
2 - La solution :
Amener FS2020 sur le simu me “travaillait” depuis quelque temps, mais il y avait un point bloquant : FS2020 n’était pas capable de produire plusieurs vues externes, contrairement à la plupart des autres logiciels de simulateur, dont P3D et X-Plane ; la demande était pressante auprès d’ASOBO, le développeur de FS2020, et la réponse est apparue avec la mise à jour U10 de fin septembre 2022, dont une béta était disponible depuis quelques semaines.
ASOBO n’a, à l’évidence, pas repris le moteur graphique de l’ex FSX, et propose une solution, d’ailleurs qualifiée d’expérimentale, qui est loin de présenter les possibilités offertes par les autres simulateurs ; mais, compte tenu du caractère particulier de mon simu (A320 mono-poste, le pilote est au centre du cockpit), cette solution est de nature à me convenir.
La solution ASOBO consiste à permettre de rajouter à la vue centrale d’autres vues ayant le même point de vue, et dont l’orientation par rapport à la vue centrale est paramétrable ; le “fovh” (champ de vision horizontal) n’est pas directement paramétrable, mais modifiable par l’intermédiaire du facteur de zoom, forcément le même pour toute les vues ; cette façon de faire est très limitative, elle suppose un point de vue unique et un angle de vision unique, mais ça me va.
L’apparition de cette formule a été le facteur déclenchant, j’ai donc aussitôt acheté le logiciel et commencé mes essais ; plusieurs points importants à vérifier/résoudre, j’y reviendrai.
Mais en l’état, une grosse difficulté se présentait, car le second logiciel important du simu, A320 FMGS, n’est pas interfacé à FS2020 ! donc nécessité de changer, et de revoir/changer tout ce qui gravite autour de A320 FMGS, à savoir la quasi-intégralité du simu ! ça, ce sont des mois de travail et pas mal d’argent, je ne suis pas trop motivé …
Mais, divine surprise, mes investigations sur le net me font découvrir que le logiciel qui me permet d’assurer la liaison entre le serveur P3D et le client P3D (logiciel qui n’est pas fondamentalement destiné à cela), est capable moyennant modalité d’assurer la liaison entre le serveur P3D et un client FS2020 ! Il s’agit de Wideview, qui est à l’origine destiné à faire produire les vues externes du simu par autant d’instances de P3D (et avant, FSX) sur autant de PC.
3 - Tests et mise en oeuvre :
Dès lors, plus d’hésitation, je monte une configuration de test : un serveur avec tous les logiciels du serveur réel, dont P3D, A320 FMGS et Wideview (nécessairement dans sa version 64 1.3 ou plus récente), et un client avec FS2020 à jour U10, ainsi que Wideview (nécessairement dans sa version 2021) ; à noter, ce client est bati sur la base du couple 4790K/GTX1070.
3.1 - Test P3D serveur, FS2020 client :
Le pilotage de FS2020 (1 vue) par P3D fonctionne d’emblée, le paramétrage des Wideview est simple, il ne faut pas oublier de spécifier à Wideview 64 (celui du serveur P3D) que le/les clients exécute(nt) FS2020. Attention, il est important d’enregistrer la licence de Wideview 2021 (celui du client FS2020) sur le serveur, cela va activer une fonctionnalité importante : corriger automatiquement les écarts d’altitude présents entre les pistes P3D et les pistes FS2020.
3.2 - Test 3 vues externes avec FS2020
Sur FS2020, je rajoute 1 vue à droite de la vue centrale, et une vue à gauche (toujours sur un seul écran) ; le paramétrage, très simple, se montre trompeur : je cherche à avoir 3 vues, fov de 60°, donc décalée chacune de 60° ; mais dans FS2020, il faut décaler de 90° (soit 60° plus 1/2 60° …). Pas de réglage du fov, il faut agir sur le zoom, sans quoi les vues ne se raccorderont pas correctement, ligne d’horizon brisée (attention, le facteur de zoom est le même pour les 3 vues) ; mais pas de loi pour relier les 2 facteurs, fov et zoom – après réflexions/recherches/essais, le bon facteur de zoom se trouve aux alentours de 69.
Cela étant, le multiview fonctionne correctement, et le pilotage par P3D continue de fonctionner.
Par ailleurs, les bonnes nouvelles continuent : la météo sur les 3 vues est parfaitement synchronisée, idem pour le trafic ; et en mouvement, aucun décrochage entre les vues, parfait.
3.3 - Suppression de l'affichage du cockpit :
Il faut maintenant ne conserver sur les 3 vues externes que le paysage, et supprimer le cockpit 3D ; l’option réputée permettre cela ne le fait pas, et rien n’est documenté, quelques bribes seulement dans le sdk ; je finis par découvrir dans le répertoire de l’avion un fichier “model.cfg”, dans lequel commenter les 2 lignes “normal=A320_NEO.xml” et “interior=A320_NEO_INTERIOR.xml” (préfixer à l’aide d’un point-virgule) supprime les affichages intérieur et extérieur de l’avion (ce qui au détour améliore légèrement les performances).
Ce subterfuge a hélas l’inconvénient de supprimer les éclairages extérieurs (découle de la désactivation “normal=A320_NEO.xml”) ; une autre façon de procéder (à tester) consiste à avancer la caméra jusqu’à ce qu’elle se trouve juste devant le pare-brise : l’inconvénient de cette solution est de fausser le point de vue du pilote.
Un peu plus tard, en cherchant à modifier le modèle de l’avion sans y parvenir complètement, je finis par élaborer un contournement qui me satisfait : le fichier “A320_NEO.xml” définit les fichiers des divers modèles extérieurs de l’avion en fonction du niveau de détail (“A320_NEO_LODxx.gltf “), ainsi que divers comportements de ces modèles (surfaces mobiles, trains, …), dont les éclairages externes ; c’est pourquoi les éclairages disparaissent quand on désactive ce fichier dans le fichier “model.cfg”.
En ce qui concerne les modèles, pour la vue pilote, c’est systématiquement le fichier “A320_NEO_LOD00.gltf” (niveau de détail max) qui est utilisé, il présente notamment une vue de l’encadrement parebrise (encadrement que je cherchais à supprimer à l’aide de Blender, j’y arrive mais FS2020 refuse cette modification) ; comment conserver ce fichier, nécessaire pour les éclairages, sans que la vue externe ne soit encombrée par ce parebrise ?
Il se trouve que le fichier “A320_NEO_LOD06.gltf” (niveau de détail le plus faible) ne présente pas cette vue du parebrise ; dès lors, il suffit de remplacer le fichier “A320_NEO_LOD00.gltf” par une copie du fichier “A320_NEO_LOD06.gltf” renommée en “A320_NEO_LOD00.gltf” , et de ne conserver, dans le fichier “model.cfg” , que la ligne “normal=A320_NEO.xml “(supprimer ou commenter la ligne “interior=A320_NEO_INTERIOR.xml)”.
3.4 - Test FS2020 dans le simu :
A ce stade, il faut quitter la configuration de test et migrer vers le simu ; je commence par remplacer le serveur P3D de test par le serveur du simu (en fait, je branche le client test FS2020 sur le réseau du simu), et effectue les opérations Wideview qui vont de paire.
Je rapatrie l’écran du client dans le cockpit, et je démarre le serveur du simu, son client FMGS, le client test FS2020, et le client P3D. Le simu fonctionne sans restriction, donc animé par P3D/A320 FMGS, avec l’ensemble des matériels, visu FS2020 sur un écran dans le cockpit, et visu P3D sur l’écran courbe – ça impressionne !!!
3.5 - Passage en configuration cible :
Désormais, il s’agit de passer en configuration cible, donc remplacer le client test FS2020 par le client définitif, bati sur une base 12900K/RTX 3080 Ti. J’installe une nouvelle licence FS2020 sur le client P3D, qui devient donc un client P3D/FS2020 (attention, il faut acheter avec un nouveau compte microsoft/adresse mail), ainsi que Wideview 2021. Je paramètre 3 vues externes, l’affichage sur l’écran courbe est d’emblée correct :
Pour rappel, afficher sur l’écran courbe suppose de passer par Immersion display pro (Fly elise), ce dernier se révèle parfaitement compatible avec FS2020 (je n’avais pas vraiment de doute, ce logiciel ne fait que corriger les images pour visualisation sur écran courbe).
3.6 - Performances :
A ce stade, je me retrouve avec un simu fonctionnel, capable d’afficher 3 vues P3D ou 3 vues FS2020, avec une réserve : les performances avec FS2020 sont-elles suffisantes ? Compte-tenu du rapport de performances entre conf de test (4790K/GTX 1070) et conf cible (12900K/RTX 3080Ti), et de ce que j’ai observé sur la conf de test, les choses se présentent correctement. Le mode “développeur” présent dans FS2020 permet d’afficher un aperçu intéressant des performances du simu, avec fps, charge CPU, charge GPU et j’en passe ; donc campagne d’essai, paramétrage graphique sur “élévé” (je n’ai pas encore creusé les paramètres détaillés) ; le fps du serveur est bloqué sur 30 (c’est ce qui est nécessaire pour le bon fonctionnement de A320 FMGS), et sur le client FS2020 il est bloqué par FS2020 à 60, je laisse tel quel.
L’essai se déroule à partir de LFMN (Nice), il s’agit d’un des aéroports particulièrement détaillés de FS2020, il y en a quelques dizaines autour du monde ; le serveur P3D tourne avec un fps pratiquement toujours en butée sur 30, normal, rien de changé ; mais pour ce qui concerne FS2020 et ses 3 vues, au sol le fps oscille entre 32 et 38, et en vol, fps pratiquement en butée à 60 !!! c’est OK, champagne ! J’observe qu’au sol, c’est le GPU qui est limitant, alors qu’en vol c’est la CPU …
3.7 - Automatisation
Voilà, une nouvelle étape de franchie, je suis vraiment heureux car le visuel FS2020 sur l’écran courbe est très impressionnant !
Le simu s’est encore complexifié, mon appli “Autosim” d’automatisation du lancement (voir 3 vdp – v3) est la bienvenue, mais il faut la faire évoluer : la prise en compte du lancement de FS2020 est vraiment délicate, son IHM ne respecte pas les standards windows.
J’en profite pour y rajouter la mise sous tension et l’arrêt automatique des PC, ainsi qu’une fonction de mise à jour automatique des clients Autosim, pour faire face aux inévitables changements que les mises à jour de FS2020 impliqueront (ça n’a pas louper, première mise à jour, automatisation lancement FS2020 en vrac !).
Au final, c’est un vrai plus, chaque scéance de simu est une vraie immersion, plus de multiples manip informatiques préalables, et une totale reproductibilité.
Magnifique et inédite intégration de FS2020 dans une architecture client/serveur (Merci à Wideview d’exister) en prenant le meilleur de chacun des logiciels. Je suis admiratif de votre persévérance et de vos compétences pluridisciplinaires. Votre passionnante aventure nous permet de rêver mais fais aussi prendre conscience qu’en la matière, vous êtes un pionnier qui défriche pour nous les progrès possibles. J’ai des centaines de questions possibles mais je ne vous en poserai qu’une seule . L’entretien d’une telle installation, notamment chaque évolution logicielle ou mise à jour inévitable, nécessite une grande rigueur tant les répercutions sur la chaîne de traitements peuvent être pernicieuses. N’est ce pas trop contraignant ?
Bravo et merci.
Bonjour François,
merçi pour ce commentaire, oui je fais partie de ces quelques fous furieux qui ne lâchent pas facilement l’affaire !
C’est vrai que les évolutions logicielles requièrent vigilance, mais heureusement la plus part des composants sont stables et aboutis; je ne les fait évoluer que si le jeu en vaut la chandelle ; deux exceptions, FS2020, dont on ne peux refuser les màj : ces dernières impliquent presque à chaque fois un rework de mon automate de lancement, c’est pénible mais circonscrit ; et les mises à jour Windows, qui bousculent souvent l’architecture réseau et mon automate.
Pour le reste de l’installation (hardware), la construction du simu est à la fois très modulaire et bien documentée, et par ailleurs les pannes sont rarissimes : pas de problème.
Michel
Bonjour
C’est formidable, une excellente approche d’intégration de nos cockpit A320 à base de A320 FMGS dans un environnement FS2020.
Le grand avantage c’est de profiter des paysages FS2020.
J’ai réussi à récupérer l’appareil de la version JeeHell dans MSFS2020, reste maintenant à savoir comment synchroniser les actions dans le cockpit avec l’appareil FS2020 par exemple le train d’atterrissage, les lumières, les flaps… et ce ne sont que quelques exemples.
Comment avez-vous résolu ses problèmes ? ?
Cordialement
Bonjour Ridha,
pas certain de bien comprendre la question …
Dans mon implémentation, tous les dispositifs physiques du cockpit sont interfacés avec A320 FMGS, lui-même interfacé à P3D ; FS2020 n’est en rien concerné. P3D communique à FS2020 (via widefs) la position et l’attitude de l’avion, qui ne sert exclusivement qu’à afficher les vues extérieures.
Si tu affiches la vue intérieure du cockpit FS2020, elle ne reproduira pas les interactions que tu as dans le cockpit physique, car FS2020 ne les connait pas (widefs ne les transmet pas, ) ; en revanche, sur les vues extérieures, tu auras bien les feux ; je n’ai pas vérifié si les flaps ou les trains sont concernés, je ne regarde jamais l’avion de l’extérieur !
Michel
Bonjour Michel,
Quel tour de force ! Je tiens à te féliciter pour ton travail et ta persévérance. Je te remercie de partager tes recherches et les résultats ce “montage” incroyable.
Le P3D, se trouvant sur le serveur, doit être réglé à minima avec un écran de contrôle et peut-être 1 vue de P3D, je suppose ?
Bons vols !
Jean-Luc
Bonjour Jean-Luc,
merçi pour le compliment, mais tu n’es pas en reste avec ta magnifique réalisation et ton site jl-a320.com !
En effet, le P3D du serveur est paramétré pour consommer le minimum de ressources : une toute petite vue de face, et les réglages graphiques au minimum ; son job est restreint à la fourniture au client FS2020 de la position et de l’attitude de l’avion, de la météo et du trafic externe, et deux trois petites choses type éclairage …
Cordialement, Michel