Il est temps de s'attaquer aux choses sérieuses!
Durant cette session d'entrainement, il vous sera demandé de
faire des choses très utiles pour la conception d'un O.V.P.E. mais passablement barbante.
Désolé! Cela ne devrait pas être trop long...
Vous avez été nommé nommé Ingénieur en Chef du projet O.V.P.E..
Qu'est-ce qu'un O.V.P.E. ?
Un O.V.P.E. is a Objet Volant Peu Engageant.
Allons-y!
Avant de rentrer dans le détail, il vaut mieux ouvrir une nouvelle session
d'Aircraft Designer 2000 de façon à effacer les traces de tous les essais que nous avons effectués
jusqu'à maintenant. Dans l'Editeur Graphique, cliquez sur le premier bouton de la barre
d'outils (celui avec une petite feuille blanche dessinée dessus). Une fenêtre de
saisie s'affiche à droite de l'écran. Saisissez "MyRFO" dans le champ de données
et cochez la case marquée master project. Validez. Une fenêtre de dialogue
apparaît sur l'écran vous demandant si vous désirez effacer toutes les données
existantes (à moins que vous n'ayez redémarré Aircraft Designer 2000 juste avant). Acceptez.
Passez en vue de face (front) et entrez -3.500 dans le champ de saisie de
l'ordonnée du plan de travail courant en bas et à droite de l'écran. Validez en
appuyant sur la touche enter.
Créez un nouveau sub-assy et appelez le "DICE". Nous allons construire un
cube dans ce sub-assy. Activez l'option de création de forme prédéfinie
(option Shape.../square du menu Draw). Entrez 7.000 dans le champ de
saisie de la longueur du côté du carré. Comme vous pouvez le voir, le bouton-radio
front est sélectionné par défaut dans le panneau plane of the shape.
Les coordonnées du centre de la forme sont actuellement les suivantes:
0.000 -3.500 0.000
Validez en cliquant sur le bouton Draw. Un carré apparaît à l'écran.
Nous allons utiliser ce carré comme base de notre cube. Sélectionnez l'option
Build a cylinder du menu Draw. Le choix par défaut pour l'axe du
cylindre est vector: c'est ce qui convient. Les coordonnées du vecteur
sont affichées au dessous. Modifiez les de façon à ce qu'elles soient les suivantes:
0.000 7.000 0.000
Le sub-assy de destination est correct (DICE): validez la saisie en
cliquant sur le bouton build. Félicitations, Monsieur L'ingénieur en Chef.
Vous avez créé votre premier volume en 3 dimensions. Sélectionnez la vue 3D
et jouissez de votre création en appuyant plusieurs fois sur la touche Q
pour faire pivoter la vue. N'est-ce pas magnifique?
Je suis sûr que vous brûlez d'impatience de voir votre création sur le tarmac
d'un aéroport. Un peu de patience, ça ne devrait pas tarder. Revenez en vue de
côté et lancez l'Editeur de code. La page de code principale est très courte:
MYRFO MASTER
DICE SUBASSY,T click to open sub-assy
ENDBLOCK
Voici une règle générale de l'Editeur de code. Il faut toujours appeler un sub-assy
pour qu'il soit visualisé par Flight Similator. La façon la plus simple de faire
cela est d'utiliser une instruction GOSUB. Insérez une instruction GOSUB et une
instruction RETURN juste avant la déclaration du sub-assy. Faites en sorte
que le GOSUB pointe sur le sub-assy:
MYRFO MASTER
GOSUB DICE
RETURN
DICE SUBASSY,T click to open sub-assy
ENDBLOCK
Cele ressemble à un petit programme, n'est-ce pas? Le point d'entrée est
l'instruction MASTER. L'instruction suivante appelle le sous-programme appelé
DICE puis le programme se termine par une instruction RETURN. Jetons un oeil à ce
sous-programme DICE. Double-cliquez sur le champ de données de l'instruction
DICE SUBASSY,T. La page de code associée au sub-assy DICE est composée
principalement d'instructions TPOLY:
DICE SUBASSY,T click to come back
TPOLY 4;...
TPOLY 4;...
...
RETURN
Nous allons affecter une couleur ombrée à ces polygones: insérez une instruction
GCOLOR (groupe Color/Texture, option shaded color) en tête de la
liste et donnez lui un indice de couleur correspondant au vert pale (indice=13).
Comme je vous l'ai dit précédemment, il faut maintenant transformer toutes les
instructions TPOLY en instructions GPOLY. Cliquez sur la première instruction
TPOLY puis cliquez sur la dernière en appuyant en même temps sur la touche SHIFT.
Toutes les isntructions TPOLY sont sélectionnées. Activez l'option Polygon type
du menu Code ou appuyez sur CTRL+P (pour voir la liste des
raccourcis clavier disponibles sous l'Editeur de code, vous pouvez appuyer sur la touche F10).
Dans la fenêtre de sélection de type de polygone choisissez l'option shaded.
La liste d'instructions devrait maintenant ressembler à ceci:
DICE SUBASSY,T click to come back
GCOLOR 13
TPOLY 4;...
TPOLY 4;...
...
RETURN
Et maintenant, Mesdames et Messieurs... la compilation! Cliquez sur le dixième
bouton de la barre d'outils (celui avec un petit avion). Une fenêtre de saisie
s'affiche vous proposant des options de compilation. Acceptez les valeurs par
défaut et cliquez sur le bouton OK. Une autre fenêtre suit qui vous demande
de choisir le type de tableau de bord. Nous nous contenterons du tableau de bord
correspondant à un moteur à explosions proposé par défaut. Cliquez sur le bouton
write. Et voilà! La compilation a été réussie. Comme nous n'avons pas
encore déclaré de texture, c'est terminé.
Whaou... vous voyez que vous pouviez le faire! Avant de tester ce bijou, je vous
suggère de sauvegarder votre travail. On ne sait jamais. Sélectionnez l'option
Save as du menu File de l'Editeur Graphique. Entrez "MyRFO" comme nom de
fichier et validez. Et maintenant, filons vers la piste d'essais.
Minimisez la fenêtre d'Aircraft Designer 2000. Avant de lancer FS2000™, copiez le fichier "MYRFO.AIR"
qui se trouve dans le répertoire de ce tutoriel dans le répertoire "Aircraft\Test"
de Flight Simulator. Maintenant vous pouvez lancer FS2000™. Je vous conseille de
faire tourner FS2000™ dans une fenêtre plutôt qu'en plein écran. Il vous sera de
la sorte plus facile de passer de FS2000™ à Aircraft Designer 2000 et réciproquement. Chargez
l'avion MyRFO et regardez le résultat en vue extérieure.
- Ah, mais ça ne va pas du tout! Ce n'est pas ce que je voulais! Qu'est-ce que
c'est que ce trou en face avant? Je veux être remboursé!
Du calme. Il doit y avoir une explication très simple. Revenez à Aircraft Designer 2000.
Sélectionnez le Desk en cliquant sur l'icone qui le représente dans la
barre des sub-assies. Cliquez ensuite sur le bouton Show sel dans
la barre d'outils. Il y a un carré dans le Desk. Il se pourrait bien que
ce soit la face manquante du cube.
Tout juste. Lorsque vous construisez un cylindre, il arrive souvent que vous
n'ayez pas besoin du polygone qui referme le cylindre. Celui-ci est rangé dans le
desk. C'est la raison pour laquelle il n'était pas visible car les
polygones rangés dans le Desk ne sont pas visualisés. Comme c'est le seul
polygone du Desk, il est sélectionné par défaut. Activez l'option
Move to sub-assy du menu Sub-assy et sélectionnez le sub-assy
DICE dans la liste déroulante. Validez: le polygone est transféré dans le DICE.
Ce n'est pas tout: ce polygone est la réplique exacte du polygone de base.
Ceci veut dire qu'il est orienté dans la même direction... vers l'arrière.
Nous le voulons orienté vers l'avant. Pour faire cela, activez l'option Flip
du menu Draw.
Bon... essayons de nouveau notre avion.
Puis-je vous rappeler que FS2000™ tourne toujours et que "MyRFO" est l'avion en
cours d'utilisation par FS2000™? Si vous cherchez à compiler le modèle maintenant, cela va
faire du vilain. Faut-il arrêter FS2000™? Non, heureusement. Il suffit simplement
de sélectionner un autre avion avant de lancer la compilation sous Aircraft Designer 2000.
Pas de chance: la compilation a échoué quand même. Jetez un oeil au panneau
d'erreurs qui s'est affiché:
(8) DICE: corrupted texture file or shaded polygon ill defined
(4) master: error in sub-assy DICE
compilation aborted
Qu'est-ce que ça veut dire?
Tout simplement qu'il y a une erreur à la huitième instruction du sub-assy
DICE et que cette erreur a entrainé une erreur à la quatrième instruction de la
page de code principale. Jetons un oeil à la page de code du sub-assy DICE.
Comme vous pouvez le constater, il y a une instruction TPOLY en fin de liste.
Une isntruction TPOLY définit un polygone texturé et nous n'avons pas déclaré de
texture. C'est une instruction GPOLY qui convient: une instruction définissant
un polygone supportant un ombrage de type "Gouraud". Pas de problème: il suffit
de double-cliquer sur le champ de code de l'instruction TPOLY et de sélectionner
l'option shaded dans la fenêtre de sélection de type de polygone. Vous
pouvez relancer la compilation: cette fois elle sera réussie et vous allez
pouvoir aller regarder votre nouveau joujou sur le tarmac.
Ce cube n'est pas très profilé. Côté aérodynamique, ça n'est pas terrible. Il
faut faire quelque chose. Revenez à l'écran d'Aircraft Designer 2000. Sélectionnez l'option
Select first chain du menu Sub-assy. Si vous êtes dans la vue de
côté (side), vous pouvez constater que la face arrière du cube est
sélectionnée (elle apparaît en sur-brillance). Activez ensuite l'option
Copy/Translation du menu Draw. Le mode par défaut est le mode vector,
c'est celui que nous allons utiliser. Modifiez les coordonnées du vecteur comme suit:
0.000 -3.000 0.000
Validez en cliquant sur le bouton move. le cube n'est plus un cube: c'est
devenu une sorte de parallélépipède rectangle. Appuyez ensuite plusieurs fois
sur la touche C. Les touches c et C permettent de naviguer
dans le liste des polygones appartenant au sub-assy courant (pour voir la
liste des raccourcis clavier disponibles sous l'Editeur Graphique, vous pouvez appuyer sur la
touche F10). Appuyez autant qu'il le faudra pour mettre la face avant du
ci-devant cube en surbrillance. Activez l'option Copy/Translation du menu
Draw et modifiez les coordonnées du vecteur comme suit:
0.000 3.000 0.000
Validez en cliquant sur le bouton move.
La verrière de canopée et la tête du pilote
Cette sorte de poutre que vous venez de bâtir va nous servir de tronçon de
fuselage. Nous allons ajouter une verrière de canopée au dessus et y mettre
la tête du pilote. Pour construire la verrière, nous allons utiliser une classe
de templates de type demie-section. Ensuite, pour lui donner un aspect
semi-transparent, nous allons affecter aux polygones qui la constituent un indice
de transparence.
Sélectionnez l'option New class du menu Template. Cliquez sur le
bouton-radion half-section et choisissez l'option top. Donnez un nom
à cette classe ("CANOPY" paraît judicieux) et entrez le chiffre 8 dans le champ de
données number of sides. Cliquez sur le gros point vert marqué set parameters.
Cela entraine l'affichage de l'éditeur de template. L'éditeur de template
vous permet de définir les paramètres du premier template de la classe.
Pensez à ce template comme à un arceau de la verrière. Pour cette fois, je
vous propose de commencer par l'arceau arrière. Cet arceau se situe au dessus de
la poutre-fuselage. Entrez les valeurs suivantes dans les champs de données
consacrés aux coordonnées de l'origine du template:
0.000 -3.000 3.500
Cochez la case U-shape en bas de l'éditeur de template. Entrez les valeurs
suivantes dans les champs de données height et width:
height = 3.000
width = 4.000
Acceptez les autres paramètres par défaut et validez la création du premier
template en cliquant sur le bouton OK. Validez la création de la
classe en cliquant une nouvelle fois sur OK.
Créer l'arceau avant est une simple formalité. Activez l'option New template
du menu Template. Entrez les valeurs suivantes dans les champs de données
height et width:
height = 3.000
width = 4.000
Entrez les valeurs suivantes dans les champs de données consacrés aux coordonnées
de l'origine du template:
0.000 2.000 3.500
Vous ne pouvez pas valider la création sans avoir édité le template.
Comme nous allons accepter les valeurs par défaut, il vous suffit de cliquer sur
le bouton edit puis tout de suite après sur le bouton OK de
l'éditeur de template. Validez la création de ce deuxième template
en cliquant une nouvelle fois sur OK.
Maintenant que nous avons les deux arceaux, il nous faut créer les polygones qui
vont couvrir la verrière. Avant de faire cela, créez un sub-assy que vous
appellerez "CANOPY". Activez l'option Cover template du menu Template. La
classe CANOPY est la seule disponible pour le moment, elle est donc sélectionnée
par défaut. Cliquez sur le bouton-radio cover section. Comme nous n'avons
défini que deux templates dans cette classe, ils sont eux aussi sélectionnés
par défaut. Validez la couverture en cliquant sur le bouton cover. Une
série de polygones est générée automatiquement pour couvrir la verrière.
Pour compléter la verrière, nous aimerions représenter un pare-brise plongeant
sous le capot du fuselage. Pour cela, il est nécessaire de créer un troisième
template au devant de l'arceau avant et sous le capot du fuselage. Aircraft Designer 2000
permet de générer automatiquement les polygones qui font la jonction entre ce
template et l'arceau avant puis de les tronquer au niveau du plan
supérieur du fuselage. Créez ce nouveau template à partir des paramètres
suivants:
height = 2.000
width = 3.000
origin = (0.000, 4.500, 1.000)
Acceptez les autres paramètres par défaut et validez. Activez l'option
Cover template du menu Template et choisissez l'option
intersection with a plane. Sélectionnez les templates appropriés au
moyen des boutons flêchés haut/bas situés à droite des rangées de coordonnées
définissant les origines des templates:
#1 : 0.000 2.000 3.500
#2 : 0.000 4.500 1.000
Lorsque vous avez sélectionné ces deux templates, cliquez sur le petit
bouton OK juste au dessous. Il vous faut maintenant sélectionner le plan
d'intersection. Pour faire cela, cliquez sur n'importe quel sommet du DICE. L'un
des côtés de ce sub-assy apparaîtra en marron. Appuyez ensuite autant de
fois qu'il le faut sur la touche C pour sélectionner le côté désiré
(le côté supérieur, bien sûr). Lorsque ce côté apparaît à son tour en marron,
cliquez de nouveau sur le petit bouton OK. Assurez vous que le sub-assy
CANOPY est sélectionné (s'il ne l'est pas, cliquez sur l'icone le représentant
dans la barre des sub-assies) et validez la couverture en cliquant sur le
bouton cover. Jetez un oeil au résultat sur l'écran de l'Editeur Graphique.
Nous n'en avons pas tout à fait terminé avec la verrière. Il nous faut encore
couvrir la partie arrière. Activez l'option Cover template du menu
Template et choisissez l'option cover selected template. Sélectionnez
le template approprié au moyen des boutons flêchés haut/bas situés à droite
de la rangée de coordonnées définissant l'origine du template:
0.000 -3.000 3.500
Cliquez sur le bouton AFT en bas et à gauche de la fenêtre de saisie.
Validez en cliquant sur le bouton cover. Le modèle 3D de la verrière est terminé.
Pour concevoir la tête du pilote, nous allons utiliser une paire de templates
horizontaux de type section. Créez une nouvelle classe de templates que
vous appellerez "PILOT". Cliquez sur le bouton-radio xOy en haut de la
fenêtre de création de classe de façon à définir une classe de sections
horizontales. Acceptez le nombre de côtés par défaut (12) et cliquez sur le
bouton vert set parameters. Vous accepterez les paramètres par défaut à
l'exception de la hauteur et de la largeur:
height = 1.100
width = 0.900
Sortez de l'éditeur de template en cliquant sur le bouton OK.
Saisissez les valeurs suivantes dans les champs de données consacrés aux
coordonnées de l'origine du premier template:
0.000 -1.000 4.000
Validez en cliquant sur le bouton OK.
Pour créer le second template, nous allons utiliser l'option de copie de
template. Activez l'option Copy template du menu Template.
Saisissez les valeurs suivantes dans les champs de données consacrés aux
coordonnées de l'origine du template:
0.000 -1.000 5.500
Validez en cliquant sur le bouton OK.
Avant de générer les polygones couvrant la tête du pilote, créez un nouveau
sub-assy que vous appellerez "PILOT". Activez l'option Cover template
du menu Template. Il y a cette fois deux classes de templates
disponibles et il est possible de choisir l'une ou l'autre dans la liste
déroulante appelée select template class. Acceptez la classe proposée par
défaut (qui est la classe PILOT) ainsi que les autres options (le bouton-radio
cover section, les deux templates proposés par défaut et le
bouton EXT). Validez en cliquant sur le bouton cover. Pour en finir
avec la tête du pilote, il nous faut encore créer les polygones qui recouvrent le
cylindre ainsi créé en haut et en bas. Activez l'option Cover template du
menu Template et choisissez l'option cover selected template.
Sélectionnez le template défini par les coordonnées suivantes:
0.000 -1.000 4.000
Cliquez sur le bouton BOT et validez la couverture en cliquant sur le
bouton cover. Activez de nouveau l'option Cover template du menu
Template avec l'option cover selected template. Sélectionnez le
template défini par les coordonnées suivantes:
0.000 -1.000 5.500
Cliquez sur le bouton TOP et validez la couverture en cliquant sur le
bouton cover.
Bon travail! Occupons nous maintenant des pages de code. Lancez l'Editeur de code. Les
deux nouveaux sub-assies sont inscrits dans la page de code principale:
MYRFO MASTER
GOSUB DICE
RETURN
DICE SUBASSY,T click to open sub-assy
CANOPY SUBASSY,T click to open sub-assy
PILOT SUBASSY,T click to open sub-assy
ENDBLOCK
Comme je vous l'ai indiqué, il faut les appeler depuis la section de code
principale. Insérez deux instructions GOSUB et faites les pointer vers ces
deux sub-assies:
MYRFO MASTER
GOSUB DICE
GOSUB CANOPY
GOSUB PILOT
RETURN
DICE SUBASSY,T click to open sub-assy
CANOPY SUBASSY,T click to open sub-assy
PILOT SUBASSY,T click to open sub-assy
ENDBLOCK
Double-cliquez sur le champ de données de l'instruction CANOPY SUBASSY,T pour
visualiser la page de code associée à ce sub-assy. Nous voulons que ce
sub-assy ait un aspect semi-transparent. Insérez une instruction GLASS
en tête de liste (groupe Color/Texture, option Transparency).
Lorsque je dis en tête, cela veut dire en deuxième position, bien sûr: vous vous
souvenez qu'il n'est pas possible d'insérer une instruction en tout début de liste,
n'est-ce pas? Affectez un indice de 6 à cette instruction GLASS. Transformez
ensuite toutes les instructions TPOLY de ce sub-assy en instruction GPOLY
(CTRL+P).
CANOPY SUBASSY,T click to come back
GLASS 6
GPOLY 4;...
GPOLY 4;...
...
RETURN
Sélectionnez l'option PILOT du menu Page pour appeler la page de
code du sub-assy PILOT. C'est également une liste d'instructions TPOLY mais cette fois
nous allons les utiliser comme telles. Insérez une paire d'instructions combinées
TEXTURE/LIMITS en tête de liste (groupe Color/Texture, option Texture).
Avant de continuer, il vous faut copier le
fichier "PILOT.BMP" qui se trouve dans le répertoire de ce tutoriel à l'intérieur
du répertoire "Test" que vous avez créé au sein du répertoire d'Aircraft Designer 2000.
Pendant que vous y êtes, profitez en pour transférer également les fichiers
"Wing.BMP" et "Tail.BMP": vous en aurez besoin ultérieurement.
Double-cliquez sur le champ de données de l'instruction TEXTURE et sélectionnez le
fichier "Pilot". Cliquez sur le bouton-radio half2 et sur le bouton-radio
front. Validez. Il nous faut maintenant un support de texture pour définir
les limites de la texture. Quittez l'Editeur de code et activez la vue de face (front)
de l'Editeur Graphique.
La tête du pilote apparaît minuscule sur l'écran. Cliquez par deux fois sur la
flêche pointée vers le haut qui se trouve à côté du champ de données scale en bas et à
droite de l'écran. L'échelle passe à 1 pied pour 50 pixels. Activez le mode de
création de chaîne (quatrième bouton de la barre d'outils). En mode alignement
(celui avec la touche CTRL pressée...) cliquez sur les points situés aux
coordonnées suivantes pour créer un nouveau polygone:
x = -0.4500 z = 5.500
x = 0.4500 z = 5.500
x = 0.4500 z = 4.000
x = -0.4500 z = 4.000
A chaque fois, Aircraft Designer 2000 vous proposera de choisir parmi deux valeurs possibles de
"y". Choisissez celle qui vous plait: cela n'a pas d'importance puisque nous
cherchons à définir les limites d'une texture appliquée en frontal. Une fois que
vous avez terminé, validez la création puis activez l'option Define chain as support du
menu Utilities.
Ce polygone a été créé dans le sub-assy PILOT mais nous ne souhaitons pas le
voir affiché par Flight Simulator. Nous pourrions le transférer dans le Desk mais
il existe un autre moyen de la cacher. Lancez l'Editeur de code et allez à la page de code
du sub-assy PILOT. Le dernier polygone créé apparaît en fin de liste.
Double-cliquez sur le champ de code de l'instruction concernée et choisissez
l'option Hidden dans la fenêtre de sélection de type de polygone. De la
sorte, ce polygone sera omis lors de la compilation du modèle. Double-cliquez
ensuite sur le champ de données de l'instruction LIMITS. Cliquez sur l'une des
flêches droite ou gauche de la fenêtre de sélection des limites de texture pour
appeler le support de texture que vous venez de définir (c'est d'ailleurs le seul
de la liste pour le moment). Validez. La page de code devrait maintenant
ressembler à ce qui suit:
PILOT SUBASSY,T click to come back
TEXTURE Pilot
LIMITS -0.450,0.450,4.000,5.500
TPOLY 4;...
TPOLY 4;...
...
...
TPOLY 12;...
HIDDEN 4;...
RETURN
Passons aux essais. Lancez FS2000™ s'il n'est pas déjà lancé. S'il était lancé,
assurez vous que l'avion en cours de sélection par FS2000™ n'est pas MyRFO.
Compilez le modèle. Lorsque la fenêtre de sélection du tableau de bord
s'affichera, cliquez sur le bouton Keep puisque nous avons déjà
sélectionné le tableau de bord. Comme nous avons affecté une texture à
notre modèle, une fenêtre de copie de texture apparaîtra. Cliquez sur OK
pour valider la copie du fichier de texture. Et voilà... Jetez un oeil au
résultat.
Affreux, n'est-ce pas? Particulièrement le pilote: on dirait un extra-terrestre.
Pas très futé, en plus. Bon... on n'est pas là pour participer à un concours de
beauté. Ce n'est rien d'autre qu'un tutoriel. Quittez l'Editeur de code. Comme vous pouvez
le constater, le support de texture est mis en évidence par une couleur
différente. Pour revenir au jeu normal de couleurs, sélectionnez l'option
Show no utilities du menu Utilities ou appuyez sur la touche F6.
Les ailes
Il est temps de s'occuper des ailes. Pour faire cela, nous allons procéder par étapes:
Nous allons créer le deuxième template par simple copie de celui-ci.
Activez l'option Copy template du menu Template. Il y a désormais
trois classes disponibles dans la liste déroulante select a class. La
classe proposée par défaut est la classe WING: c'est bien sûr celle qui nous
intéresse. Entrez les valeurs suivantes dans les champs de données consacrés aux
coordonnées de l'origine du template:
20.000 -4.500 0.000
Entrez ensuite sa corde:
cord = 8.000
L'épaisseur (thickness) sera réglée automatiquement:
thick. = 1.244
Créez un nouveau sub-assy et appelez le RWING (Right WING). Activez
l'option Cover template du menu Template et cliquez sur
le bouton-radio wing tip / double. Les origines des templates que nous
voulons utiliser sont les bonnes (et pour cause: il n'y en a que deux) mais elles
ne sont pas dans le bon ordre. Cliquez une fois sur la flêche pointant vers le
bas juste à côté de la première rangée de coordonnées pour les remettre dans le
bon ordre:
3.500 -4.500 0.000
20.000 -4.500 0.000
Acceptez les autres paramètres par défaut et cliquez sur le bouton cover.
Vous venez de créer l'aile droite.
Comme nous voulons texturer les ailes, je vous propose de définir tout de suite
le support de texture correspondant à l'aile droite. Sélectionnez le Desk
dans la barre des sub-assies et activez le mode de création de chaîne.
Sélectionnez la vue de dessus (top) et ajustez l'échelle de façon à ce
que l'aile occupe tout l'écran. En utilisant le mode alignement, construisez un
triangle dont les extrémités droite/gauche et avant/arrière coincident avec celles
de l'aile:
x = 3.500 y = -4.500
x = 3.500 y = 4.500
x = 22.400 y = 0.834
Validez et déclarez le triangle créé comme support de texture.
Lancez l'Editeur de code et allez à la page de code consacrée au sub-assy RWING.
Insérez une paire d'instructions TEXTURE/LIMITS en tête de liste. Double-cliquez
sur le champ de données de l'instruction TEXTURE, cliquez sur le bouton-radio
top en bas à droite de la fenêtre de sélection de texture et choisissez le
fichier "Wing" dans la liste (je fais l'hypothèse que vous l'avez bien copié
dans le répertoire du projet tout à l'heure). Validez la sélection puis
double-cliquez sur le champ de données de l'instruction LIMITS. En cliquant sur
l'une des flêches droite/gauche vous appellerez automatiquement le dernier
support de texture créé (en cliquant plusieurs fois, vous passez en revue tous
les supports de texture déjà créés: ne faites pas cela maintenant). Validez.
La liste d'instruction devrait ressembler à ce qui suit:
RWING SUBASSY,T click to come back
TEXTURE Wing
LIMITS 3.500,22.400,-4.500,4.500
TPOLY 3;...
TPOLY 3;...
...
RETURN
Fermez l'Editeur de code et revenez à l'Editeur Graphique. La construction de l'aile gauche est un
enfantillage. Sélectionnez le sub-assy RWING. Activez l'option Mirror sub-assy du
menu Sub-assy. Dans la fenêtre de saisie qui s'affiche à droite de l'écran,
entrez le nom du sub-assy consacré à l'aile gauche (je propose "LWING").
Validez. C'est tout!
Lancez l'Editeur de code et allez à la page de code du sub-assy LWING. Vous pouvez
voir que la liste d'instructions est la réplique de la page de code du sub-assy
RWING. Retournez à la page de code principale. Il nous faut maintenant insérer
deux appels de sous-programme dans la section principale. Insérez deux
instructions GOSUB à la suite des autres et faites les pointer vers les sub-assies
RWING et LWING. La liste d'instruction devrait ressembler à ce qui suit:
MYRFO MASTER
GOSUB DICE
GOSUB CANOPY
GOSUB PILOT
GOSUB RWING
GOSUB LWING
RETURN
DICE SUBASSY,T click to open sub-assy
CANOPY SUBASSY,T click to open sub-assy
PILOT SUBASSY,T click to open sub-assy
RWING SUBASSY,T click to open sub-assy
LWING SUBASSY,T click to open sub-assy
ENDBLOCK
Il est temps de jeter un oeil au résultat. Vérifiez que MyRFO n'est PAS l'avion
en cours de sélection par FS2000™ et compilez le modèle. Acceptez les invitations à
copier les textures puisque nous venons d'en déclarer une nouvelle. Jetez un
oeil à l'écran de FS2000™.
Cela commence à prendre tournure. Je suis sûr que ce serait parfait avec un
empennage arrière.
La queue
Nous pourrions construire la queue de notre modèle dans le master project
mais ce serait trop simple. Ceci est un tutoriel et il faut que vous en baviez
un peu. Nous allons créer un assembly qui sera appelé par le master project.
Avant cela, nous allons exporter une partie du master project de façon à
être en mesure de la récupérer dans le nouvel assembly.
Sélectionnez le sub-assy DICE et activez l'option Select all chains for export
du menu Sub-assy. Sauvegardez le projet (troisième bouton de la barre
d'outils). Cliquez ensuite sur le premier bouton de la barre d'outils pour
démarrer une nouvelle session. Appelez ce nouveau projet "TAIL" et faites en
sorte que la case master project ne soit pas cochée. Validez et acceptez
l'invitation à effacer les données existantes. Activez ensuite l'option
Import.../Import chains du menu File et sélectionnez le fichier
"MyRFO" dans la boîte de dialogue. Validez. Un sub-assy "Import" est créé
dans lequel est placé une réplique du sub-assy DICE. Bon départ!
L'assembly TAIL sera composé de:
Nous allons utiliser une classe de sections pour créer la partie arrière du
fuselage. Créez une classe de sections et appelez la "FUSELAGE". Acceptez les
options proposées par défaut (plan xOz, 12 côtés). Entrez les
valeurs suivantes dans les champs de données consacrés aux coordonnées de
l'origine du template:
0.000 -6.500 -3.500
Cliquez sur le bouton set parameters et entrez les valeurs suivantes dans
les champs de données height et width:
height = 7.000
width = 5.000
Acceptez les autres paramètres et validez en cliquant par deux fois sur OK.
Créez un autre template situé en:
0.000 -22.000 -2.000
Donnez lui la hauteur et la largeur suivantes:
height = 4.000
width = 2.800
Acceptez les autres paramètres par défaut dans l'éditeur de template et
validez. Activez ensuite l'option Cover template du menu Template.
Choisissez l'option cover section et acceptez les deux templates qui
sont proposés. Validez la couverture en cliquant sur le bouton cover.
Pour terminer la partie arrière du fuselage, nous allons utiliser une autre
option de couverture automatique. Activez l'option Cover template du menu
Template et cliquez sur le bouton-radio dual summit cover. Vérifiez
que le template sélectionné est bien celui défini par:
0.000 -22.000 -2.000
Si ce n'est pas le cas, sélectionnez le grâce aux boutons flêchés haut/bas à
droite de la rangée de coordonnées. Entrez les valeurs suivantes dans les champs
de données appelées summit of the cone:
0.000 -24.000 -1.000
Acceptez les autres paramètres par défaut et validez en cliquant sur le bouton
cover. Regardez le résultat sur l'écran de l'Editeur Graphique.
Nous en avons terminé avec le modèle 3D du fuselage. Intéressons nous maintenant à
la dérive. Pour l'instant, nous nous contenterons de la partie fixe: la gouverne
de direction est une partie mobile et les parties mobiles font l'objet d'un autre
chapitre de ce tutoriel. Sélectionnez le sub-assy VERTFIN. Activez le mode de
création de chaîne et créez tout d'abord deux sommets situés en:
0.000 -19.000 7.800
0.000 -21.000 7.800
Les deux autres sommets de ce polygone doivent être construits sur la peau du
fuselage. Pour cela, nous allons utiliser le mode intersection de l'éditeur de
chaîne. Cliquez sur le bouton inter. pour activer ce mode. Cliquez sur l'un
des sommet du fuselage: l'un des côtés du fuselage apparaît en marron. Cliquez
autant de fois qu'il le faut sur la touche C pour sélectionner le polygone
situé au dessus du corps principal du fuselage. Validez en cliquant sur le petit
bouton OK. Cliquez ensuite sur le sommet du polygone en cours de
construction qui se trouve en:
0.000 -21.000 7.800
Validez. Complétez le processus en entrant les données suivantes dans les champs
de saisie des coordonnés du vecteur d'intersection:
0.000 0.000 -1.000
Validez par deux fois. Cette opération a généré le troisième sommet du polygone.
La construction du quatrième va suivre un processus semblable. Cliquez à nouveau
sur le bouton inter. pour activer le mode intersection. Cliquez sur l'un
des sommet du fuselage puis cliquez autant de fois qu'il le faut sur la touche C
pour sélectionner le polygone situé au dessus du corps principal du fuselage
(le même que tout à l'heure). Validez en cliquant sur le petit bouton OK.
Cliquez ensuite sur le sommet du polygone en cours de construction qui se trouve
en:
0.000 -19.000 7.800
Validez. Complétez le processus en entrant les données suivantes dans les champs
de saisie des coordonnés du vecteur d'intersection:
0.000 0.300 -1.000
Validez par deux fois. Terminez la création de ce polygone en cliquant sur le
bouton poly. Ce polygone représente un côté de la dérive. Pour créer
l'autre côté, activez l'option Mirror.../right/left du menu Draw.
Nous aimerions que la queue soit texturée, n'est-ce pas? Définissons tout de
suite les limites de la texture. Sélectionnez le Desk dans la barre des
sub-assies et activez le mode de création de chaîne. Assurez vous que
la vue de côté (side) est bien sélectionnée. En utilisant le mode
alignement, construisez un triangle dont les extrémités haute/basse et
avant/arrière coincident avec celles des sub-assies FUSE et VERTFIN:
y = -24.000 z = 1.000
y = -21.000 z = 7.800
y = -6.500 z = -3.500
Validez et déclarez le triangle créé comme support de texture.
Lancez l'Editeur de code et allez à la page de code consacrée au sub-assy FUSE.
Insérez une paire d'instructions TEXTURE/LIMITS en tête de liste. Double-cliquez
sur le champ de données de l'instruction TEXTURE et choisissez le fichier "Tail"
dans la liste (je fais l'hypothèse que vous l'avez bien copié dans le répertoire
du projet tout à l'heure). Validez la sélection puis double-cliquez sur le
champ de données de l'instruction LIMITS. Appelez le dernier support de texture
créé en cliquant sur l'une des flêches droite/gauche. Validez. Faites la même
chose avec le sub-assy VERTFIN.
Passons aux stabilisateurs. Sélectionnez le sub-assy RSTAB. Activez le mode
de création de chaîne et créez tout d'abord deux sommets situés en:
9.000 -19.400 0.000
9.000 -21.600 0.000
Comme nous l'avions fait pour la dérive, nous allons construire les deux autres
sommets de ce polygone, qui se trouvent sur la peau du fuselage, en utilisant le
mode intersection de l'éditeur de chaîne. Cliquez sur le bouton inter. pour
activer ce mode. Cliquez sur l'un des sommet du fuselage puis cliquez autant de
fois qu'il le faut sur la touche C pour sélectionner le polygone qui forme
le flanc droit du corps principal du fuselage. Validez en cliquant sur le petit
bouton OK. Cliquez ensuite sur le sommet du polygone en cours de
construction qui se trouve en:
9.000 -21.600 0.000
Validez. Complétez le processus en entrant les données suivantes dans les champs
de saisie des coordonnés du vecteur d'intersection:
-1.000 0.000 0.000
Validez par deux fois. Cette opération a généré le troisième sommet du polygone.
La construction du quatrième va suivre un processus semblable. Cliquez à nouveau
sur le bouton inter. pour activer le mode intersection. Cliquez sur l'un
des sommet du fuselage puis cliquez autant de fois qu'il le faut sur la touche C
pour sélectionner le polygone qui forme le flanc droit du corps principal du
fuselage (le même que tout à l'heure). Validez en cliquant sur le petit bouton OK.
Cliquez ensuite sur le sommet du polygone en cours de construction qui se trouve en:
9.000 -19.400 0.000
Validez. Complétez le processus en entrant les données suivantes dans les
champs de saisie des coordonnés du vecteur d'intersection:
-1.000 0.300 0.000
Validez par deux fois. Terminez la création de ce polygone en cliquant sur le
bouton poly. Pour créer l'autre face du stab, activez l'option
Copy/Translation du menu Draw et entrez les valeurs suivantes
dans les champs de saisie des coordonnées du vecteur de translation:
0.000 0.000 0.000
Cliquez sur le bouton dupl.+move pour valider. Le polygone sélectionné
a été dupliqué et translaté le long du vecteur défini. Comme les coordonnées de
ce vecteur sont nulles, la copie du polygone a été créée à la même place. Il
ne reste plus qu'à la "retourner". Activez l'option Flip du menu Draw
pour ce faire.
Nous allons peindre le stab en rouge. Lancez l'Editeur de code et allez à la page de
code du sub-assy RSTAB. Insérez une instruction GCOLOR en tête de liste
et donnez lui un indice de couleur égal à 5 (rouge). Sélectionnez ensuite les
deux instructions TPOLY et transformez les en instructions GPOLY (CTRL+P,
option shaded). Quittez l'Editeur de code et créez le sub-assy LSTAB avec
l'option Mirror sub-assy du menu Sub-assy.
Nous en avons terminé avec le modèle 3D. Il nous faut maintenant compléter la
page de code principale. Lancez l'Editeur de code et insérez quatre instructions GOSUB et
une instruction RETURN juste avant la première instruction SUBASSY,T. Faites
pointer ces instructions GOSUB vers les sub-assies que vous avez créés.
La page de code principale devrait ressembler à ce qui suit:
MYRFO ASSEMBLY
GOSUB FUSE
GOSUB VERTFIN
GOSUB RSTAB
GOSUB LSTAB
RETURN
FUSE SUBASSY,T click to open sub-assy
VERTFIN SUBASSY,T click to open sub-assy
RSTAB SUBASSY,T click to open sub-assy
LSTAB SUBASSY,T click to open sub-assy
ENDBLOCK
Et voilà! L'assembly est terminé. Pensez à sauvegarder votre travail
(option Save as du menu File, "Tail" me paraît judicieux comme
nom de fichier...). Reste maintenant à compiler l'assembly.
Compilation de l'assembly et insertion dans le master project
La compilation de l'assembly se fait de manière similaire à celle d'un
master project. La seule différence est qu'au lieu de créer un fichier *.MDL
dans un répertoire de Flight Simulator, elle crée un fichier *.MD1 dans le
répertoire de votre projet.
Une fois la compilation réalisée, ouvrez le fichier "MyRFO" puis lancez l'Editeur de code.
Restez dans la page de code principale et insérez une instruction INSERT en fin
de liste. Double-cliquez sur le champ de données de cette instruction. Une
fenêtre de sélection d'assembly s'affiche. Il n'y a qu'un seul assembly
compilé disponible actuellement: c'est l'assembly "Tail". Sélectionnez le
et validez. L'instruction suivante est insérée dans la liste:
INSERT TAIL
Ce type d'instruction doit ête traitée comme une déclaration de sub-assy.
Insérez une instruction GOSUB dans la section principale de la page de code
(juste après l'instruction GOSUB PILOT). Faites la pointer sur l'instruction
INSERT. La page de code doit maintenant ressembler à ceci:
MYRFO MASTER
GOSUB DICE
GOSUB CANOPY
GOSUB PILOT
GOSUB RWING
GOSUB LWING
GOSUB GOTAIL
RETURN
DICE SUBASSY,T click to open sub-assy
CANOPY SUBASSY,T click to open sub-assy
PILOT SUBASSY,T click to open sub-assy
RWING SUBASSY,T click to open sub-assy
LWING SUBASSY,T click to open sub-assy
GOTAIL INSERT TAIL
ENDBLOCK
Vous pouvez compiler (si MyRFO n'est pas sélectionné par FS2000™, bien sûr...)
et jeter un oeil au résultat sur la piste d'essais.
Allez... on l'essaie?
- Stooop! Désolé mon gars. La DGAC n'est pas prête à vous délivrer un certificat de navigabilité.
- Mais pourquoi?
- Vous n'avez pas de feu d'atterrissage.
- Mmmmince! J'avais oublié!
Feu d'atterrissage et autres trucs
Ajouter un feu d'atterrissage n'est pas bien difficile. Nous allons le placer
sur le bord d'attaque de l'aile droite. Lancez l'Editeur de code et allez à la page de
code du sub-assy RWING. Insérez une instruction LIGHT LAND en tête de liste
(groupe lighting, option landing light). Comme vous pouvez le
constater, cela a pour effet d'ajouter une paire d'instructions combinées dans la
liste (LIGHT LAND/LOCAVECT). Double-cliquez sur le champ de données de
l'instruction LIGHT LAND pour choisir la couleur du feu d'atterrissage
(je propose de choisir le jaune). Double-cliquez ensuite sur le champ de données
de l'instruction LOCAVECT pour définir la position du feu et sa direction.
Entrez les valeurs suivantes dans les champs de saisie:
x,y,z : 11.700 4.000 0.700
vx,vy,vz : 0.000 1.000 -0.200
Validez. Vous pouvez recompiler. Avant de jeter un oeil au résultat, je vous
propose de quitter l'Editeur de code et d'activer l'option Show light du menu View
de l'Editeur Graphique. La position du feu d'atterrissage apparaît marquée par un signe "+"
dans un carré. Vous pouvez maintenant passer à l'écran de FS2000™.
Houla... C'est plutôt décevant. On dirait que le cone de lumière est recouvert
par l'aile au lieu d'être placé sur le bord d'attaque.
Il y a bien sûr une raison à cela. je vous ai dit que FS2000™ utilisait la
technique du z-buffer pour dessiner les objets à l'écran dans un ordre
convenable. Les données stockées dans le z-buffer permettent à FS2000™ de
vérifier s'il n'y a pas un objet situé devant l'objet qu'il est en train de
tracer. Si ce n'est pas le cas, FS2000™ trace l'objet en cours et met à jour
le z-buffer. Le problème avec les cônes de lumière c'est qu'il ne s'agit pas
d'objets mais plutôt d'effet lumineux. Ils ne sont donc pas traités par le
z-buffer. Pour les afficher de façon correcte, il vous faut donc donner
vous-même à FS2000™ des instructions lui permettant de faire un tri des
sous-ensembles du modèle.
Le langage 3D de Flight Simulator met à notre disposition une instruction qui
permet de faire cela. C'est l'instruction JUMP PLANE (en fait, il s'agit
d'une paire d'instructions combinées JUMP PLANE/PLANE). Cette instruction
JUMP PLANE est une instruction de test dont le résultat dépend de la position de
l'observateur par rapport au plan défini par l'instruction PLANE. Cette
instruction était à la base de la conception de modèles pour FS98™ et CFS1™. Elle
était aussi la cause de nombreuses migraines. L'exemple suivant va vous montrer
comment elle fonctionne.
Supposons que le sub-assy MYTAIL représente la queue d'un avion et le
sub-assy MYSTAB un stab. Selon l'endroit où vous êtes situé, vous verrez
le stab devant la queue ou la queue devant le stab. Ceci veut dire que, selon
votre position, l'image du stab doit être dessinée après ou avant l'image de
la queue. Dans le premier cas, l'image du stab recouve partiellement l'image
de la queue, dans l'autre cas, c'est l'image de la queue qui recouvre
partiellement le stab. Ceci peut être formulé par un saut conditionnel:
selon la position de l'observateur par rapport à un plan
dessiner d'abord MYTAIL puis dessiner MYSTAB
ou
dessiner d'abord MYSTAB puis dessiner MYTAIL
Ceci peut être transcrit par la séquence suivante:
JUMP PLANE LABELA
PLANE parameters of the plane
GOSUB MYTAIL
GOSUB MYSTAB
RETURN
LABELA GOSUB MYSTAB
GOSUB MYTAIL
...
Cet exemple ne vous sert plus à grand chose si vous concevez pour FS2000™. Le
processus de tri des sous-ensembles est pris en charge par le z-buffer.
Hélas, ce n'est pas suffisant, puisqu'il faut traiter le cas des cones de lumière.
Plusieurs chapitres du fichier d'aide sont consacrés à l'art et la manière
d'utiliser les instructions JUMP PLANE. Si vous avez l'intention de concevoir
des avions compatibles avec FS98™ et CFS1™, je vous conseille de les potasser
sérieusement. Dans notre cas, il n'est pas nécessaire de devenir un expert du
JUMP PLANE puisque nous allons utilser cette instruction avec beaucoup de
modération.
Pour mettre en place une instruction JUMP PLANE, il faut d'abord définir le
plan qui supportera le test. Dans Aircraft Designer 2000, ce type de plan est appelé un plan
de joint (seal). Les plans de joint sont des polygones qui sont rattachés à
une liste que l'on peut trouver dans le menu Utilities. Revenons à notre
O.V.P.E.. Le plan que nous allons utiliser est le polygone qui forme le bord
d'attaque de l'aile.
Sélectionnez le sub-assy RWING puis sélectionnez le polygone formant le
bord d'attaque en cliquant autant de fois qu'il le faut sur la touche C.
Activez l'option Add chain to seals du menu Utilities. Lancez
l'Editeur de code et allez à la page de code du sub-assy RWING. Insérez en tête
de liste une séquence "JUMP PLANE". Une séquence "JUMP PLANE" est composée d'une
paire JUMP PLANE/PLANE, deux GOSUB, un RETURN, deux autres GOSUB et un deuxième
RETURN. Vous pouvez insérer la séquence en une seule opération avec la
combinaison de touches SHIFT+INSER. Il vous faudra également insérer
une instruction RETURN entre la paire d'instructions LIGHT LAND/LOCAVECT et la
paire d'instructions TEXTURE/LIMITS qui la suit.
La liste d'instructions devrait ressembler à ce qui suit:
RWING SUBASSY,T click to come back
JUMP PLANE ?
PLANE undefined vector
GOSUB ?
GOSUB ?
RETURN
GOSUB ?
GOSUB ?
RETURN
LIGHT LAND 4,20
LOCAVECT 11.700,4.000,0.700,0.000,1.000,-0.200
RETURN
TEXTURE Wing
LIMITS 3.500,22.400,-4.500,4.500
TPOLY 3;...
TPOLY 3;...
...
RETURN
Double-cliquez sur le champ de données de l'instruction PLANE. La fenêtre de
sélection de plan de joint s'affiche. Cliquez sur l'une des flêches gauche/droite
de la fenêtre pour sélectionner le plan de joint que nous avons déclaré il y a
quelques isntants. La distance du plan de joint à l'origine ainsi que les
coordonnées d'un vecteur perpendiculaire à ce plan s'affichent sur la fenêtre
de sélection. Ce vecteur pointe vers l'arrière. Nous voudrions le voir pointer
vers l'avant (c'est juste pour les besoins de ce tutoriel...). Cliquez sur le
bouton Reverse et validez. Distance et coordonnées du vecteur sont
reportées dans le champ de données de l'instruction PLANE. Il vous faut
maintenant affecter les adresses de destination de l'instruction JUMP PLANE
et des instructions GOSUB. Faites le en sorte d'obtenir la séquence
d'instructions suivante:
RWING SUBASSY,T click to come back
JUMP PLANE RW01
PLANE 4.703;0.060,0.998,0.000
GOSUB WING
GOSUB LIGHT
RETURN
RW01 GOSUB LIGHT
GOSUB WING
RETURN
LIGHT LIGHT LAND 4,20
LOCAVECT 11.700,4.000,0.700,0.000,1.000,-0.200
RETURN
WING TEXTURE Wing
LIMITS 3.500,22.400,-4.500,4.500
TPOLY 3;...
TPOLY 3;...
...
RETURN
La signification de cette séquence est la suivante:
position de l'observateur par rapport au bord d'attaque?
devant:
dessiner l'aile puis le cone de lumière
(en sorte que le cone puisse recouvrir partiellement l'aile)
derrière:
dessiner le cone de lumière puis l'aile
(en sorte que l'aile puisse recouvrir partiellement le cone)
Vous pouvez maintenant compiler le modèle et jeter un oeil au résultat.
Pas mal pour un débutant!