Introduction In the first part of this series I introduced you to the basic functions of the J3Editor and walked you through the process of adding some elementary nose-art to our example B-24 aircraft. Hopefully you will have followed the step-by-step instructions and successfully completed the exercise, becoming familiar with the operation of the J3Editor as you went and also gaining confidence in its usage. The second part of the series covered the essentials of bitmap images and their custom design for texturing purposes. In this next part we will combine the lessons learnt so far and apply them to some more advanced nose-art techniques and introduce the method of adding text in the form of squadron serial numbers and aircraft names. Advanced Nose-Art Application Well, we started out in Part 1 with a nice easy example of nose-art application. But what if we wanted to apply a larger, more extravagant piece of nose-art that just won't fit on the one single face? The answer is to simply extend it across to the other adjacent faces.........! For the purposes of brevity, I'm going to assume that you have already worked through the first part of the tutorial and are therefore reasonably familiar with the J3Editor functions and terminology previously covered. But before we proceed I want to impress upon you the need to frequently save your work as you progress through the exercises detailed below. I recommend that you save your modified file after each and every stage of the exercises as a precaution in the event that you make a mistake (and we do all make 'em!). Then, if it ever becomes necessary, you only need to select the Discard Changes option in the main Editor Control Panel to return to your previously saved state. OK, that said, now let's have some fun! Open the J3Editor, put it back into Solid rather than Textured mode and find Face(5) in SubEntity(0) of the FuseFnt sub-group. Now select Face(4) and then Face(6) and you will see that they lay either side of Face(5). Following the same procedure as before, copy and paste from these two additional faces into our new SubEntity(1) as shown below: This will now give us a group of three adjacent faces to use as the canvas for bigger and better nose-art. That was easy, wasn't it? Because the faces in this new SubEntity have precisely the same co-ordinates as the faces from which they have been copied, the subentity will need to be shifted very slightly away from the original part of the fuselage. Do this by selecting SubEntity(1) in the Object Tree Hierarchy window, then select Translate X on the main Editor panel and left-click-and-drag the whole new subentity from left to right. Do this gently, and just sufficiently for the new SubEntity to appear as a block of three orange-coloured faces as shown in the illustration above. Now it gets a bit harder, because you will have to retexture-map all three faces to whatever bitmap you wish to use. For the purposes of this exercise, we will use the Warbirds bitmap that we created in Part 2 of this tutorial series. If you cut classes for that particular lesson (shame on you!) here at left is a copy of the bitmap. Simply right-click on the image, select Save Picture As and save Warbirds to the same folder location where your unpacked WW2.sqs files are stored. Now follow the same procedure as before and add this new Warbirds texture to the list for your B24 file. As an alternative, you can actually substitute the Warbirds bitmap for the previous RebelYell image by opening the Textures... window, selecting RebelYell in the textures list and then clicking on Rename Texture. This will open up exactly the same navigation window as when adding a new texture, but will substitute Warbirds for RebelYell rather than adding Warbirds to the end of the list. Now boot-up your Graphics Editor again and open the Warbirds image file. I'm assuming that, having followed Part 1 of the tutorial, you have set the rulers options in your editor, so that Warbirds.bmp is bordered at top and left by a 0 - 100 scale. This is important because, in conjunction with the editor's cursor, it's now possible to precisely pinpoint any location on the Warbirds bitmap to enable accurate setting of the U and V co-ordinates for texture-mapping. Simply place your mouse-controlled cursor on any point of the bitmap and read off the appropriate scale. If you haven't already set the rulers option in your graphics editor, now is the time to do so. But being the nice person I am, I have prepared an illustration for you showing the co-ordinates that would at least provide a good starting point for our texture-mapping: In the illustration above I have drawn a series of lines that approximate the relative size and shape of the three faces of SubEntity(1) and how those faces relate to the bitmap itself. If you examine the illustration carefully you will see how my annotations of the co-ordinates correspond to the top and left scales. Owing to the relatively small size of the Warbirds image the scale graduations are in steps of 2% rather than 1% (remember, these scales aren't measuring the pixels, but the percentage of overall image size regardless of pixel count, which enables us to translate into texture-mapping co-ordinates), but by using your editor's zoom control to expand the image size you will get a more accurate reading. OK, now it's time to feed these co-ordinates into the J3Editor for the purposes of texture-mapping. Select SubEntity(1) in the Object Tree Hierarchy window, and then Face(0). As this face will carry most of the detail of the Warbirds emblem I would suggest this is the best face to start with. Now open the Attributes window from the main Editor Control Panel as shown below: In Face(0), Vertex(0) is the top left-hand corner of the triangular face. Referring to my annotated Warbirds illustration above, Vertex(0) has U and V co-ordinates both of 0. Enter these co-ordinates into the appropriate boxes in the Attributes window for Vertex(0). If you have previously worked through the RebelYell nose-art exercise in Part 1, these co-ordinates are already both set at 0 so there's no need to change them. Vertex(1) of is at the top right-hand corner of Face(0) which requires a U co-ordinate of 1 and a V co-ordinate of 0. Once again, the previous RebelYell settings will suffice for this vertex. Vertex(2) is the bottom corner of Face(0) and now requires a U co-ordinate of 0.5 and a V co-ordinate of 0.65 which is a slight departure from the previous RebelYell setting. Once you have entered these co-ordinate settings in the Attributes window and selected Apply, switch from Solid to Textured view in the main Editor Control Panel and you should see the following result: OK, we now have a triangular-shaped section of the Warbirds emblem visible on our B-24 nose. All that remains now is to map the two adjacent faces to the Warbirds bitmap. But first switch back to Solid view mode on the main Editor Control Panel to make life easier in identifying the vertices. Face(2) of SubEntity(1) is to the left of Face(0) and we'll map this face next. Its top corner is Vertex(0) which it shares with Face(0) to its immediate right. It therefore requires exactly the same U and V co-ordinates, 0 and 0 respectively. Open the Attributes window for Vertex(0) of Face(2) and enter the co-ordinates in the appropriate boxes. Vertex(5) of Face(2) is common with Vertex(2) of Face(0) so once again it requires the same U and V co-ordinates of 0.5 and 0.65 respectively. Enter these co-ordinates into the appropriate boxes of the Attributes window for Face(2). Lastly for this face we'll enter the co-ordinates for Vertex(7). A quick glance at the shape of Face(2) shows that this bottom left-hand corner of the face is directly below Vertex(0). Therefore its U co-ordinate of '0' should be the same. However, its V co-ordinate will be pretty much the same as for Vertex(5), namely 0.65. Enter these co-ordinates into the appropriate boxes of the Attributes window for Face(2). Two down, one to go! Ain't you glad you're not texture-mapping an entire aircraft? It's not exactly rocket science but it is certainly time-consuming and can be somewhat tedious. So the next time one of the resident WW2 Fighters modellers reveals a brand new airplane they've created from scratch, you'll have a greater appreciation of just what is involved with the texturing, let alone the fundamental 3D modelling side of it, and a healthy respect for their efforts! Vertex(3) of Face(1) shares the same U and V co-ordinates as Vertex(1) of Face(0), 1 and 0 respectively. Enter these settings in the Attributes window for Vertex(3). Similarly, Vertex(5) of Face(1) shares the same U and V co-ordinates as Vertex(2) of Face(0), 0.5 and 0.65 respectively. Again, enter these settings in the Attributes window for Vertex(5). Finally, Vertex(4) of Face(1) should have the same U co-ordinate as Vertex(3), = 1, and the same V co-ordinate as Vertex(5), = 0.65. Enter these co-ordinates in the Attributes window for Vertex(4) and select Apply. Now for the acid test...............switch back to Textured view and check the results......... Looks great, don't it! Now don't forget to SAVE your work! Well done if you've stuck with it so far and are now looking at the fruits of your own labour. Take a break for a few minutes, grab a coffee or whatever, and then come back refreshed and ready to commence the next stage of this tutorial. Aircraft Lettering Techniques In actual fact, this section isn't just about lettering techniques as it includes some aspects that have wider implications. However, I will use lettering as a means to introduce this new material. OK, how does the application of aircraft lettering differ from nose-art? Well, in essence it doesn't, the fundamentals being much the same for both. However, the major departure is that, whereas nose-art will generally require face-sized chunks of space to accommodate it, lettering needs much less real-estate. We would not generally copy existing faces into a new SubEntity for lettering purposes. Why not? Well, because in order to texture-map the entire face to the relevant bitmap the lettering would need to be pretty small in size and low in resolution which would kind of defeat the object of creating a new higher-resolution bitmap for the lettering in the first place.......! So if we can't use existing faces for lettering due to inherent limitations, what's the solution? Yep, let's create some new faces of our own! Fire up your J3Editor and load your modified B-24 file. Select Solid view and open the Object Tree Hierarchy window. Double-click on the FuseAft_Grp and then select FuseAft. This will now highlight the entire rear fuselage section of the B-24 as shown below: Now we need to create a new SubEntity to accommodate the new face for the tail number. This is performed in exactly the same way as with the nose-art exercise. Simply click on FuseAft and select Add SubEntity from the Object Tree Hierarchy controls. A new SubEntity(1) will now appear below the existing SubEntity(0) as shown below: Now select the new SubEntity(1) and click on Add Face in the Object Tree Hierarchy control panel. This will open the New Face window as shown below: The next step is to click on each of the three New Vertex buttons in the New Face window. The various co-ordinate boxes of the New Face window will now all set to '0' as shown below: OK, we have now created our first new face in SubEntity(1). But it won't yet be visible in the main Editor window because its co-ordinates are all set to zero which places the new face at the centre (meaning inside) of the rear fuselage. In order to get the new face outside of the fuselage, go to the main Editor Control Panel and select Translate X. Now select the new Face(0) in SubEntity(1) and, using your mouse, gently drag the new face from left to right. The new face will now appear as a red dot outside of the rear fuselage, just aft of the left wing-root, as shown in the illustration below: The reason that the new face appears as a single dot rather than as a triangular face is that all its three vertices have exactly the same spatial co-ordinates and are therefore superimposed. What we have to do now is move two of the vertices away from the cluster in order to create the triangular face itself. Click on Vertex(1) of Face(0), and select Translate Y on the main Editor Control Panel. Now gently drag Vertex(1) upwards. You will observe its red dot move upwards: Now click on Vertex(2) of Face(0), select Translate Z on the main Editor Control Panel and gently drag it towards the rear of the aircraft. Hey Presto! As if by magic, a brand new triangular face has now appeared adjacent to the rear fuselage, as shown in the illustration above. Now it's time to add a second face in order to create a nice neat rectangular canvas upon which we can apply our tail number. We could simply repeat the previous process for the second face, but, trust me, it would be very tricky to perfectly align its corners with our first face. So I'm now going to show you a method of aligning faces with 100% accuracy. First, go back to the Object Tree Hierarchy window, select SubEntity(1) and then click on the Add Face button. Then click on each of the three New Vertex buttons in the New Face window that opens. Double-click on this new Face(1) to reveal its vertices, (3), (4) and (5). Now select Face(0) and open its Attributes window from the main Editor Control Panel. Using your mouse cursor to highlight the X co-ordinate for Vertex(0), right-click to copy it, as shown above. Close the Attributes window for Face(0), select Face(1) and open its Attributes window from the main Editor Control Panel. Now right-click and paste the copied X co-ordinates from Face(0) into each of the X co-ordinate boxes for Face(1) as shown below, and click on Apply: Now go back and select Vertex (1) of Face(0) (just the individual vertex this time, not the whole face), open its Attributes window and right-click to copy its Y co-ordinate as shown below. Don't forget to click on Apply. Close the Attributes window for Vertex(1), select Face(1) and open its Attributes window, then right-click to paste the copied co-ordinate into the Y co-ordinate boxes for all three vertices as shown below. Again, click on Apply. We have now placed all three vertices of our new Face(1) at precisely the same point as Vertex(1) of the first face. All we have to do now is 'unfold' this new face by moving two of its three vertices. The best way to do this is again by copying the existing co-ordinates of the Face(0) vertices. So, select Vertex(2) of Face(0) and open its Attributes window. Right-click to copy its Z co-ordinate as shown below: Close the Vertex(2) Attributes window, select Vertex(4) of Face(1) and open its Attributes window. Now right-click and paste into the Z co-ordinate box. Click on Apply. Now, the last vertex we need to reposition is Vertex(5). This will ideally need to have the same Y and Z co-ordinates as Vertex(2) of Face(0). So the last step is to copy and paste these co-ordinate values from Face(0) to Face(1) using the same method as demonstrated above, and click on Apply: Et Voila! You should now see a nice neat rectangular panel ready to accept our tail number texturing, as shown below: It's now time to texture.............! Fire-up your graphics editor and reopen the Warbirds bitmap: I have once again annotated a copy of the bitmap with the U and V texturing co-ordinates that I recommend for this tail number exercise. Referring back to the J3Editor, select Face(0) of the tail number SubEntity in the Object Tree Hierarchy and open its Attributes window. In the Bitmap box, scroll down through the list of available bitmaps and select Warbirds. If you compare the illustration at left with Face(0), you will see that Vertex(0) will have U and V co-ordinates of 0 and 1 respectively, Vertex(1) will have a U of 0 and V of 0.71, and Vertex(2) will have U and V co-ordinates both of 1. So now proceed to enter the recommended U and V co-ordinates into the appropriate boxes, as shown in the illustration below, and click on Apply: Just as a quick check, change the J3Editor view mode to Textured. You should now see something like the illustration below: Now switch back to Solid mode, select Face(1) in the Object Tree Hierarchy window and proceed to map the co-ordinates for the other half of the tail number, referring to the Warbirds bitmap in your graphics editor for guidance. Your co-ordinates should be the same as those shown below. Click on Apply to complete the process: Now switch back to Textured mode and check the results of your efforts. You should see the same as shown in the illustration below: OK, you now have your tail number correctly mapped to the Warbirds texture. However, it's somewhat over-sized and in the wrong place, so we'll now address these two issues. Let's deal with the question of size first. If you did read through Part 1 of this tutorial you will recall mention being made of the J3Editor's Scaling facility. Go to the main J3Editor Control Panel and select the Transforms button. This will open the Transform Properties window as shown below: The Scale boxes for all three X, Y and Z co-ordinates normally defaults to 1, but in order to reduce our new tail number in size we'll have to set the scale factors to less than 1. We will need to reduce the tail number height and length by about half, so I now want you to reset the scaling factor for all the Y and Z co-ordinates to 0.5 as shown in the illustration above, and click on Apply. Now select SubEntity(1) in the Object Tree Hierarchy window. This is very important because, in the event that you still have either face(0) or Face(1) selected, only that one face will be scaled rather than the whole SubEntity. Having done this, now go to the main Editor Control Panel and click the Scale Y button once only. The tail number will immediately reduce in height. Now click on the Scale Z button once only. The tail number will now reduce its length by half, as shown below: As a result of the scaling operation, you will often observe that the scaled SubEntity has shifted from its original location. This is perfectly normal and is simply a side-effect of the scaling process. I have jumped ahead here and used the Translate Z control to move the tail number back again in the interests of clarity. So now I want you to do the same. Making sure that SubEntity(1) is selected, click on Translate Z in the main Editor Control Panel and gently drag the tail number from left to right to move it towards the rear of the fuselage. Now select the Translate Y button and gently drag the tail number up and down until you're satisfied with its vertical positioning. The final part of this project is to align the tail number with the taper of the rear fuselage of the aircraft. Select Translate X in the main Editor Control Panel and then select SubEntity(1) in the Object Tree Hierarchy window. Now gently drag the tail number from right to left until its forward edge starts to disappear into the fuselage as shown below: You'll now clearly see that, because of the lateral taper of the rear fuselage, and because the tail number subentity is parallel to the fuselage centre-line, the rear end of the tail number is standing well proud of the fuselage. We will need to rectify this by individually adjusting the position of the two rear corners that define that end of the tail number. Switch back to Solid view, double-click on SubEntity(1) to access its two faces, and then double-click on Face(1) to reveal its three vertices. Select Vertex(4) then click on Translate X in the main Editor Control Panel. Now gently drag the vertex (which is the top rear corner of the tail number) from right to left until it just begins to disappear inside the fuselage, as shown below: Now select Vertex(5) and repeat the same procedure as for Vertex(4), once again gently dragging the vertex from right to left until it just begins to disappear into the fuselage. This has now repositioned the bottom rear corner of the upper face of the tail number. However, as you'll see from the illustration below, this still leaves Vertex(2) of Face(0) sticking out in space: This is because although Vertex(2) and Vertex(5) shared the same point in space, they were still two totally separate vertices. The remedy is simply to copy and paste the new X co-ordinate from the Attributes window for Vertex(5) into that of Vertex(2) and then click on Apply. This will now reunite the two vertices again. Now switch back to Textured view again, and you should see much the same result as shown below: As you will see, the tail number now lies pretty much flat against the side of the rear fuselage. You may still want to fine-tune the positioning of the number but this can be easily achieved by means of the techniques detailed above. Don't forget to save your work! With regard to having to reposition the corner vertices of the two faces that comprise the tail number, there is actually a far more elegant solution. The two faces have a total of six vertices but four of these, Vertex(1) and Vertex(3), and also Vertex(2) and Vertex(5), share the same spatial co-ordinates. We can make use of this by having the two faces share the same common vertices rather than just the same points in space. First select Face(1) of SubEntity(1) in the Object Tree hierarchy window, then open its Attributes window. Select Vertex(3) and then scroll up through the vertex list for SubEntity(1) and select Vertex(1), as shown below: When you click on Apply, Face(1) will now comprise of Vertex(1), Vertex(4) and Vertex(5), as shown below: Now repeat the same procedure for Face(1) again, but this time change Vertex(5) to Vertex(2) in the Attributes window and click on Apply: We now have the four corners of the tail number defined by just four vertices, (0), (1), (2) and (4). In practical terms this now means that we can move the corners around without separating and then having to re-align the vertices of its two faces. This is a very useful technique which has many applications in the processes of 3D modelling. That just about wraps up this part of my tutorial series. Although I have used the tail number application to illustrate the various points, the same techniques can be readily used to apply other designs and devices to any part of any 3D model. The principles are still exactly the same. In forthcoming parts of the series I will cover the topics of advanced damage model techniques and - most importantly - how to install your modifications in the simulation itself. I hope that you are having fun with the lessons taught in the first three parts of this tutorial and that you are inspired to create your own art-work and to attempt more adventurous projects of your own devising. Better still, I hope to eventually see some of your own work published on the forum at the WW2Fighters website! © March 2006