In this tutorial, we'll use Blender 3D to model a simple, wooden sign hung on chains, and add a quick animation rig to make it "swing." The sign will be low poly, and suitable for use in a video game. The chains will be modeled, however, the modeled pieces can be rendered to a texture and applied to planar surfaces for an even lower poly solution.
NOTE: This tutorial is beginner friendly, but it does require some basic familiarity with viewport navigation and common commands. Hotkey suggestions are highlighted in green.
For inspiration, you may wish to Google a search term like "shield sign" to bring up lots of interesting sign shapes. I'm going to model a sign shaped like this stock image from dreamstime.com:
To use an image reference in the Blender viewport, save a copy, and in the Number panel N, enable Background Images. Choose Add Image, and browse to your saved file.
Select Orthogonal view 5, and with default settings, your image should appear in all views.� You may scale and move your image if necessary.
Add a Mesh Plane: Shift A > Mesh > Plane.
In Top Ortho view Numpad 7, Tab into Edit Mode, and choose Wireframe from the Viewport Shading menu.
Select All A, and in the Tool panel T, choose Subdivide, twice.� Box Select the bottom edge of vertices B, and Extrude them E. Right click to leave the extruded pieces in place, and using the Y axis handle, click and drag the extruded vertices downward until they are about equal in length to the rest.
In the 3D viewport, enable Proportional Editing (simply Enable or Connected, doesn't matter), and using a falloff big enough to affect surrounding vertices Scroll Mousewheel, adjust your plane to fit the shape. Leave the rectangular subdivisions as equal in scale to one another as possible.
You may need to add subdivisions to maintain a fairly equal distribution of real estate between faces, as in my example below. Ctrl R + click on an edge loop to add a new perpendicular loop.
Alternately, use the Knife tool K + click beginning and end points click + Enter. This works well to connect two vertices between edge loops.
To minimize the number of subdivisions (for the best game performance), only add geometry where needed, rather than subdividing the whole object.
You can also average out the distance between selected vertices to smooth out your geometry, by clicking Smooth Vertices in the Tool panel T. Leave boundary vertices out of your selections when you use this tool, or they will get pulled inward and distort your shape.
At this point you'll have a good base for your shield sign model. There are a number of ways to solidify the shape and retain its clean subdivisions. Since this model is fairly simple, we can add a Solidify modifier to it.
Tab out of Edit Mode. In the Modifiers tab of the Properties panel choose Add Modifier > Solidify. Increase the Thickness to about .2, leave the rest at default settings, and click Apply.
Tab into Edit Mode and rotate your view Mousewheel button, to confirm that the model is solid and that the subdivisions are the same on both sides. (Note: If you are working on a more complicated model, you may want to select All A and choose Remove Doubles from the Tool panel T, to ensure that no vertices, edges or faces were accidentally duplicated in the process. Checking for duplicate parts is good practice for game assets, before export.)
This will be a techniques for game usage, but if you prefer a smoother model, you can add a subsurf modifier and add edge loops to sharpen the edge creases as shown below.
In Edge Select mode Ctrl + Tab > Edge, select the top and bottom edge loops, and edges along the sides of our sign to break up the long strip of UVS, then Ctrl E > Mark Seam. Marked Seams will appear red.
Open UV/Image Editor view in a second viewport by clicking and dragging on the double slash marks in the upper right corner of any open viewport, and changing the Current Editor Type in the bottom left (upper left for certain panel types) corner to UV.
In the 3D viewport, select all A, and bring up the Unwrap menu U. Choose the basic Unwrap method. In the Unwrap tool panel T, increase the margin to 0.1, to prevent overspray of texture paint at UV island borders.
In the Materials tab of the Properties panel, assign a new Material. In the Texture tab of the Properties panel, assign an Image Texture. A basic wood texture makes a good base for this project. I will be demonstrating with a seamlessly tiling rough wood texture available for purchase here .
Make sure that Texture Mapping is set to UV.
In the UV/Image window, browse to the newly added wood texture and select, to display it in the viewport. Make sure that the UV islands are aligned logically with the texture, rotating R and moving G as necessary. Leave some room to add UVs for the chain texture later on. In my case, I needed to rotate the UVs 90 degrees (R then Ctrl to snap).
To view the texture unshaded on the model, you may wish to choose Solid texture shading in the 3D viewport, and enable Shading > GLSL > Textured Solid in the Numbers panel N.
Texture editing and painting is a subject for another tutorial, but if you'd like to edit your sign texture in an external program, selecting UVs and choosing Export UV Layout will give you a transparent template to save, that you can then layer over your painting layers as a guide. (Tip: The Export menu includes an option to adjust the opacity of the layout. For easier selection of UV islands, I recommend 100% opacity.)
For this demonstration, I've used the exported UV layout as a guide in Photoshop, to create a wrought iron border and weathered paint effects.
Exit Edit Mode Tab.
If you use the Blender internal Texture Paint mode to edit your texture, be sure to save any changes as a new image.
Hide the sign from view temporarily H. With the 3D cursor set at the center of the world:Shift S> Snap Cursor to Center, add a new Mesh, Torus: Shift A > Mesh > Torus. In the Torus tool panel T, adjust Major Segments to 10, Minor Segments to 5, and Minor Radius to 0.3.
Tab into Edit Mode. In the 3D viewport, select Wireframe shading. Choose face select mode Ctrl + Tab Face. Deselect all A.
In Top Orthogonal view Numpad 7 (Numpad 5 toggles between Perspective and Ortho) Box select all the bottom half faces of the torus and Extrude E. Right click to leave the extruded pieces in place, and using the Y axis handle, click and drag the extruded vertices downward until you have a roughly chain link -shaped object.
Assign a new Material and an Image Texture of worn metal. A fairly realistic iron or metal material can be created procedurally in Blender, but for this demonstration I will be using the seamlessly tiling dark iron texture available for purchase here.
In the UV/Image window, browse to the newly added metal texture and select, to display it in the viewport.
In Edge Select mode Ctrl + Tab > Edge, Alt select one edge loop , then Ctrl E > Mark Seam. Select all A and Unwrap U. Choose basic Unwrap.
Tab out of Edit Mode. In the Modifiers tab of the Properties panel, Add Modifier > Array. Reset the Relative Offset X axis value to zero. While referencing the Top Ortho view Numpad 7, increase the Relative Offset Y axis so that the inner circumference of the copy just touches the inner circumference of the original. (Note: Relative Offset moves the copy object by multiples of the original's scale so that one unit would place the copy exactly one object length away from itself.)
Apply the Array Modifier, and Tab into Edit Mode. Select one of the two links Mouseover + L and rotate in the Y axis 90 degrees R, Y, 90, Enter.
Add a new Array Modifier, zero out the Relative Offset X axis again and increase the Relative Offset Y until the links copy is just touching the original again. Increase the Count to your liking. I chose 4.
Apply the modifier again. Enter Edit Mode Tab, and selecting individual links again Mouseover + L, give a few links some random rotation in the Y axis, for example R, Y, 45, Enter.
Tab out of Edit Mode, and unhide the sign Alt H. The links are a good deal larger than the sign, so select them and scale downward S. Once your chain links are the proper size, apply Scale: Ctrl A > Scale. (Tip: Applying all scale, rotation, and location transforms is good practice for game assets, before export.)
In Top Ortho view Numpad 7, select and move the chain into position on one side of your sign G. Shift D to duplicate the chain Right click to release, and move it with the X axis transform handle into place on the other side. Change view to Right Ortho Numpad 3, and use the Z axis transform handles to move the chains to the center of the sign.
You may wish to rotate links in your duplicate chain in the Y axis for added realism, making sure that the chain links still terminate in a logical way at the top of the sign.
Ensure that the 3D cursor is located at the center of the world Shift S > Cursor to Center.
In the Right Ortho view Numpad 3, Add an Armature, Single Bone: Shift A > Armature > Single Bone.
Rotate the new bone negative 90 degrees in the X axis R, X, -90, Enter. Move the bone so the right end is even with the top of the top-most chain link. With the bone selected, Tab into Edit Mode, select the left-most end, and using the Y transform handle move the end to the bottom of the second chain. With the end selected press E to Extrude, Right click to release, and drag left in the Y axis the length of two more chain links, then repeat extruding bones the remaining length of the chain.
Tab out of Edit Mode and select both chains and the sign. Ctrl J to join the three objects into one. At this point, you might want to composite the chain texture into your sign texture, and move the chain UVs to fit.
Out of Edit Mode, select the sign first, then the bones, and set Parent Ctrl P to Armature Deform > With Automatic Weights.
Open the Timeline editor panel, by clicking and dragging on the double slash marks in the upper right corner of any open viewport, and changing the Current Editor Type in the bottom (or upper) left corner to Timeline.
You can get a rough feeling of how long an animation will run with the current number of frames and frame rate, by pressing play and noting how long it takes for the green bar move from left to right. I estimate that a natural looking front and back swing will take about 80 frames at the default 24 fps, so reset End frame to 80, and with the Mousewheel, scroll to spread out the frame display, and Mousewheel button grab and drag the active area to the center of the Timeline view.
Select bones and enter Pose Mode.
With the current frame set to 1, insert keyframes for the rotation of all the bones, by selecting All A, setting the keyframe type to Rotation, and pressing the Key icon. You should see a note at the top of your screen indicating that keyframes were set, in my case 16: quaternion rotation for all four bones.
We will be adding keyframes at the forward height of the swing, the center, the backward height, and again at the center where it will loop. First though, at frame 80, repeat the process to insert keyframes for the current non-rotation on all bones again, so that after keyframes are set in the middle, the animation will return to the start position.
At frame 40, repeat the process again, so that the swing returns to the center at the midpoint of the animation.
At frame 20, select all but the bone at the top of the chain (so its position remains fixed), and rotate the sign upward about 10 degrees. Deselect the second top most bone, rotate the remaining bones upward about 10 more degrees, and again deselect and rotate the remaining bone(s) until the sign is at the peak of its forward (upward in the viewport) swing. Select all bones A and set keyframes for these rotations at frame 20.
Set the current frame to 60, and repeat the process in reverse, rotating each bone back (downward in the viewport), selecting all A, and setting keyframes.
Press play to see your animation. You'll notice that the animation "sticks" a little as it loops, so now we need to adjust the curves in the Graph Editor.
Open the Graph Editor by clicking and dragging on the double slash marks in the upper right corner of any open viewport, and changing the Current Editor Type in the bottom (or upper) left corner to Graph Editor.
In this view, select all A and center all in view by pressing Numpad "." This will show a more manageable view of the curves. (Note: The yellow square points (1) correspond to keyframes, and the yellow circles on either side of the squares (2) are curve handles.)
First we will make this a cyclic animation so that the motion is continuous. With all still selected A, open the Graph Editor's Numbers panel N and in Modifiers section press Add Modifier > Cycles.
Scrolling forward to zoom in, you'll notice that the beginning and end keyframes have a bit of an S curve, which is creating the hiccup. Selecting these one at a time by right clicking the yellow square until a lumpy curve is highlighted, you can convert them each into a smoother transition by pressing V and choosing Vector.
You will need to convert the curve point to Vector at both the beginning and end keyframes for each bone, so it may be helpful to toggle the visibility of each bone's curve in the upper left of the Graph Editor.
In the 3D viewport, exit from Pose Mode and go into Object Mode, and select both the sign and bones. In the Right Ortho view Numpad 3, rotate the sign and bones negative 90 degrees in the X axis R, 90, Enter. Apply rotation Ctrl A > Rotation.
Navigate to File > Export and choose your export format. For import to the Unity game engine, I prefer the Autodesk FBX (.fbx) default settings (-Z Forward, Y Up), with Selected Objects and Baked Animation enabled.
In Unity 3D, importing objects is as easy as dragging and dropping the .fbx and texture files into the Project. You may need to create a new material for the model, and assign the texture manually.
In the Unity 3D Project view, select your model, and in the Inspector under Rig change the Animation Type to Legacy. In the bottom right of the Inspector panel Apply and Revert buttons appear after changes are made. Press Apply.
In the Inspector panel under Animations, change the Wrap Mode to Loop. Apply.
Drag an instance of your object from the Project panel, into the scene. Adjust the location, rotation and scale as needed, and press play!
See my finished swinging sign, working in a Unity 3D demo environment here.