3D Modelling And Animation Dinosaur Project James Bratt 1 Introduction The following report outlines in detail the steps taken to create unique three dimensional objects that have been combined together to create a complex scene and animated clip. The modelling software used to achieve this was Blender version 2.69. Blender is open source software that provides many editing tools that enable the creation of custom 3D objects. In the case of this project it is the creation of a prehistoric scene. Unique 3D model The first stage of the project was to produce a custom object in the shape of a dinosaur. This is essentially the centrepiece of the overall scene. The dinosaur shape is based upon a rough sketch that is imported into Blender as a JPEG to use as a guideline. Creating a complex object such as this involved starting with just a basic cube mesh. Some of blenders most fundamental tools are employed to morph the said cube. These include the extrusion tool, the rotation tool, the re-sizing tool and the movement tool. By selecting individual edges and vertices of the cube, these tools were then used to create the basic shape of the dinosaurs head; this is literally just a 'U' shape. Starting with this basic 3D shape the next key stage in the process is to essential split the object along its x-axis by creating a new vertex. Then by selecting all of the vertices along one side of this vertex and deleting them, you are left with half the object. The purpose for this is in order to implement the mirroring object modifier. Mirroring the object along its x-axis means that all further custom morphing techniques do not need to be done twice, i.e. limbs. Fig.1 demonstrates how the mirror modifier works. Now that the basic head shape has been created it is then just a case of adding further vertical and horizontal vertices to the object. Whilst in edit mode and with vertex select enabled it is then possible to refine the shape of the object by extruding vertices. This gives the head a less polygonal shape and a little more curvature. Fig.2 shows a vertex can be created and then morphed using editing tools. The main torso shape has been created by removing faces from the back of the head and then selecting the edges that perimeter the opening that has been left before 2 extruding them. Further use of the extrusion and re-sizing tools allow for the creation of the torso; from the neck to the tip of the tail. The next stage was to create the dinosaurs limbs. This was done by switching to face select mode and deleting two faces along the torso leaving openings where the arms and legs need to be positioned. Fig.3 shows the edges along the leg opening that were selected and then extruded. New faces are then created like the ones highlighted in fig.4. From here, the same morphing techniques that were used to create the shape of the torso are used to create the shape of the limbs. Whilst also adding additional vertices that can be manipulated to give a better shape to the limbs. The steps I have taken have given me the basic shape of my custom object. The next stage in the process was to effectively add a skin to the object. I had marked edges around parts of the object such as the limbs and head as seams. This is shown in fig.5 with the seams being highlighted in red. Once all the appropriate parts of my object had been divided into separate groups, the UV/image editor was then used to unwrap each group into the UV editor as displayed in fig.6. Once each group had been unwrapped into the UV editor, it was saved as a PNG image. The original idea for adding colour and detailing to the skin was to export the PNG into Photoshop and apply detailing using Photoshop tools before importing the image back into Blender and re-wrapping the groups onto the object. 3 However, due to time constraints on the project, this phase was unable to be completed as desired. The alternative method I used was to create a new material in Blender. The material would be a basic skin for the dinosaur, so I adjusted its intensity and hardness to give the material a matte appearance as shown in fig.6. In fig.7 you can see how I have created a new texture from this material and applied to the object. This was a more efficient but less effective solution to giving my object a skin. 4 Rigging The 3D Model Rigging the 3D object involves adding an armature into the Blender file. An armature is essentially a skeleton, the purpose of which allows for manipulation of individual parts of the 3D model. Fig.1 below shows how the dinosaur has been rigged with an armature that is made up of separate bones. The bones in an armature are arranged hierarchically. In this particular object the master bone is the one that separates the pelvis and shoulder joints (see fig.2). Every other bone in the armature is a child of this bone, meaning that if its position is changed for example, the position of all the child bones change also. In order to create additional child bones from a parent it is necessary to switch into edit mode, and from there select the relevant parent bone and make an extrusion from either the tail or head end (see fig.3) of the bone. Positioning the bone correctly within the mesh is crucial 5 Now that the mesh has been fully rigged, it is simply a case of selecting both the armature and the mesh and switch into pose mode. Pose mode allows to select individual bones in the armature and move or rotate them along different axis. A crucial consideration that has to be made when rigging the mesh is that certain mesh vertices may require weight information to applied. This is applicable when for instance bones in the tail were moved along the Y axis the armature would separate from the mesh. Switching to weight paint mode allows for weight information to be 'brushed' on to certain areas or vertices of the mesh. The weight paint is defined using colour, with blue representing un-weighted information and red representing fullyweighted information. Applying weighted paint to the end of the tail prevented my armature from separating from the mesh. 6 Scene Components Landscape As part of the overall project it was necessary to create a environment for the custom object to be placed in. Blender comes with built-in mesh objects that are activated in user preferences. Activating the landscape mesh produces a ready made environment to be used. Once the mesh has been added to the Blender file its appearance can be configured using the landscape options bar as shown in fig.1. The key options that needed to be configured were the height, offset, plateau and sea level. These options determine the height and number of peaks included in the landscape. With much of the landscapes appearance already being predefined by Blender, the main task that is required to customise the landscape is to add colours and textures. To create the effect of multiple types of terrain on a single mesh it was required that four different instances of texture data were created. The first step was to create a new material. In this case it was labelled 'terrain'. The four different textures are then applied to this material. I wanted my landscape to consist of a sand, dirt and rock texture. I first created these textures by adding the appropriate colours and basis to give me the desired effect. Once the three textures had been created I unwrapped the landscape mesh into the UV editor before then switching into the node editor. Fig 3 shows how each of my landscapes textures can be applied to an individual node. Two nodes can be connected to another single node which then creates a mixture of the textures. This technique is used until there is just one single node that has a mixture of all three textures. This final mixture is applied as a single texture on the mesh. 7 Sapling Similarly to a landscape mesh, a sapling curve can be added to Blenders built-in components by enabling it in the user preferences. Once enabled, the sapling can then be added as a new curve into the blender file. As with a landscape mesh the sapling has an initial set of configurable options that are displayed in the left hand bar on the screen. Fig. 1 shows what a new sapling looks like when it has been first added to the Blender file. I used the sapling curve to create a palm tree that can be used as an additional landscape prop for my overall project. 8 Using the branch growth option as displayed in Fig.3 I have been able to increase the length of the trunk as well as the trunks girth. Using other key options such as branch splitting and leaves configuration I have been able to adjust the length and curvature of the branches and the density and shape of the saplings leaves. The other options I used are displayed in Fig. 2/3/4. 9 Lastly, the sapling trunk and leaves componants are then seperaated so that they can individually be applied with a texture. The leaves are applied with a green cloud style texture whilsty the trunk is applied with a brown linear texture. Finally, the sapling is then converted from a curve object into a mesh. This is necessary so that it can be imported into a new Blender file along with the landscape and dinosaur. 10 Animation To create the final animation it was necessary to first combine all of the objects created into one Blender file. This involves appending an object into the file to in effect import it in. Once this had benn I the various objects in the file were ready to be animated. The following screenshots demonstrate how I animated both the dinosaur and the camera. Firstly to animate the dinosaur the armature and mesh are both selected so that pose mode can be enabled. Once in pose mode individual bones can then be selected and re-positioned as desired. To create an animated scene I used recorded key frames. For each key frame I ensured that the dinosaurs armature was positioned differently. The animation was 250 frames in length which at a frame rate of 15 frames per second amounted to a 16 second animation. In addition to this part of the animation was the animation of the camera. This was achieved in the same way as the dinosaur animation, so the camera was re-positioned at different key frames. An alternative method to animate the camera would have been to use a path that the camera could have been joined to and then subsequently followed. Using key frames, however meant that it was simpler for both the camera and the dinosaur to be animated simultaneously. The finished animation was then rendered and output in the form of an AVI file (see final screenshot). 11 12 13 14 15