G4m betty bomber (wip & mini tutorial)

Instead of just posting pictures of my progress on this aircraft, I’ll also be including information about my process for modeling hard surfaces. Basically, the things I wished I had known when I first started using Blender.

The first step is getting good reference materials. Get the best drawings and photographs you can find. Organize them and double check them to make sure they’re accurate. The drawings & reference material are the foundation of the project. If they’re good, the project will progress much more quickly. If they are of poor quality or inaccurate, the project will become a nightmare as you realize parts don’t line up and out of proportion.

I also recommend working in full scale. If the object you are modeling is 20,000 cm long, make sure you scale the image planes to the appropriate size. If you keep all of your projects in full scale, it will be much easier to integrate them together later and re-use common assets (like figures, engines, guns, etc.).

After setting up and scaling the image planes, start building simple low-poly meshes that define the basic shapes of the object. These will become the base mesh that is later used as the target of SHRINKWRAP modifiers.

For example, here’s the base mesh for my Betty…

The wings, nacelles, fuselage, rear control surfaces, etc. are all made of independent objects using as few polygons as possible. Each of these objects has a subsurface modifier with RENDER and VIEWPORT levels set to 4. This makes the object very smooth and makes it work well as a base mesh.

The next thing is to create planes that define the edges of panels. In the next couple pictures, you can see horizontal and vertical planes that define panel edges.

The exterior of the aircraft is re-topologized with individual panels. Each panel has its edges shrink wrapped to the guide planes surrounding it. This ensures that all panels have tight edges that always match their neighbors.

Around windows and other openings, it is sometimes helpful to create additional shrinkwrap targets. Below are examples of using rounded cubes to define the edges of window cutouts. The panels have their window edges shrinkwrapped to the cubes.

One of the biggest advantages to making individual panels is that it makes the overall topology easier. You don’t have to carry any more edge loops through the model than you need to since each panel is is own little project. Panels requiring complex topology can be placed next to simple panels without the need to blend edges from one panel to the next.

And finally, all the panels are shrinkwrapped onto the base mesh I talked about at the beginning of his post. This makes sure they are all smooth and follow the same topology. (The shader I’m using on this render has a bevel modifier on it. Otherwise, you wouldn’t be able to see the panel edges.)

Even an oblique close-up showing the window cutouts shows clean cuts without any pinching.

Thanks for visiting. More later…

23 Likes

Very interesting technique!
So far I was applying the subsurf in order to avoid edge loops. But your solution is even closer to the real thing and I guess even easier to handle in many ways.

1 Like

As impressive as is the model of the aircraft itself (flew in later versions via U.S. Navy), equally valuable is the clarity, intelligence & well-thought-out design process that you offer us less advanced designers. Thanks! Do more.

2 Likes

Really good as usual and I appreciate your willingness to share/explain your workflow. Haven’t had time to revisit my projects with this technique, but I plan to.

Great job Mark ! Thanks a lot for your explanation and process sharing !

I like this format more than 20 minute video tutorials. IMO it is easier to understand when the image you are looking for doesn’t disappear in a few seconds.

1 Like

I agree, I’m forever pausing videos and rewinding.

1 Like

I guess pages are harder to monetize so we have all these “smash that like button” stuff than sharing the knowledge like @Mark06GT did here. I can’t blame video creators though.

Thanks for the comments. I wasn’t sure if people would find this thread useful or not.

TIP #2: CREATING A PILOT FIGURE

One of the things that makes modeling easier for me is including a scale figure for reference. This is particularly useful when modeling the interior of a vehicle. It is worth taking the time to make (or find) decent figures since you will be able to use them repeatedly.

My figures start out by using the MB-Lab figure builder. This is an add-on you can install into Blender that will let you create human figures with various characteristics. It provides a great starting point for making your figure. You can get the add-on here: https://mblab.dev/

Install/activate it in Blender just like you would any other add-on:

Once installed, you can open the MB-Lab tab on the right side of your screen and configure your character. There are lots of tutorials on how to use MB-Lab, so I won’t go into details. This is a Japanese pilot, so we’ll start with the Asian Male base character.

Your initial character will look something like this:

Since pilots are usually sitting, I like to re-configure the rest-pose to a sitting position. This makes the modeling process easier for me since the rest post is similar to the figure’s final position.)

To redefine your figure’s rest position, select the armature, go into POSE mode, and reposition the limbs into a sitting position.

You will need to re-define this seated position as the new “rest-pose”. Begin by duplicating the first armature modifier (the one shown in the picture above called “mbastlab_armature”.) Your character will look like something from a Bosch nightmare.

Select the bones and go into POSE mode. Then select POSE -> APPLY -> APPLY POSE AS REST POSE

Your figure should go back to normal, but now the “rest-pose” is a sitting position.

Now you can use the MB-Lab figure as a mannequin for creating your clothing.

The plan is:

  1. Create a low-poly set of clothing for the figure
  2. Use the sculpt tool and multi-res modifier to create a high-resolution/detailed figure
  3. Bake the high-poly details into a normal map that can be used to give the impression of detail in your low-poly figure.

If your figure is symmetrical, I recommend using a mirror modifier to only model one half of the figure. This will save you time and will let you double the resolution of your texture map.
There are lots of tutorials on sculpting and creating figures, so I’ll skip the details. Here’s what my low-poly figure looks like.

I recommend making your UV layout before applying the mirror modifier. This doubles the resolution of your texture set because the mirrored UVs will be laid directly on top of the original UVs. This is the UV map for this figure. Notice it only has one hand, one pant leg, one jacket sleeve, etc.

The next step is to use the underlying MB-Lab figure to transfer bone weights to your new clothing. This saves you the tedious work of weight painting your model. There are two parts to this step:

Part 1: In OBJECT mode, first select the clothing you modeled, then select the bones. Press CTRL/P and select the With Empty Groups option.

EMPTY GROUPS

Part 2: In OBJECT MODE, select the MB-LAB mesh (i.e. the human figure), shift-select the clothing mesh, and go into Weight Paint mode.

weighted paint

Your clothing will turn blue (weight paint mode). Now click on the WEIGHTS tab and select TRANSFER WEIGHTS

weights

A little tab will appear in the bottom left corner of your screen:

weights 2

Click on the triangle to open it. Make sure the SOURCE LAYERS SELECTION is set to “By Name” and DESTINATION LAYERS is set to “All Layers”.

weights 3

Now, when you move the bones, they will move your clothing!

You are done with the underlying MB-Lab figure at this point. I generally delete every part of the figure that is no longer visible. This saves on memory and eliminates the possibility that some of the body parts will stick through the mesh when you pose it. Select the human figure, go into edit mode and delete all the geometry that is covered with clothing. For this figure, this means deleting everything but the face.

Sometimes the face gets disconnected from the rigging. If your figure’s face is no longer properly controlled by the armature, you can re-attach it. While in Object Mode, select the face, then shift select the armature. Go into Pose Mode, select the Head Bone, press CTRL/P and parent the Face to the head bone. Now the face should be locked to the head bone.

It is time to add some detailing. Duplicate your low-poly model, add a MULTIRES modifier to your figure, and use the sculpt tool to add some details. This will be your high-poly version of the figure.

MB_LAB_ADDON 11

Here’s the high-res sculpted figure. I didn’t bother with much detail below the waist since it will be very hard to see.

After sculpting, bake your hi-res normal map and create the textures for your figure. I used Substance Painter to texture mine.

Once you’re done painting the texture, apply it to your low-poly model.

The only semi-interesting thing I can say about this shader network is the use of the AO node to boost shadows. I typically connect the AO node to a Math Node (set to Exponent) and then use that to mix the base image color with a darkened version of the texture.

Here’s the final result:

I’ve made this figure available at Blend Swap if you want it. Blend Swap Japanese Pilot Figure

Thanks for reading all this. This post was a long one. I’ll try to make the next one shorter.

8 Likes

I guess that many here are satisfied with “long” post. So if you have time and will make next even longer :slightly_smiling_face:

Thanks for the encouragement Alek.

Most of today’s tips re-enforce the importance of the base mesh created at the beginning of the project. Without that base mesh, the next couple of steps would be tedious and time consuming. Since the base mesh is good, these steps are quick and produce good results.

WINDOWS:
Now that the window frames are modeled, I can create the glass panes. Start with a simple plane and place it near the window opening.

Add some edge loops and shape it to approximately the shape of the window opening. This piece of glass has a tight curve, so more edge loops are needed. For flatter glass, fewer edge loops would work. Notice there is good topology around the edges of the part. This helps it cleanly snuggle down against the base mesh.

This window lines up well along the X-axis. Add a shrinkwrap modifier to the part and PROJECT it along the X-axis so that it sticks against the base mesh. I use the PROJECT mode (instead of NEAREST SURFACE POINT) because I modeled the part to fit the window while looking from the side of the model. Projecting it along the X-axis minimizes the amount of deformation caused by shrinking.

Capture4

The image below shows the result of the shrinkwrap modifier. If the part doesn’t fit well, you can move it around and scale it. Maybe even use the lattice deformer to get a good fit. The shrinkwrap modifier will keep it snug against the model as you make adjustments.

It is sometimes helpful to duplicate the shrinkwrap modifier and apply the duplicate before making additional adjustments. Applying a copy of the shrinkwrap changes the topology of the part. This eliminates some of the quirkiness of working with a part that really doesn’t match the topology of the underlying base mesh. You may have to iterate this step several times depending on the complexity of the curves.

Capture3

Add a solidifier modifier to give the window some thickness

Capture5

Then go into EDIT mode, set your MOVE gizmo to NORMAL mode,

normal

and move the object along the normal Z-axis until is sits nicely inside the window frame.

BUILKHEADS AND STRINGERS

The next tip is about creating the stringers and internal framing. These were also created using the base mesh as a shrinkwrap target.

Start by selecting the edges of the panel lines, click SHIFT/D to duplicate them, and press P to Separate By Selection. You should now have a bunch of lines that roughly follow the contour of the fuselage.

Add a shrinkwrap modifier to these lines to make sure they match the fuselage curves.

You may want to play with the vertices at this point. You probably won’t need more than 1 vertex per frame. Make sure the vertices are evenly spaced along the curves (While in edit mode, select all the vertices you want to space, right click to bring up the LoopTools menu and select “Space”. I use this function so much that I’ve made CTRL/Q the shortcut for it.)

space

Place the cursor at the geometric center of the fuselage (notice where it is located in the previous fuselage screen shot). Make sure your pivot point is set to 3D cursor.

Capture9

Add a Solidify modifier to the lines and then (while in edit mode) press E to extract and scale the lines inwards.

The fuselage frames are made using a similar method of shrinking and extruding inwards.

As suggested before, it is probably a good idea to duplicate the shrinkwrap modifiers at this point and apply the duplicates.

Since these are internal parts, they will probably need to be adjusted slightly inwards, so they don’t poke through the exterior of the model. In the picture below, we can see that the frames and stringers intersect and poke through to the outside of the fuselage.

Select the part that needs to be adjusted, go into edit mode, select the faces that need to move, set your Move Gizmo to “Normal”,

normal

and push the problem faces below the exterior panels

Here’s the tail gunner position framing (Looking at this picture, I really wish I had spent some time making good boots for this guy. Yuck.)

With the skin on the aircraft, the boots look much better :wink:

Here’s the forward framing…

This is probably as much detail as I’ll add to the interior since you can’t see much once the skin on.

One last thing…
I think this aircraft carried Type 92 machine guns. I don’t have one of them in my library of parts, but I do have a Lewis gun that I modeled for my WWI aircraft. I noticed that if you take the water jacket off a Lewis, it looks a lot like a Type 92. The technical term for this kind of modeling is called “laziness”. I’m a big advocate of it if you can get away with it.

I’ve uploaded the Lewis gun to Blend Swap. You can pick it up there (Lewis Gun Blend Swap) if you want to be lazy too.

Thanks for visiting and reading another long post.

3 Likes

Thanks for tips and pictures. One, penultimate, with 4 dudes is especially interesting to me. I see many videos and photos about this plane but never see how this plane actually are small - tight inside.

Incredible work so far!

Today’s tip is on cutting holes like these…

(The lines are actually much tighter than they look. If I didn’t have a bevel modifier on the shader, I don’t think you would see the lines at all.)

Again, we’ll use the shrinkwrap modifier to keep the surfaces smooth.

I’ll cut a hole in a sphere since the curve on the sphere makes it extra tough to get a smooth final surface.

Start by creating a Quad Sphere and giving it a 4-level subdivision surface. This will be the base mesh.

Duplicate the sphere and reduce the subdivision surface. This will be the object we cut into.

Add a shrink wrap modifier to the sphere and shrink it against the base mesh.

Now create an 8-sided circle and extrude the vertices inward to create two concentric rings.

Capture2

While in edit mode, select all the faces, and press X to access the delete menu. Select the ONLY FACES option. This leaves just the lines. These will be used to cut into the sphere.

While in Object Mode, line up the circle over the sphere, select the circle first, shift select the sphere and go into edit mode. Make sure all vertices are selected, press F3 and type “Knife Project” into the pop-up menu.

A little window will pop up in the lower corner giving you the option of cutting all the way through the object. I’ve unchecked the box, so the cut will only appear on one side of the sphere.

Capture4

This is what we have so far…

Now merge vertices until you get a reasonable topology. It is not super important to get perfect quads, but the better your quads are, the better the final result will be.

Duplicate the shrink wrap modifier and apply one of the duplicate modifiers to the cut sphere. This makes the underlying vertices sit snuggly against the base mesh. The remaining shrink wrap modifier works with the subdivision modifier to keep all the points snug against the base mesh.

Now you can disconnect the circle from the sphere. While in edit mode, select the circle faces and separate them from the sphere.

Here’s the result.

Progress on the Betty…

Here’s another example of using simple planes as shrinkwrap targets for the panel lines of the nacelle. It is a bit tedious to setup the planes, but once they are in position, keeping panel lines tight against each other using shrinwrap modifiers is really easy.

I don’t have a Japanese engine to put in this plane and I doubt I could find enough reference material to make a good one, so I stuck in a Wright R2600 that I made for my A-20. Once the spinner and cowling are on, nobody will be able to tell what kind of engine it really is.

The rest of the body panels are pretty much done now.

Thanks for visiting.

7 Likes

very nice work

how many verts for the engine ?

did you start engine from scratch or with the model uploaded by Witold_Jaworski an R18XXX ?

2 years ago i went to tour a B-25 at an airport
and the inside is so small width was like 5 Feet

i can’t believe people were going to fight in a small VW
with a speed of 200 MPH LOL

happy bl

1 Like

Thank you for these tutorials. Looking forward to each new installment!

@RickyBlender
The engine is 49,501 vertices. (It would be worse, but I used an array modifier to spin the cylinders around the crank case). I built the engine from scratch. I didn’t think to look for Witold’s engine.

I wanted to share it on Blend Swap, but it uses UDIMs and I can’t pack a .Blend file with UDIMs. Maybe I’ll do a lower resolution version so I can share it.

A B-25 is definitely cramped.

@Steah - thanks for leaving a comment. It makes me feel good to know somebody finds this useful.

1 Like

The next step of the project is some housekeeping and organization that is needed before proceeding to UV unwrapping.

The model currently consists of lots of individual panels, each with its own modifier stack and vertex groups. We need to consolidate the parts into similar groups, delete unused modifiers and get rid of unnecessary vertex groups.

I start this process by moving each part into a collection that holds parts with identical modifiers. For example, for the fuselage, I created five collections to contain parts with the following modifiers:

  1. MIRROR + SUBDIVISION + SHRINKWRAP + SOLIDIFY
  2. SUBDIVISION + SHRINKWRAP + SOLIDIFY
  3. MIRROR + SUBDIVISION
  4. SUBDIVISION
  5. Miscellaneous (for parts with unique modifiers)

Once the parts were isolated, I joined the parts in each collection into a single part. This makes it easy to delete unneeded vertex groups since you don’t need to delete the vertex groups for each individual part.
In the picture below, each color indicates a unique part. Each part has a unique combination of modifers.

1

At this point, we’ve consolidated the model into a few similar pieces and eliminated the need for the shrinkwrap modifiers used to define the edges of the panels. The primary base mesh shrinkwrap modifiers are still important, however. All the big pieces (e.g., the wings, nacelle and fuselage) still use shrinkwrap modifiers to keep the parts smooth and tight.

Here’s the modifier stack for the wing (the modifier stack for the fuselage and other shrunk parts is similar)

Below is a render of the wing with the shrinkwrap modifiers disabled. Notice the gaps between some of the panels.

The next render shows the same parts with the shrinkwrap modifier enabled. No gaps!

The fuselage needs exterior and interior surfaces. Since the interior surface is difficult to see, I’m just going to use procedural shaders inside the model. The exterior will be painted in Substance Painter. To make painting easier, I’m going to make the interior walls of the fuselage a separate part from the exterior walls. The exterior wall thicknesses are currently defined by a Solidify Modifier with the FILL and ONLY RIM options checked. This creates the appearance of thickness from the outside of the model but doesn’t create any faces on the inside surfaces.

6

Creating the interior walls is easy – we just use the base mesh and shrinkwrap modifiers again.

Duplicate the exterior fuselage panels and change the shrinkwrap OFFSET value from 0mm to the thickness of the walls (in this case, 7mm). This pushes the panels into the base mesh, so they perfectly intersect the edges of the exterior skin. In the picture below, the green surface is the inside part, and the light blue is the exterior part.

All of the panels use SubD modifiers to smooth them out, but we need to keep the panel edges sharp and tight. I use a Mean Crease setting of 1 along all outer edges of the panels and I enable Auto Smooth. This keeps the panel edges sharp and eliminates the need for additional edge loops associated with Sub Division surfaces.

9

That’s probably enough for this post. The next post will talk about getting the UV layout and materials ready for export to Substance Painter.

3 Likes

are you uploading files to study the set up as indicated?

might be easier to follow you description

and when you talk about group is it for collection of common multi parts and not the old 2.79 groups definition ?

thanks
happy bl

When I said Group, I meant Collection.

How would I upload files to share them?