Ajout d'objets à la scène de Half Moon Bar Lodge

Plusieurs méthodes, j'ai choisi la pire !

Il y a plusieurs méthodes pour ajouter des objets à une scène.
Il existe des programmes qui font ça très bien, mais que je n'ai pas eu envie d'essayer,
... pour des raisons que j'ignore .

J'ai entendu parler de Whisplacer, de RWY12, etc ...

Pour placer une maison sur ma scène de Half Moon Bar Lodge, j'ai choisi la pire des solutions : créer moi-même "à la main" le fichier XML et le compiler avec SceneComp.
Pourquoi ? Tout d'abord parce que c'est aussi la méthode utilisée par un ami dont la réputation n'est plus à faire dans ce domaine : Guy Némoz et que s'il a fait ce choix, ça n'est certainement pas sans raisons.
Les avantages que j'y vois : je fixe moi-même tous les paramètres de manière relativement simple avec un contrôle total, je comprends ce que je fais, et j'apprends petit-à-petit comment ça fonctionnent dans les coulisses de FSX.

Alors retrousse tes manches, on y plonge.

 

Un fichier XML kézako ?

Un fichier XML est un fichier de texte (c'est-à-dire modifiable avec le bloc-note de Windows ou tout autre éditeur de textes (évite Word peu adéquat pour cette mission) qui est composé de balises. Si tu connais le langage HTML pour faire des pages web, tu ne seras pas dépaysé.

Pour en savoir plus : fr.wikipedia.org/wiki/Extensible_Markup_Language.

Pour nous, il suffit pour le moment de savoir que s'il est destiné à être compilé dans FSX, alors il commence par
<?xml version="1.0" encoding="ISO-8859-1"?>
<FSData
   version="9.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="bglcomp.xsd">
et se termine par
</FSData>
et que l'on peut y mettre des commentaires entre <!-- et -->, par exemple :
	<!-- Ceci est un commentaire -->
Le contenu possible pour FSX est défini dans le fichier "Compiling BGL.html" se trouvant dans le dossier "BGL Compiler SDK" du SDK de FSX. Si tu veux y lire ce que nous allons faire, clique dans le menu initial sur le lien "Scenery Objects".

On y trouve qu'un objet de scène est défini par ces informations dans le XML :
<SceneryObject
  lat="N47 25.89"
  lon="W122 18.42"
  alt="0"
  altitudeIsAgl="TRUE"
  pitch="0"
  bank="0"
  heading="0"
  imageComplexity="NORMAL">

  <LibraryObject
    name="{93802d8b-ba4f-45eb-a272-9f029a0feeb3}"
    scale="1.0"/>
</SceneryObject>
Avec des base ou un dictionnaire en anglais, on parvient à tout comprendre. Il y a juste ce "machin" qui suit "name=" trois lignes avant la fin ... C'est le GUID de l'objet à insérer dans la scène. GUID ? Regarde sur cette page que tu n'as apparemment pas lue .

Fais attention ! Les majuscules/minuscules sont importantes, le compilateur de BGL de FSX est très susceptible !

 

Scenery Object

Pour ajouter une maison sur notre scène, nous allons ajouter un "Scenery Object" (objet de scène).

Nous verrons peut-être un jour comment créer nos propres objets personalisés. En attendant, nous sommes condamnés à utiliser des objets existants dans FSX. Heureusement il y en a pas mal.

Pour choisir une maison, nous allons sur le site Internet de lc0277 qui en a fait l'inventaire sur cette page où nous nous rendons. Clique sur "Buildings" (bâtiments) :

http://lc0277.nerim.net/sceneobjects

Tout en bas de la page, on trouve une maison de rangers qui pourrait bien convenir à ma scène.

. En cliquant dessus :

Adjugé ! On relève son GUID : {DFB27345-E0C0-4891-B192-02077639EEC3} (on a le droit de copier/coller).

 

Le bidouillage

Ouvre ton bloc-notes préféré. Colle les débuts et fin de fichier XML comme mentionné plus haut et au milieu, colle également le bloc de "scenery object".

Lance ton FSX, place ton appareil à l'endroit où tu veux voir la maison (avec la bonne orientation) et relève les coordonnées (latitude, longitude et cap dans ce cas).

Dans ton bloc-notes, corrige les informations. Remplace imageComplexity="NORMAL" par imageComplexity="VERY SPARSE" pour que la maison apparaisse quel que soit le niveau de détail des scènes choisi par l'utilisateur car la maison est importante dans cette scène.

Tu devrais obtenir quelque chose qui ressemble à ça :
<?xml version="1.0" encoding="ISO-8859-1"?>
<FSData
  version="9.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="bglcomp.xsd">

  <!-- La maison -->
  <SceneryObject
    lat="42.695125"
    lon="-123.939975"
    alt="0.00"
    altitudeIsAgl="TRUE"
    pitch="0.00"
    bank="0.00"
    heading="140"
    imageComplexity="VERY_SPARSE">
    <LibraryObject
      name="{DFB27345-E0C0-4891-B192-02077639EEC3}"
      scale="1.40"/>
  </SceneryObject>
</FSData>
L'altitude a été mise à zéro car il y a l'indication altitudeIsAgl="TRUE" (AGL = Above Ground Level = au dessus du sol). C'est très partique car s'il y a dans le futur un changement d'altitude de la plaque de base de la scène, il n'y aura pas besoin de corriger les altitudes de tous les objets contenus.

Enregistre ton fichier au format XML en lui donnant un nom significatif, par exemple "HMBL_Maison.XML".

PS: Après essais, j'ai trouvé que la maison était un peu petite par rapport à mon avion. J'ai donc modifié ci-dessus scale="1.00" en scale="1.40".

 

La compilation avec JABxBGLComp (dispo sur ce site) ou SceneComp

Compilation

 

Test avec FSX !

Je lance FSX : ÇA MARCHE !

L'approche

On voit qu'il faudra rajouter des arbres sur la gauche au début de la piste ... et la "falaise" ne correspond pas à la réalité : du mesh à corriger ... mais c'est déjà pas mal non ?

La maison

La maison ne ressemble pas à l'original, mais on n'a pas trouvé mieux dans la bibliothèque par défaut. ... Mais elle ne me plaît pas trop. Je cherche encore et je tombe sur une pagode dans la catégorie "autogen" :

La Pagode


J'en tombe immédiatement amoureux ! Voici ce que ça donne : un très excentrique dans l'Oregon profond, totalement inattendu dans ce coin perdu : ça me plaît !
Son GUID ? {b0573142-e40a-4120-82e0-a61f58cca6b2}. Je remplace dans le XML et remets scale="1.00".

La pagode

C'est décidé, je la garde ! J'adoooore !

 

Mettons un peu de vie sur cette scène !

Maintenant que l'on sait ajouter un objet, on va en rajouter d'autres, d'abord pour mettre de la vie !

D'abord une table, des chaises et un parasol devant la pagode pour donner une ambiance vacances. (GUID {46F86623-2D39-4E58-9476-85899912D683}).

Pour ce faire, je rajoute simplement ce bloc dans le XML qui ne contenait que la maison :
  <!-- Parasol -->
  <SceneryObject
    lat="N 42 41.70"
    lon="W 123 56.394"
    alt="0.00"
    altitudeIsAgl="TRUE"
    pitch="0.00"
    bank="0.00"
    heading="212"
    imageComplexity="VERY_SPARSE">
    <LibraryObject
      name="{46F86623-2D39-4E58-9476-85899912D683}"
      scale="1.2"/>
  </SceneryObject>
Puis je rajoute des blocs pour :
  • Un grizzly débonnaire en bout de piste (GUID {25cceb88-e0b3-4ecb-9289-ea9f548c1b8f})
  • Un autre Piper J-3 Cub (GUID {9244F459-9765-45B7-85BB-AEE46322650E})
  • ... et quelques autres, à toi de les découvrir lorsque je publierai la scène.
Je compile avec JABXBGLComp ou SceneComp. Voilà ce que ça donne :

Nouveaux objets

 
© 2006-2014 Jacky Brouze, imprimé le 24.10.18 à 5:54 à partir de http://jacky.brouze.ch/Creation/HMBL/HMBL_b1_2.php