Create the aft section : the TAIL sub-assy TAIL
new concepts : create a sub-assy - cover templates |
We shall create the TAIL sub-assy which will contain the aft part of the fuselage and the fixed part of the rudder. Select the Sub-assy|New Sub-assy menu option. An input window is displayed on the right of the screen which allows you to input the sub-assy name. Write "tail" in the input data field. Validate by clicking on the OK button. The sub-assy est created and a new icon is displayed on the icon bar (in the following, we shall call it the sub-assy bar) at the bottom of the screen.
fuselage aft part
We shall generate automatically this part of the fuselage on the basis of the "fusetemp" templates. Select the Template|Cover Template menu option. In the input window which is displayed on the right of the screen, the currently selected class is "fusetemp" (there is at the moment only one class available). The default type of cover is cover section, it is fine. We must now select the templates which will be used in the cover process : the coordinates of the selected templates are displayed in two 3-coordinate rows just below the cover type selection panel. Select the templates which origin are located at :
0.000 | -15.000 | -0.900 |
0.000 | -8.000 | -2.200 |
To do that, use the Up/Down arrows beside the 3-coordinate rows. The cover ought to be seen from the exterior of the aircraft : this is the default option of the Int/Ext button pair. Make sure that the selected icon of the sub-assy bar is the "TAIL" icon. Validate by clicking on the cover button. The input window is cleared. Look at the Graphic Editor blue-navy screen : a set of polygons has been drawn to cover the two selected templates.
Select the Template|Cover Template menu option again. Select the dual summit cover option. Select the first template in the template list :
0.000 | -15.000 | -0.900 |
Enter the following numbers in the input data field labeled summit of the cone :
0.000 | -15.700 | -0.500 |
Enter : 1.350 in the ridge length input data field. Validate by clicking on the cover button. The very aft part of the fuselage is created.
apply a texture on a set of polygons
new concepts : the Model Editor - code pages - assign a texture - insert an instruction |
To apply a texture on the fuselage, we need to launch the
Model Editor. There are three ways to launch the Model Editor :A window is opened which displays the
Model Editor screen. The instruction panel contains the following instruction list :UGLY100 | MASTER | |
TAIL | SUBASSY,T | click to open sub-assy |
ENDBLOCK |
This is the high level code associated with the model. At the moment, the listing looks very simple : the beginning instruction, the TAIL sub-assy declaration, the ending instruction. To display the code associated with the sub-assy, you just have to double-click on the data field of the sub-assy declaration instruction (it is presently filled with the "click to open sub-assy" label). You could also activate the Code|Open sub-assy menu option after having selected the sub-assy declaration instruction (keypad shortcut : ALT-C, S). The last option available is to activate the Page|TAIL menu option. The Page menu allows you to have a direct access to all code pages from the menu.
The code page associated with the TAIL sub-assy is longer : it is composed of the declaration of all the polygons generated by
Aircraft Designer 2000 during our previous operations.TAIL | SUBASSY,T | click to come back |
TPOLY | 4; 2, 3, 15, 14 | |
TPOLY | 4; ... | |
... | ||
RETURN |
Select the second line of the list by clicking on it or on the left margin beside it. Note that the status bar at the bottom of the
Model Editor displays the number of lines of the current code page and the index of the currently selected line. We shall insert an insert an instruction right there.Click on the second button of the tool bar or press the INSERT key of the keypad. An instruction selection window is displayed. Select the Color/Texture option in the left panel. The right panel is modified. Select the Texture option and validate the instruction insertion by clicking on the OK button. The listing now displays :
TAIL | SUBASSY,T | click to come back |
TEXTURE | ? | |
LIMITS | undefined limits | |
TPOLY | 4; 2, 3, 15, 14 | |
TPOLY | 4; ... | |
... | ||
RETURN |
Double-click now on the question mark (?) in the data field of the
TEXTURE instruction. A texture selection window is displayed. In the list of available texture files displayed on the right of the window you will find the "fusaft" bitmap file (it should be here if you did not forget to copy the *.BMP files in the "Ugly100" directory as I asked you to do at the beginning of this tutorial). Select the file by clicking on its name. The bitmap is displayed in the left panel of the window. Have a look to the "radio-boutons" in the right lower part of the window. We shall use the default options (full and side). Validate by clicking on the OK button. The listing now displays :TAIL | SUBASSY,T | click to come back |
TEXTURE | fusaft | |
LIMITS | undefined limits | |
TPOLY | 4; 2, 3, 15, 14 | |
TPOLY | 4; ... | |
... | ||
RETURN |
texture limits
new concepts : save button - scale factor - create a polygon - capture mode - texture support - the grid |
To assign limits to the texture, we need to come back to the
Aircraft Designer 2000 main screen. The texture limits must be defined with a polygon. We shall create the polygon in the Desk and then declare it as a texture support. To come back to the main screen, you just have to click in the exit mark (x) in the upper right corner of the Model Editor window. Don't forget to save you job as you progress in the design of your model (third button of the Aircraft Designer 2000 tool bar).We shall create the texture support polygon from scratch and register it in the Desk. Select the Desk by clicking on the "Desk" icon (sub-assy bar). To ease you work, use the Up/Down arrows beside the scale factor data field in the lower right corner of the screen to magnify the image of the model. Select a 20 pixels/ft scale factor. Center the image by using the horizontal scroll-bar below the navy-blue Graphic Editor screen.
To activate the polygon creation mode, click on the fourth button of the tool bar (or activate the Draw|New chain menu option). The fixed window of the chain editor is displayed on the right of the screen. At the moment, we shall not use this window and work directly on the screen.
Move the mouse in order to get the cross-hair cursor around the aft extremity of the fuselage. The coordinates of the current position of the cursor are displayed in the control window in the upper right part of the screen. Close the cursor to the point located in :
y = -15.700 | z = 0.850 |
When you are just on this point (which is one of the vertices of the structure), this one will be highlighted by a small white square. Press the SHIFT key on the keypad and click on this point in the mean time. The point is "captured" and will be used as the first point of the chain of vertices which defines the polygon.
To help you when trying to locate a point on the screen, you may activate the "grid" mode. To do this, you just have to select the View|Grid menu option.
Bring now the cursor at a point defined by :
y = -2.400 | z = 1.500 |
This is a vertex of a "fusetemp" template. It is highlighted by a white square as long as the cursor moves close to it. Press the SHIFT key and click on this point. There are actually two points at the same location on the screen. A small temporary panel will be displayed in order for you to select one of them. Select the xt = 0.469 line in this panel by clicking on it. A second point is added to the chain. Repeat the operation with the point located at :
y = -2.400 | z = -2.500 |
to capture the third point of the chain.
If nothing went wrong, you should see the following list in the chain editor window :
0.000 | -15.700 | 0.850 |
0.469 | -2.400 | 1.500 |
0.469 | -2.400 | -2.500 |
Validate the created chain by clicking on the poly button (make sure that the Desk sub-assy is selected : if not, press the "Desk" icon in the sub-assy bar before you validate the chain creation). The window is cleared and the polygon is displayed as a triangle with a white and yellow line. This indicates you that this is the currently selected chain.
To declare the polygon as a texture support, activate the Utilities|Define chain as support menu option. If you activate the Utilities|Show texture support menu option, the triangle will be displayed with a violet and yellow line. It indicates that this is the currently selected texture support...
Launch the
Model Editor (tenth button of the tool bar). Select the TAIL suib-assy code page (double-click on the "click to open sub-assy" data field). Now double-click on the "undefined limits" data field of the LIMITS instruction. The texture support selection window is displayed. Click on one of the blue-green arrows. The window will be updated to display the minimum and maximum coordinates defined by the previously defined texture support :ymin, ymax : | -15.700 | -2.400 |
zmin, zmax : | -2.500 | 1.500 |
As it is the only registered texture support, it should be the right one ! Validate by clicking on the OK button. The listing is updated to display :
TAIL | SUBASSY,T | click to come back |
TEXTURE | fusaft | |
LIMITS | -15.700,-2.400,-2.500,1.500 | |
TPOLY | 4; 2, 3, 15, 14 | |
TPOLY | 4; ... | |
... | ||
RETURN |
There are 28 lines in the list : select the 28th line (the last one) and press the INSERT key. As you would bet, the instruction selection window is selected. The default option is
RETURN : validate (OK button). This RETURN instruction will help us isolate the already created polygons from the other parts we intend to create in the TAIL sub-assy later on. Exit the Model Editor and go back to the Aircraft Designer 2000 main screen.the fixed part of the rudder
new concepts : align a point on another point - create an intersection - the C shortcut - duplicate and flip a polygon - texture mask |
Select the TAIL sub-assy by pressing on its icon on the sub-assy bar. Select a 50 pixels/ft scale factor and move the image on the screen with the scroll-bars in order to have a good view of the rear of the fuselage.
Activate the chain creation mode. Chains are used to create polygons and open lines. Move the cursor close to the point located at :
y = -15.700 | z = 0.850 |
This time, press the CTRL key and click on the left button of the mouse. This will not capture the point as it did before. It creates a new point with the same coordinates as the existing point it is aligned on. Click then on a point located at :
y = -15.700 | z = 4.500 |
It's not that easy, is it ? You created a point located at :
y = -15.750 | z = 4.480 |
This is not that big an issue. Go to the chain editor window. Enter the number -15.700 in the input data field of the y coordinate. Enter the number 4.500 in the input data field of the z coordinate. Click on the modify button. That's it !
Now create a third point located at :
y = -14.500 | z = 4.500 |
We shall now build the fourth point of the rudder shape by having
Aircraft Designer 2000 calculating an intersection. Click on the inter. button in the chain editor window. The lower part of the window is modified and now displays a list of instructions and a few more buttons. As a matter of fact, an OK button stands beside a label written with red bold characters. This label ask you to select a plane. The plane you ought to select is a plane in which will be located the intersection point.Move the cursor around the point located at :
y = -8.000 | z = 1.400 |
When the cursor is close to it, it is highlighted by a white square. Click on it. One of the polygons to which this point is bbelonging is now drawn by a marroon-green line. Of course it's not the right one (Murphy's law...). We want to select the polygon which is right over the fuselage. As we are in a side view, this one should appear as a single line. That's not an issue : press the C key as many time as it takes to get the right polygon drawn with a marroon-green color. Once you are done with it, click on the small OK button beside the red label in the chain editor window. The button will shift a little bit lower, the select a plane label is now written with black italic characters and the label just below (select a point) turns red.
Move the cursor close to the point located at :
y = -14.500 | z = 4.500 |
and click on it. It will be highlighted by a red square. Click on the small OK button. The button shifts again, the select a point label is now written with black italic characters and the label just below turns red (select another point or a vector). We shall use the second option. Enter the following numbers in the input data fields of the vector coordinates :
0.000 | 1.000 | -2.000 |
Click on the small OK button (which is cleared) and then on the other OK button at the bottom of the chain editor window. The intersection is created. The chain editor window now displays the list of the four vertices which define the rudder shape :
0.000 | -15.700 | 0.850 |
0.000 | -15.700 | 4.500 |
0.000 | -14.500 | 4.500 |
0.000 | -12.779 | 1.059 |
Validate the created chain by clicking on the poly button . The created polygon is drawn with a white and yellow line on the Graphic Editor screen.
That is just one side of the fixed part of the rudder. We must now create the other side of it. Activate the Draw|Copy/Translation menu option. As usual, a fixed window is displayed. We just want to create a copy of the currently selected polygon. Enter :
0.000 | 0.000 | 0.000 |
in the input data fields of the coordinates of the translation vector. Click then on the dupl. + move button. A polygon similar to the currently selected one is created. It needs to be reversed in order to be visible from the other side of the aircraft. Activate the Draw|Flip menu option : that's it !
Let's launch the
Model Editor. Display the code page associated with the TAIL sub-assy. You will notice that two lines were added at the end of the list. We shall assign a texture to these two polygons. Highlight the 29th line by clicking on it (it is the first of the two instructions that we have just created). Press the INSERT key and insert a TEXTURE/LIMITS combined instruction pair (see above how to do that). Double-click on the question mark in the TEXTURE data field. Select the "Rudder" file. Select then the half2 mask option. You will notice that a mask is applied on the bitmap displayed in the left panel of the window. Keep the default orientation option (side) and validate by clicking on the OK button. At the moment, we shall not assign the texture limits. Let us have a look to the sorting logic of the two parts that we have created (the aft part of the fuselage and the fixed part of the rudder).allowing the flight simulator to sort the parts
new concepts : JUMP PLANE instruction - seal plane - label - assign a destination address to a JUMP instruction |
Come back to the top of the instruction list and select the line #2. At the moment, it is a
TEXTURE instruction ("TEXTURE fusaft"). Press the INSERT key, select the Jump option in the left panel of the instruction selection window and the Jump Plane option in the right panel. Validate by clicking on the OK button.Two lines have been inserted into the list :
TAIL | SUBASSY,T | click to come back |
JUMP PLANE | ? | |
PLANE | undefined vector | |
TEXTURE | fusaft | |
LIMITS | -15.700,-2.400,-2.500,1.500 | |
TPOLY | ... |
You will now insert six other instructions just below the
JUMP PLANE / PLANE combined instruction pair in order to get the following sequence :TAIL | SUBASSY,T | click to come back |
JUMP PLANE | ? | |
PLANE | undefined vector | |
GOSUB | ? | |
GOSUB | ? | |
RETURN | ||
GOSUB | ? | |
GOSUB | ? | |
RETURN | ||
TEXTURE | fusaft | |
LIMITS | -15.700,-2.400,-2.500,1.500 | |
TPOLY | ... |
The
JUMP PLANE / PLANE combined instruction pair is a conditional jump. This kind of conditional jump is required by FS98™ and CFS™ to define which of the fuselage or the tail must be drawn first during the viewing process. The result of the jump instruction depends on the position of the observer with respect to the junction plane between these two parts. We need to define this junction plane (a junction plane is called a seal by Aircraft Designer 2000 : see the program help file to learn more about the seal planes and their use). In that particular case (fuselage vs. rudder), this is the plane we already used to build the intersection point which is part of the rudder definition. This plane is based on a polygon of the TAIL sub-assy. We need to declare it as a seal.A 3D model is composed of several sub-assemblies. As an example, let us consider the fuselage and the two wings. When the flight simulator displays the model on the screen, the sub-assemblies must be sorted in order to be drawn in the right order. The sorting process depends upon the position of the "virtual observer" with respect to the model. If he stands on the right side of the aircraft, the flight simulator must draw the left wing, then draw the fuselage and eventually draw the right wing. Therefore, the left wing is partly covered by the fuselage, which is covered by a part of the right wing. If the virtual observer stands on the left side, the order must be reversed. This is a simplistic example. There are many sub-assemblies in a model. Yet, it is always possible to say : if the observer is on the right side, or below, or in front of a given plane, the sub-assembly set "A" must be drawn before the sub-assembly set "B", in the other case, the sub-assembly set "B" must be drawn before the sub-assembly set "A".
Neither FS98™ nor CFS™ perform that sorting process by themselves : they must be given instructions to do that. This is the purpose of the
JUMP PLANE and GOSUB instructions :JUMP PLANE | X01 | |||||||||||||||||||||
PLANE | P01 | //according to the observer position with respect to plane P01...
GOSUB | A | //... draw "A" before "B"
| GOSUB | B
| RETURN
| X01 | GOSUB | B | //... or draw "B" before "A"
| GOSUB A
| RETURN
| ...
| |
FS2000™ uses a new "viewing engine" , based on a different algorithm, which does not need this kind of instruction sequence to perform the sorting process.
The
GOSUB instructions work as "subroutine calls" in a program. JUMP PLANE instructions can be nested in the "subroutines". For instance :JUMP PLANE | X01 | |||||||||||||||||||||||||||||||||||||||||||||||
PLANE | P01 | //according to the observer position with respect to plane P01...
GOSUB | A | //... draw "A" before "B"
| GOSUB | B
| RETURN
| X01 | GOSUB | B | //... or draw "B" before "A"
| GOSUB | A
| RETURN
| A | JUMP PLANE | X02
| PLANE | P02 | //according to the observer position with respect to plane P02...
| GOSUB | C | //... draw "C" before "D"
| GOSUB | D
| RETURN
| X02 | GOSUB | D | //... or draw "D" before "C"
| GOSUB | C
| RETURN
| ...
| |
What does it mean :
according to the position of the observer with respect to plane P01, draw "A" before "B" or draw "B" before "A"... when drawing "A" : according to the position of the observer with respect to plane P02, draw "C" before "D" or draw "D" before "C" ("C" and "D" can be considered as sub-sub-assemblies of "A").
This is a little bit tricky, but you must master this kind of technique if you want to avoid undesirable "transparencies" when looking at the model under certain angles. Before you go into the detailed design, you should consider thinking at the model structure for a few minutes. You need to come up with a model breakdown into sub-assemblies that you can sort according to a logical and simple algorithm. It looks like programming the model : actually, you will get accustomed to the process very quickly !Exit the
Model Editor and go back to the Aircraft Designer 2000 main screen. Move the cusror around the point located at :y = -8.000 | z = 0.450 |
There is a fuselage vertex at this point : select it by clicking on the point. A polygon which contains this point will be highlighted. This is not the right one : press on the C key as many times as needed to highlight the adequate polygon. It is the polygon which covers the fuselage and it should appear as a single line if you are in the side view. Activate the Utilities|Add chain to seals menu option. Launch again the
Model Editor and select the code page associated with the TAIL sub-assy.Double-click on the data field of the third instruction (it should be a "
PLANE undefined vector" instruction). A seal selection window is displayed. Click on one of the blue-green arrows at the top of the window. There is just one seal in the list, it will be selected at once :distance : | -1.966 |
coordinates : | 0.000, 0.071, -0.997 |
Validate the sélection by clicking on the OK button. The listing is updated :
TAIL | SUBASSY,T | click to come back |
JUMP PLANE | ? | |
PLANE | -1.966;0.000,0.071,-0.997 | |
GOSUB | ? | |
GOSUB | ? | |
RETURN | ||
GOSUB | ? | |
GOSUB | ? | |
RETURN | ||
... |
A
JUMP PLANE works in that way : if the observer stands on the one side of the plane defined by the PLANE instruction, the flight simulator viewer will execute the two first GOSUB instructions, if he stands on the other side, the viewer will execute the second set of GOSUB instructions. The JUMP PLANE instruction must address the first GOSUB instruction of the second set.Double-click on the question mark (?) in the data field of the
JUMP PLANE instruction. The cursor is modified and figures now a finger. Have the finger pointed at the seventh instruction of the list (the first GOSUB instruction after the RETURN instruction) and click on it. This instruction has no label : a label input window is displayed. Enter "T01" in the data field and validate. The label input window is cleared and the cursor turns back to its former cross-hair shape. The listing is updated to take into account the new label :TAIL | SUBASSY,T | click to come back |
JUMP PLANE | T01 | |
PLANE | -1.966;0.000,0.071,-0.997 | |
GOSUB | ? | |
GOSUB | ? | |
RETURN | ||
T01 | GOSUB | ? |
GOSUB | ? | |
RETURN | ||
... |
We now need to give a label to both parts of the sub-assy : the fuselage part and the fixed part of the rudder. Double-click on the address field of the tenth instruction (
TEXTURE fusaft). The same label input window as above is displayed. Enter "fuse" and validate. Go then to the 37th instruction (TEXTURE Rudder) and proceed in the same way to call the label input window. This time, enter "rud" and validate.Go back to the top of the instruction list. Double-click on the first undefined question mark (instruction #4). The finger is displayed. Have the finger pointing at the address field of the 37th instruction (this one that was labeled "RUD" just before) and click on it. Use the vertical scrollbar to help you navigate in the instruction list. The cursor turns back to the cross-hair shape and the "RUD" label is now replacing the question mark in the data field of the
GOSUB instruction. Go ahead with the question mark of instruction #5. Double-click on it and point the finger at the address field of instruction #10 (this one with the "FUSE" label).To complete the operation, you need to assign the two remaining
GOSUB in order to have them calling the "FUSE" and "RUDDER" sub-parts in the opposite way. The listing should be updated as follows :TAIL | SUBASSY,T | click to come back | ||||||||||||||||||||||||||||||||||||||||||||
JUMP PLANE | T01 | |||||||||||||||||||||||||||||||||||||||||||||
PLANE | -1.966;0.000,0.071,-0.997 | |||||||||||||||||||||||||||||||||||||||||||||
GOSUB | RUD | //the rudder is drawn
GOSUB | FUSE | //and then the fuselage
| RETURN
| T01 | GOSUB | FUSE | //the fuselage is drawn
| GOSUB | RUD | //and then the rudder
| RETURN
| FUSE | TEXTURE | fusaft
| LIMITS | -15.700,-2.400,-2.500,1.500
| TPOLY | ...
| ...
| RETURN
| RUD | TEXTURE | Rudder
| LIMITS | undefined limits
| TPOLY | ...
| TPOLY | ...
| RETURN
| |
The TAIL sub-assy is quite completed : we still have to define the rudder texture limits. We shall do it a little bit later on.