It's one thing to model up a bridge or building to make compelling images and fly-around animations. But what about showing it being built? This article will demonstrate several animation techniques in 3ds Max software to move objects and equipment in a construction or demolition environment.
General Tips for Animating
When animating the construction (or demolition) of a structure in 3D, an important thing to keep in mind is that the timing and motion don’t need to be realistic, or believable. Just make sure it is understandable and pertinent. In the real world, a crane will take several minutes to move an old girder off a bridge. You have ten seconds. Make sure your crane is positioned in a way that it isn’t going to hit anything, or encroach on protected spaces around your worksite. But keep things simple, get your point across, and make sure you don’t make it do something it shouldn’t be doing.
Once an object goes off-camera, you can ignore the “understandable and pertinent” from above. As long as it is not casting a shadow into your view, of course. But a truck hauling demolition debris that runs off the edge of your view can now move more quickly to a new position without needing to be understood. In fact, it could move to the other side of your site in a single frame, so it looks like a new, empty truck queueing up for the next load. With just two trucks running across the screen in a steady line, you can make it look like you’ve animated an army of them.
If you’re working with equipment made up of several parts, especially if they are rigged (cranes, excavators, etc.) it is highly recommended to animate them by using control objects. These can be helpers, like a Dummy or Point object, but it is easier to use spline objects set to be renderable only in the viewport. When properly linked to a rigged assembly, drawing arrows and arcs to indicate direction and type of motion will really help you understand what each does and how to use it. This is especially true when working with others who may need to adjust the animation you create.
There are times however, that Helper objects are preferred. These are useful as Look-At targets or to have constrained to a path with a linked object set to follow. I’ve found that the Dummy object really is dumb, since there are no parameters associated with it. If you’ve created one that is too big or small, the only way you can change its size is by scaling, which can affect whatever is linked to it. The better option is a Point helper. There are many parameters that can be changed without affecting anything else in your scene. You can even set it to be a Box, so it looks just like a Dummy. But you can easily change the size, as well as the appearance.
Cloning and Visibility
Use the example scene “01-Visibility-and-Link-Girder-Pull.max” (https://aecom.app.box.com/v/01-Visibility-and-Link). We will animate a crane picking up a girder and setting it on the ground. One of the easiest ways to get the girder to start in place, follow the crane’s hook, and then stay on the ground is by using Clones and animated visibility. This method does not require any special animation controllers and can be successfully implemented even by novice users.
The scene is built, the existing bridge structure is in place, and there is a rigged crane waiting to start removing the girders. Now what? First, animate your crane into a position where the hook is on or just above the center of the girder. For a real project, it may be necessary to add some additional detail like cables or straps if the lifting process needs to be accurately shown. But for now, we’ll just assume that isn’t important.
Next, make sure your time-slider is at a frame just before the crane begins to move away. What we want to do is have the visibility of this girder go from 1.0 to 0.0 (on to off). My preferred method is to temporarily change the Default Tangent to be Step. Do this by clicking and holding on the icon located in the lower right of your screen until a flyout appears and select the icon indicated below. This will hold a key’s value until another key is reached, with no transitions between.
Once you’ve changed the Default Tangent type, turn on AutoKey, select the girder you’re about to remove, right click and choose Object Properties. In the Rendering Control section, there is a spinner for Visibility. If this is greyed out, click where it says By Layer next to it to toggle it to By Object. Now you can just right click on the spinner, or type in 0. This will create a key by default at frame zero with that value at 1.0 and a key at your current frame at 0.0. The visibility of the girder will now change completely at that frame.
Now make a Clone of the girder as a Copy. I recommend adding a suffix to its name, like “- Move” to help distinguish it from static girders. This girder we’ll want to turn on at the keyframe rather than off. You can either change the values of the keys, or slide them into opposite positions in the time bar. Once its visibility is animated correctly, use the Select and Link tool to link it to the control object that moves the crane’s hook.
We’re ready to animate the crane, so the next step (and an important one) is to change the Default Tangent type. You do not want to add any keys until this is changed to something other than Step. Auto Tangent, the bottom choice, is the default.
With Auto Key enabled, move and rotate your crane’s control objects until the crane is in position to drop the girder. With the girder in its final location, you’ll want to turn off the visibility once again. The easiest way is to select the key for 0.0 at frame 0, and shift-drag it to your current frame. And as we did before, Copy the girder and reverse the visibility keys. You will also need to click the Unlink Selection button next to Select and Link to unlink it from the controller. It should stay in its current position while the crane moves.
With your viewport set to Default Shading and Edged Faces off, you can scrub your time slider to preview the animation. You should see the girder get picked up and set down by the crane. If you switch on Edged Faces (F4) you will see the edges of the invisible girders.
There are a few drawbacks to this method. Obviously, we have three copies of each object being moved by the crane. This adds to the overall poly count of your scene. And you’ll find that invisible objects can still be selected, which can get a little confusing once you have a few of them following the end of your crane. And should it be necessary to go in and change the timing, you have a lot of objects and a lot of keys that need to be adjusted. So even though it is effective, it should be used sparingly.
The Select and Link tool creates a perpetual link between two objects, so that the child object always follows the parent. But there is no way to key that link so it only follows during a specific range of time. This is where the Link Constraint comes in.
By adding a Link Constraint animation controller, you achieve the same link as you would with the Select and Link tool, but you also have the ability to change the parent in that link at a particular frame. This is especially useful if you have an object that needs to be moved more than once, following different pieces of moving equipment.
For this example, we’ll use the “02-Link-Constraint-Equipment_Removal.max” (https://aecom.box.com/v/02-Link-Constraint) scene that has a fan housing and motor that each need to be moved using a pallet and pallet jack. The means to move the two fan components is not important here, so we’ll just imagine there’s some sort of hoist or pulley system in place. Start by animating the position of the fan housing onto the pallet. The frame that we link the housing to the pallet isn’t so important, as long as it is before the pallet gets moved with the jack. Let’s go ahead and just link it once it is set down.
Make sure you have the housing selected. It is recommended to have a key at frame 0 that links to World before adding other links, so go to your Motion tab and open the Assign Controller rollout. Select the top of the tree where it says Transform : Position/Rotation/Scale and click on the Assign Controller button just above it. From the list, choose Link Constraint. Set your time slider to 0 and click Link to World. Now you can advance time to when you want the link to the pallet to begin, click Add Link, then click on the pallet. Now when you animate the pallet, the housing will follow.
The next step is to animate the pallet jack into position so it can pick up the pallet. Move and rotate the pallet jack to the pallet. We’ll want the pallet to follow the jack, so follow the steps as before to add the Link Constraint and link it to the jack. Now when you animate the pallet jack moving away, the pallet and the housing will follow along.
Once you’ve animated the jack to a new position and are ready to drop the pallet and housing, you’ll need to add a new link to the Link Constraint controller on the housing. You can either Link to World again, or do Add Link and choose a static object in the scene, like the floor. Now animate the housing being lifted off the pallet. Keep the pallet linked to the jack since we’ll want to bring it back over to lift the fan motor. Bring the pallet jack back over to the fan motor and repeat the steps above. In the end, you can change the link on the pallet to have the jack drop it off somewhere.
Animating an object along a path is one of the first animation techniques people tend to learn after simple keyframing. It is commonly used to give motion to a camera to move it around in a 3D scene. But what if you want more control over the speed, and add in pauses? Here are two techniques that both accomplish the same thing.
For this example, we’ll use a vehicle that needs to drive to different points in the scene, stopping at each for a few seconds. For this example, I am using multiple splines along the path. It is possible to use a single spline path, and animate pauses at the various points along the path. However, the method I am using is much easier to adjust if there are changes to the timing, spline length, or both.
In the scene “03-Path-Constraint_Car.max” (https://aecom.box.com/v/03-Path-Constraint) you’ll see several rectangles, either red or yellow. We want the car to stop in the yellow boxes but drive around the red box. For the project I based this example from, we did avoid one stopping area initially, but later added a stop there as well as adjusted the path several times. This is why I chose to use a more versatile method of animating.
There are three colored splines to be used as paths, and three point helper objects. We want to animate the car driving along the yellow path for 5 seconds, have it stop for 2 seconds, continue to the second stop for 5 seconds, repeat the 2-second pause, then travel to the end point over the next 6 seconds. So we’ll start by assigning a Path Constraint to each point helper and link it to its corresponding spline. Next, move the keys that were generated to set the timing of the motion as indicated above (Point01 start 0, end 150; Point02 start 210, end 360; Point03 start 420, end 600).
Now that we have the points animated, we need to get the car to follow. If we were using a single path and helper, the Select and Link tool would be the easiest. But we’ll want to link the car to multiple targets, so we will use the Link Constraint animation controller. Start by aligning the car to the first point using (select the car, press ALT A, then select the point). Now, assign the Link Constraint controller and link it to the first point while at frame 0. Scrub your time-slider to frame 150 and create a new link to Point02. Now the car should follow the second point when it moves to the next stop at frame 360. Again, set another link to the third point at frame 360 and your car will follow through to the end.
Feel free to experiment with retiming the animation lengths. Imagine the client wants everything slowed by 50%, or a path to be lengthened or shortened. To make any adjustments, all you need to do is change the keys for the start/stop times on the points and the keys for when the car begins to follow a new link.
The preceding techniques are easy to learn, very versatile, and should be a valuable set of tools in every animator’s toolbox. There are many ways to achieve motion, and there may be better ways to accomplish what I’ve demonstrated in my examples. But these methods are a great starting point to get your feet wet in the world of animation, and can take you pretty far before you need to delve deeper in the animation tool set. For many of you, what I’ve explained here will do almost everything you’ll need, but I hope that at least of few people are interested enough to continue delving in and learning more advanced animation skills.
With an AAS degree in Computer Animation, Chris has been working in the field of architectural visualization since 2000. He has worked his way up from being the sole 3D artist at a small architecture studio to managing production of a small team at a major engineering and architecture company.