You can consider DupliFrames in two different ways: an arranging or a modeling tool. In a way, DupliFrames are quite similar to DupliVerts. The only difference is that with DupliFrames we arrange our objects by making them follow a curve rather than using the vertex of a mesh. DupliFrames stands for “Duplication at Frames” and is a very useful modeling technique for objects which are repeated along a path, such as the wooden sleepers in a railroad, the boards in a fence or the links in a chain, but also for modeling complex curve objects like corkscrews, seashells and spirals.
Modeling using DupliFrames
We are going to model a chain with its links using DupliFrames. First things come first. To explain the use of DupliFrames as a modeling technique, we will start by modeling a single link.
To do this, add in front view a Curve Circle (Bézier or NURBS, whatever).
In Edit mode, subdivide it once and move the vertices a little to fit the link’s outline (Link’s outline).
Leave Edit mode and add a Surface Circle object (Link’s cross section).
NURBS-surfaces are ideal for this purpose, because we can change the resolution easily after creation, and if we need to, we can convert them to a mesh object. It is very important that you do not confuse Curve Circle and Surface Circle. The first one will act as the shape of the link but it will not let us do the skinning step later on. The second one will act as a cross section of our skinning.
Now parent the circle surface to the circle curve (the link’s outline) as a Normal Parent (not a Curve Follow constraint).
Select the curve and in the Editing context (F9), Curve and Surface panel, press Curve Path and Curve Follow (Curve’s settings: Curve Path and Curve Follow).
It’s probable that the circle surface will appear dislocated. If this is the case, select it and press AltO to clear the origin (Clearing origin).
If you hit AltA the circle will follow the curve.
Now you probably will have to adjust the TrackX/Y/Z and UpX/Y/Z tracking buttons, in the Anim settings panel, Object context (F7), to make the circle go perpendicular to the curve path (Tracking the right axis).
Now select the Surface Circle and, still in the Anim settings panel, press DupliFrames. A number of instances of the circular cross section will appear along the curve path (DupliFrames!).
You can adjust the number of circles you want to have with the DupSta, DupEnd, DupOn and DupOff buttons. These buttons control the Start and End of the duplication, the number of duplicates each time and also the Offset between duplications. If you want the link to be opened, you can try a different setting for DupEnd (Values for DupliFrames. Note “DupEnd: 35” will end link before curve’s end).
Note that the maximum number of duplications (the DupEnd value at which all curve path is “used”) is controlled by the “length” of this curve path (Path Len field, in the Curve and Surface panel).
To turn the structure into a real NURBS-object, select the Surface Circle and press Ctrl⇧ ShiftA.
A pop-up menu will appear, clic on Make dupli objects real (Making Dupli’s Real).
Do not deselect anything. We now have a collection of NURBS forming the outline of our object, but so far they are not skinned, so we cannot see them in a shaded preview or in a rendering.
To achieve this, we need to join all the rings to one object. Without deselecting any rings, press CtrlJ and confirm the pop-up menu request.
Now, enter Edit mode for the newly created object and press A to select all vertices (Skinning the link).
Now we are ready to skin our object.
Press F and Blender will automatically generate the solid object. This operation is called Skinning and is fully described in “Surfaces Skinning”.
When you leave Edit mode, you can now see the object in a shaded view.In some versions of Blender it may appear very dark. To correct this, enter Edit mode to flip all normals: select all vertices, then press W. Choose Flip Normals from the menu and leave Edit mode. The object will now be drawn correctly (Skinned link).
The object we have created is a NURBS object. This means that you can still edit it. Even more interestingly, you can also control the resolution of the NURBS object via the settings in the Curve and Surface panel, Editing context (F9).
Here you can set the resolution of the object using ResolU and ResolV, so you can adjust it for working with the object in a low resolution, and then set it to a high resolution for your final render. NURBS objects are also very small in file size for saved scenes. Compare the size of a NURBS scene with the same scene in which all NURBS are converted (AltC) to meshes.
Finally you can delete the curve we used to give the shape of the link, since we no longer need it.
Arranging objects with DupliFrames
Now we will continue modeling the chain itself. For this, just add a Curve Path (we could use a different curve but this one gives better results). In Edit mode, move its vertices until you get the desired shape of the chain (Using a curve path to model the chain).
If not using a Curve Path, you should check the button 3D (in the Editing context, Curve and Surface panel), to let the chain be real 3D.
Select the object “Link” we modeled in the previous step and parent it to the chain curve, again as a Normal Parent. Since we are using a Curve Path the option CurvePath, in the Editing context, will be automatically activated, however the CurveFollow option will not, so you will have to activate it (Curve settings).
If the link is dislocated, select it and press AltO to clear the origin. Until now we have done little more than animate the link along the curve. This can be verified by playing the animation with AltA.
Now, with the link selected once again go to the Object context (F7), Anim settings panel. Here, activate the option DupliFrames as before. Play with the DupSta, DupEnd and DupOff NumButtons. Normally we are going to set DupOff to 0, but for a chain, if this produce links too close from each other, you should change the value PathLen for the path curve to a lesser value (Editing context, Curve and Surface panel) and then correspondingly change the DupEnd value for the link to that same number (Adjusting the DupliFrames).
We need it so that the link rotates along the curve animation, so we have each link rotated 90 degrees with respect to the preceding one in the chain. For this, select the link and press Axis in the Draw panel, Object context, to reveal the object’s axis. Insert a rotation keyframe in the axis which was parallel to the curve. Move 3 or 4 frames ahead and rotate along that axis pressing R followed by X-X (X twice), Y-Y, or Z-Z to rotate it in the local X, Y or Z axis (Rotating the link).
Open an Ipo window to edit the rotation of the link along the path. Press the Extrapolation Mode (E → Extrapolation) so the link will continually rotate until the end of the path. You can edit the Ipo rotation curve to make the link rotate exactly 90 degrees every one, two or three links (each link is a frame). Use N to locate a node exactly at X=2.0 and Y=9.0, which correspond to 90 degrees in 1 frame (from frame 1 to 2). Now we got a nice chain (Dupliframed chain)!
More Animation and Modeling
You are not limited to use Curve Paths to model your stuff. These were used just for our own convenience, however in some cases there is no need of them.
In Front View, add a surface circle (you should know why by now, A Surface Circle).
Subdivide once, to make it look more like a square.
Move and scale some vertices a little to give it a trapezoid shape (Trapezoidal cross-section).
Then rotate all vertices a few degrees.
Grab all vertices and displace them some units right or left in X (but at the same Z location). You can use Ctrl to achieve this precisely.
Leave Edit mode (Trapezoidal cross section, rotated and translated).
From now on, the only thing we are going to do is editing Ipo animation curves. So you can call this “Modeling with Animation” if you like. We will not enter Edit mode for the surface any more.
Switch to Top View.
Insert a KeyFrame for rotation at frame 1, go ahead 10 frames and rotate the surface 90 degrees over its new origin.
Insert one more KeyFrame.
Open an Ipo window, and set the rotation Ipo to Extrapolation mode (E → Extrapolation – Rotation Ipo for the cross section).
Go back to frame 1 and insert a keyframe for Location.
Switch to Front View.
Go to frame 11 (just press ↑) and move the surface in Z a few grid units.
Insert a new keyframe for Location.
In the Ipo window set the LocZ to Extrapolation mode (Translation Ipo for the cross section).
Now, of course, go to the Object context and press DupliFrames. You can see how our surface is ascending in a spiral through the 3D space forming something like a spring. This is nice, however we want more. Deactivate DupliFrames to continue.
In frame 1 scale the surface to nearly zero and insert a keyframe for Size.
Go ahead to frame 41, and clear the size with AltS.
Insert a new keyframe for size.
This Ipo will not be in extrapolation mode since we don’t want it scaled up at infinitum (Size Ipo for the cross section).
If you now activate DupliFrames you will see a beautiful outline of a corkscrew (A curved object procedurally created).
Once again the last steps are:
- Make Duplis Real.
- Joining the surfaces.
- Select all vertices and skinning.
- Switch direction of normal if needed.
- Leave Edit mode (A curved object procedurally created).
|A curved object procedurally created.|
You can see this was a rather simple example. With more Ipo curve editing you can achieve very interesting and complex models. Just use your imagination.