home about gallery publications education links contact


There are a couple of ways we could do this; firstly we could simply animate the opacity of the object so that we have a wipe (of sorts) over the object. However this would look quite fake as in a lot of instances we will have part of a panel opaque and the other part transparent; we need the entire panel (or the majority of it) to appear in one go.

The main problem with this effect is that we really need to construct the initial model with the effects in mind. The reason for this is that we are going to see the internal detail of the mesh that the exterior panels are covering, so there’s no point in having a spaceship or space station that is completely hollow; we’re going to have to add some extra detail. Also, as each panel is going to be revealed, we will need to split each panel (or groups of panels) up into individual elements and give them a little depth, else we will get the impression that they are wafer thin. This is generated by a relatively simple procedure that you should be able to perform on any mesh, but the lower the detail and the more regularly-shaped (ie similar in size, normal direction etc) the easier it will be to set up. If the worst comes to the worst and this part is too much of a pain to set up, then the panels will just have to be thin!

We can give each panel a depth by selecting the entire mesh in Vertex sub-object mode and breaking the vertices. This generates each polygon as an individual element as each polygon is no longer welded to its neighbour (unless you deselect a few vertices before breaking, so you get irregularly-shaped panels, such as L or T shapes). We now need to add the depth; this is generated by a simple slight extrusion along the polygon’s normal direction, however this will create an extruded polygon with the same size, which may not line up exactly to its adjacent “panel”. Therefore we can either Outline the polygon so it lines up with its neighbour, or use the Bevel tool instead of the Extrude tool. Whichever is preferable depending on your mesh. Finally, to add a little more detail to the panel, we can chamfer the edges of the panel to give it a slightly curved finish so we can see where two panels meet, suggesting a flush fit.

With the panel structure designed, the support framework can be added; this is a simple procedure generated by applying a Lattice modifier to a clone of the original hull mesh (before panel editing). This will automatically generate the joins and beams from the polygon information in the mesh which; typically, there should be twice as many as the original. You might even want to add a Shell modifier or two to add extra cages inside the mesh to add even more detail! Again, by simply modifying the base polygons we can add extra detail to the cage structure which will generate a cooler effect!

The main driving force behind the construction effect is a Volume Select modifier assigned to each object – the Panels object and the Framework object. These modifiers select the faces of the objects and, using a Delete Mesh modifier assigned to both objects, parts of the mesh are removed. The areas to be removed are determined by using a Gradient Ramp map which drives the mesh selection for both objects; two are required as the Framework object needs to be partially constructed before it can have panels “welded” onto it. To generate an irregular construction effect, the Gradient Ramp has a noise applied to it so the panels (etc) do not appear linearly over the mesh. As the sub-object selection is derived from the greyscale information in the Gradient Ramp texture map, we only now need to animate a flag in the gradient, travelling from position 1 to position 99 (as the UVW map that controls the way the gradient-driven selection is applied to the objects has been scaled up slightly to remove any initial selection at frame 0) over the duration of the animation; the Framework animation should complete a few frames before the panel animation.

Enlarge Screenshot
In the Top Viewport, create a Sphere with a Radius of 90 with 32 segments. Label this object Panels. Collapse it down to an Editable Poly, in Vertex sub-object mode select the top and bottom most vertices in the Front Viewport and remove (not delete) them. Select all of the vertices in the object and click on the Break tool.
Enlarge Screenshot
Select all of the polygons in Polygon sub-object mode and click on the Extrude tool. Set the Extrusion Type to Local Normal and the Extrusion Height to 1. Click on OK to apply these settings. Click on the Outline tool and set the Outline Amount setting to 0.1 to bring the extruded polygons together. Click on the OK button to apply.
Enlarge Screenshot
Right-click the object in the Viewport and select Convert to Edge. Click on the Grow tool to expand the Edge selection, click on the Chamfer tool and enter a Chamfer Amount of 0.1. Add a UVW Map modifier to the stack and uniform-scale its Gizmo up to about 120%. Add a Volume Select modifier, set the Stack Selection Level to Face, Selection Type to Crossing and enable Select By: Texture Map. Add a Delete Mesh modifier.
Enlarge Screenshot
Create a new Sphere in the same place as the original with a Radius of 89 and 64 Segments. Label it Framework. Add a Volume Select modifier, set the Stack Selection Level to Face and enable Invert in the Selection Method Group. Scale down the modifier’s Gizmo a little vertically to select the top couple of rings of the sphere. Add a Delete Mesh modifier and a Mesh Select modifier to clear the sub-object selection.
Enlarge Screenshot
Add a Cap Holes modifier and a Shell modifier. Set the Shell modifier’s Inner Amount to 3 and Outer Amount to 0. Add a Lattice modifier, set the Struts Radius to 0.2 and the Joints Radius to 0.5. Copy the UVW Map, Volume Select and Delete Mesh modifiers in the Panels object and Paste Instanced them on the Framework object’s modifier Stack. Make the Volume Select modifier unique.
Enlarge Screenshot
Open the Material Editor and create a new Gradient Ramp map. Label it Panel Selection. Set the Interpolation to Solid and the flag at position 50 to white. Set the Noise Amount to 0.18 and the Size to 5. Move the middle flag between positions 0 and 1. Instance this map to the slot in the Panel’s Volume Select map. Copy the map, label it Framework Selection and instance it to the Framework’s Volume Select modifier. Animate the Panel gradient’s relocated flag to position 99 over 100 frames and the Framework gradient’s relocated flag to position 99 over 90 frames.
Enlarge Screenshot
The hull in mid - construction. The framework is automatically constructed first as “scaffolding” and the panels added to it afterwards.
Download the max file!
Zip file to accompany.


Try adding a variety of panel shade tinting to the Panels object. This can be achieved by creating a Multi/Sub-Object material with a number of slightly different shaded materials based around a central shade (say with a total Value variation of about 20). After this material is assigned to the object, a panel (element) can have one of the material assigned at random by adding a MaterialByElement modifier to the stack, just above the base Editable Poly level.

To give the impression of the panels taking a long time to construct, try using a variation on the selection to create a sub-object selection so that a Particle Flow system can be developed so that the particles are attracted to these sub-object selections. With erratic motion around each one of the latest panel additions to the construction, it will appear like these particles are smaller ships or people welding the panel to the framework!

You might also want to add additional elements to give the impression of time-lapse footage; if you have lights in the hull, set up a material (driven by a similar method as this construction technique) to “turn the lights on” shortly after the panel / area has been completed, giving the impression that this area has been finished and is now habitable while the other areas are being constructed. You can also add more intricate construction patterns by using different mapping types and sub-maps in the animated gradient flag.

Also, add additional decal textures “over time” so that they appear after the main hull has been partially completed. These will not appear suddenly, but will be animated in as they are being “painted” or etched into the surface; try using a gradient wipe to suggest the painting of the letting / logo applied to the hull surface. With all these elements going on, the end result will look very effective!

Initially published: 3D World magazine, Issue 54, September 2004.

Copyright Pete Draper, September 2004. Reproduction without permission prohibited.