A games assets will likely consist of many objects if the creators intention is to create a world that represents our reality. In the digital realm we try to mimic these objects to make the world more realistic. We can create these assets using 3D modeling software to create and optimise them for a video game. Be it interactive objects or assets purely designed for visual detail only, such as background elements.
This post I will be writing about the open source software Blender. Blender is free to use and is constantly updating making it a great choice for those who wish to learn the basics of 3D.
Learning a piece of software like this can be daunting if you have no direction or guidence, like photoshop it has many buttons, tools and functions that are specifically designed for certain tasks. Of course you can click and test tools without worry, but that is unlikely to get you a real understanding. So I will post the various tutorial videos and documnets that I used to learn. This was the fastest way that I could think of.
Here I will create a list of the playlists that I followed in high detail to learn the basic tools and functions of Blender from a Youtube channel called Blender Guru. If you follow the series in the way that I did then you will eventually get to a point similar to me.
Blender Guru: Blender Beginer Tutorial Series [2DL].
From this I learned how to make a donut and a coffee cup. Two reasonably intricate objects when regarding the 3D realm. This series amounts to nearly 4 hours of video content to complete. It will likely take a few re-plays to get the hang of certain complex tools, as this program is really heavily based on remembering shortcuts and key commands. But luckily Blender Guru (Andrew Price) has provided a handy shortcut key command guide to help with this (Link).
After many hours of following careful steps relating to program layout, tools and shortcuts I eventually made my first donut as seen below.
I am acutally very happy with my first ever render (Render is the term used when the computer essentially 'builds' the model using the parameters the user has provided). Blender uses various types of rendering engines which I will not go into as it is not directly related to my aims. In this free series I was able to learn basic tools such as axis control using X,Y,Z controls and shortcuts to move objects within the 'scene'. Manipulation tools such as editing various surface types such as verticies, edges and faces.
Verticies = point on a model. Edges = the edge on a part of a models face. Face = The face on a part of a models form, made of at least three or more verticies connected by edges.
The series also covers other manipulation tools such as pulling, stretching and extrudeing. Pulling being as it says where the user can pull a vertex, edge or face in a specific direction. Stretching is similar to pulling in motion however it does effect the scale of the selected part. Extruding is usually used with faces to extend its shape. This is when the program really feels like you are 'modelling' an object using clay as you are able to pull a face outwards to extend it, which enables you to create very complex shapes.
A feature of Blender that is used a lot throughout is what is known as modifiers. Modifiers are essentially preset plugins or functions that do a job really fast for the user.
Blender Guru: Intermediate Blender Series [4DL]
This series adds another few hours of video time and goes into a more complex single shape which involved more intricate use of modifiers and tools, such as boolean and mirror. Boolean is essentially a tool used to drill into models using another model to cut a shape. Mirror uses a defined point to create a boundary, anything to user does on one side of the boundary is mirrored in the opposite side, allowing for half of the modeling work.
I do not think I need to go into to much more detail regarding this as I feel that you are able to follow the video series yourself which covers alot of the smaller details.
Materials are a very important part of 3D models. They are a part of the model that gives it colour, texture and reactions to light. Materials can be either extremly simple or extremely complex. (Advanced users: At this stage of the seires the principle shader does not exist but persist anyway). Blender Guru and others shows us how to use the cycles render engines node editor to create easy material maps for our objects.
Lights are objects within a 'scene' that cast artificial light onto objects. These lights cast shadows and can help to make a scene more realistic. Lights in Blender allow us to see how our models may look in a game engine and are important for the realism of a scene.
Firstly I think its best to show the principled shader. It is a shader that allows the user to move away from overly complex matarial node maps by combining alot of the old maps into a new single set of parameters. You can then connect other nodes to parts of the shader to make it more complex when required, such as when adding a image texture or what is known as normal maps for extra detail. A video with all info required on the shader can be found here [5DL].
The subdevision surface modifier for example is one of the most common used in Blender. It essentially adds detail to a object by increasing the polycount. But it allows the user to have control of the level of poly information until it is officially applied. Allowing the user to have control throughout the model process.
This node map shows a very simple material that gives the user control of some characteristics of the material using shader nodes. Diffuse being a RGB mix of basic 'matt' colours to provide a roughness texture node. Glossy is a shader that allows the user to mix a shine effect. Combined with diffuse they can create alot of textures such as a mimic of plastics, ceramic, stone etc. The node editor has changed since this series and uses a shader known as the principle shader, which has all nodes that a required for any material into one.
Normal maps are essentialy altered copies of a image texture, that are combined with the original image to create extra detail that costs alot less render/processing power, in comparrison to a model with the same physical information sculpted into it. A normal map specifically defines some height information using a colour range to essentially print the illusion of depth to a texture. All I know about normals maps can be found here [6DL]. The video will show you how to use normal maps for your own materials in Blender. The principle applies to materials made in nearly all other programs also.
Using a combination of thoughtout UV maps, lighting and more advnaced texturing for your materials you can create quite detailed models/scenes with a lot less power required.
There are of course plenty of advanced features that I have not covered however I hope that later posts in this series will help to cover them. Thank you for reading this blog.
When I eventually moved an object that I made out of Blender and into Unity Engine I discovered some problems. The objects did not carry across the material information as well as reacting strangly to the engines light objects.
To move a object out of Blender select - File > Export > .FBX - You can then drag the FBX file into Unity's Assets pannel.
After doing some reading and speaking with some helpful people at Poligon [14W] I found that blenders material node meta data does not carry across to Unity properly as the formats are not recognised by it. It does however carry across the data regarding the organisation of the material map. This allows me to 'plan' the material in Blender and then quickly apply the Unity made versions of the materials into the map once the object is imported. However there is another problem that I had to face based on UV maps.
UV mapping was for some reason a difficult task for me grasp. It is essentially the process of telling or marking the model with 'seams' that create a map that the program uses to determine how it possitions the decided texture content. So for example, if I used a wood plank texture on a object without a map it would be wraped or placed onto the surface without any direction, leading to an unrealistic placement of a image texture. In the case of Blender if a map is not present then the image will generally not show at all. Blender Guru does cover this in the second series shown below, however I sought out another video series for a deeper understanding of it.
Blender UV Mapping by Darrin Lile [3DL] - This is worth going through if you wish to have a better understanding about the relationship between Blender and a game engine regarding materials.
Modifiers are extremely useful and have nearly unlimted uses for creatives with the imagination to use them. And they have of course very logical function that allows us to more easily optimise our models. Models can become very complex and their 'content' adds to the computers work load so using any means to optimise the content of your models is great to learn to do from the start. When thinking ahead to a video game all users want a smooth working game experience so that it allows them to become more fully immersed in the world. A glitchy frame rate or low quality flow will contribute to a poor user experience.
(The final donut shows a large 'polycount'. Poly being an abreviated term for polygons. Models are made of polygons and the amount of polygons contribute to the process speed of a digital scence. The more you have the slower the process speed).
We can use some modifiers to help us optimise not only our workflow but to keep in check with our polycount. Here is the Blender modifers list.