Thursday, October 18, 2012

On the construction of a Boeing 747 in Minecraft - Part II

So, I did mention when this blog was still young that I very rarely finish things. But I did promise in my introductory post for my Minecraft Boeing 747 project that I would make the effort to finish it. And now I have. At least, I have finished the exterior.

I started building it around the end of March on the EnderSouls Minecraft server, so it's taken about 6 and a half months to get this far (admittedly with several breaks, at least one of which lasted several months). It's twice the size of the real thing, and mostly to scale, with a little bit of artistic license here and there (mainly around the windows and the writing on the side).

All of the building and material gathering was done in survival mode, although I did cheat a little by paying other players to gather a lot of the snow for me (the build took a staggering 160 stacks of snow blocks - which means over 40 000 snowballs needed to be harvested).

Anyway here are some screen shots.

Because I had a few people asking me how I did it, I guess I'll give a rough breakdown of my approach to the build. I started by getting a few reference photos, together with what engineers call a "3 view" - which is just a scale drawing of the top, front and side views of the aircraft. You'll also need to know a couple of dimensions of the real aircraft, and the obvious place to get those is Wikipedia. It's important to note that no matter how good you think the photos are, you must be careful taking direct measurements off them, because perspective distorts distances. Stick to the drawings for measurements, and use the photos more for minor adjustments to get appearances right.

You'll almost certainly need to resize the 3 view. It's best to get a lower resolution image and enlarge it, because thicker blurry lines make it easier to fit a blocky curve. You need it pretty big, and you're not concerned about how it looks. The exact size you want is a easy to calculate, but you could find it with trial and error approach. Take the length of the aircraft in pixels in the image, and divide by the real length to get a distance of pixels per metre. I find that you need a minimum of 7 pixels per metre to get a decent representation, so find the factor you need to scale your image by to get 7 (or more) pixels per metre, and scale the image. In my case, I went from a roughly 700x400 image to a 2100x1200 image.

I used Gimp to do most of the measuring, but pretty much any photo editing software that can show a grid over your image and allows resizing and repositioning of the grid will do. Set the grid size to the number of pixels in a metre (in my case, 7). You can then use your discretion to judge the edges of curves. Start by building a frame, and then fill it in later. I found it easiest to mark the blocks roughly in bright colours using the pencil tool. Here's the 3 view I used once I was done with it.

Click for full size image

The wings and horizontal tail proved the most difficult to design. After a couple of attempts at doing it by eye from the photos and 3 view, I gave up. Instead, I wrote a very simple script in Python that calculates the positions of the blocks based on a minimal number of parameters (I've made this Minecraft wing design script available for download). One of the files output by the script gives a layer-by-layer breakdown of the wing, which is perfect for building in survival mode. You can easily calculate the angles by reading your coordinates in Gimp, and then using trigonometry to get the angles. If you do this, atan2 is your friend.

These techniques will work reasonably well for any build. If you want to try something like this yourself, all you need is time, patience, and an eye for detail. Good luck.

If you enjoyed this post, then don't forget to like, tweet, +1, or upvote on reddit. If you have any questions, comments or complaints, post them using the form below.
. . . . . . . . . . . . . . . . . . . . . . . .

No comments: