« Posts tagged tombstone

[Game] Snowy Turn Table WIP 2

Freshly fallen snow on a grave

Here is an update on my snowy turn table I’ve been putting togeather. I’ve added some animated lighting and given most of the meshes another iteration of detailing and fixes. The next thing I have to do is finish the snowy bushes and make the ice on all the meshes more obvious. As a final touch I might at a sun and a moon togeather with the proper positioning of those respective lights. So have a look :)

[Game] Tombstone WIP 3 – Cloth

Maya Cloth Skeleton

Blowing Scarf (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/12/tombscarf NULL.jpg)Since my last update I’ve added a cloth skeletal mesh to the scene. Cloth inside the Unreal Development Kit is something I’ve always wanted to take a look at.  After watching a quick tutorial over at 3D Buzz (http://www NULL.3dbuzz NULL.com/vbforum/sv_showvideo NULL.php?v=3830) I was ready to start setting up my cloth in Maya. The video is good, but it skips the entire rigging process and starts with a pre rigged 3D plane brought into the UDK. I looked around on the internet for some Maya specific tutorials, but there weren’t any. The first thing that caught me while working this out was the use of the term “bone“. A lot of the tutorials instruct  the reader to add two bones to the mesh. In Maya you don’t really lay down bones. You’re laying down “joints” and what I would consider the bones are the shapes Maya creates between those joints. Before you start you’re probably going to want to jump into Maya’s Animation tab so all the rigging tools are on your shelf. The first step in Maya is to place two joints in a chain along the X axis fairly close together. The next step after you’ve created these joints is to use a “smooth bind” to pair the joint chain with your mesh. That command is under the Animation Menu > Skin > Smooth Bind. Now with the joint chain bound to your mesh you can begin to “paint” your vertex weights. After being bound each joint in the chain stores a separate value for each vertex. Every individual vertex value lets the joint know how much influence it should have over that particular vertex. A value of 1 means the joint would act upon that vertex with 100% of it’s influence (or movement). A value of 0 means that the vertex will not follow that particular joint at all. Below I have a diagram showing how your joints should be setup and named. UDK will later ask us which bone we want associated with the cloth movement.Maya Cloth Skeleton (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/12/bonesetup NULL.png)

Now that the mesh is rigged go into “Object Mode” and use the right click menu to access the “Paint Skin Weights Tool“. Make sure you have textures enabled in your viewport when you’re doing this. You also have to be in the “Default Quality Rendering” mode under your perspective views “Panel” menu to see the weights change as you paint. The first joint “bone1” is going to be associated with all the parts of your cloth mesh you don’t want to move. For my scenario I have painted all the vertices of the knot white and all the vertices of the two scarf arms black. I do this because I don’t want the knot to move at all.  I’ve included two diagrams below to show the weighting of my vertices to both bone1 and bone2.Bone one Weights (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/12/bone1 NULL.png)Bone Two Weights (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/12/bone2 NULL.png) After you’ve weighted your vertices you can export the mesh as a FBX for import into the UDK. On import the UDK should recognize your mesh as a skeletal mesh and give you a different window type when it’s opened up through the UDK Content Browser. After import there are a few properties you need to activate in your mesh.

First you need to open up your cloth mesh in the content browser. You should now have the AnimSet Editor open. This is because UDK is treating our cloth as a “Skeletal Mesh“. The first property we want to activate is “Force CPU skining” this will tell the UDK that we want our mesh to be treated as a cloth. It’s found under the “Skeletal Mesh” roll out in the “Properties” pane. The second and final property we need to change is under the “Cloth” roll out. When there expand the “Cloth Bones” roll out and hit the green cross to add an entry to the Cloth Bones list. Now click in the name space for that entry and call it whatever you named the second joint in Maya. In my case it was “bone2”. With this done you’re now ready to place your mesh into your game scene.Cloth UDK Mesh Properties (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/12/Scarf NULL.png)

Make sure your mesh is selected in your content browser and then right click in one of your views so that you may add your mesh to the scene. Once your mesh is in the scene you need to change a couple of it’s properties that we couldn’t access from the AnimSet Editor window earlier. Under the “Skeletal Mesh Actor” roll out there is a sub section called “Cloth” expand this. Under here we can Cloth In Game Mesh Options (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/12/Scarf2 NULL.png)see the first option “Enable Cloth” and a lower option called “Cloth Awake On Startup“. Enable both these options. As an optional step you can play around with the wind values to try and get your mesh to receive a constant blowing force. To now see your cloth in action you can rebuild your map and launch the level, or simply right click in the perspective viewport and chose “Play From Here“. Cloth doesn’t animate in the viewport’s “Game Mode“.

That’s it for this Tombstone project. I hope anyone following along found some cool tips to help them get a little more out of the UDK.

Cheers,

Terry Matthes

[Game] Tombstone WIP 2 – UV Work

Tombstone UV Layout

Tombstone UV Layout (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/11/tombstoneWIP4 NULL.jpg)Since my last update I’ve stopped working in ZBrush and started testing in the UDK. My goal for this update was to have the light maps working with a basic material in place. The first shot on the left shows the low poly tombstone with it’s UV’s layed out. These are also the same UV’s I used for the light map. If you plan your layout you can make sure that you use the same set of UV coordinates for both diffuse and light map.You still have to put the light map UVs in a second channel within Maya, but this can save you a lot of time. Making the UVs for the light map is a very similar process to making proper UVs for a normal map. You want to ensure that you have separated any faces that break out of the continuity of the surface flow. To illustrate this I have colored all of those faces blue. These faces happen to correspond to all the chips and scrapes in the model. These faces all have one thing in common. They are sharply opposing the direction of the faces around them. Faces like these have to be broken off from the model and separated into UV Islands. You’ve probably heard this term before. UV islands prevent normal map errors when baking down from your high res model to your low res mesh in programs like xNormal. A general rule of thumb is that if a face comes close to or is more than a 90 deg. angle from the regular surface flow it should be separated into it’s own island joined by any adjacent faces with the same behavior. The map pictured here is 1024 square. I should note that I left a little bit of padding around each UV group as this helps with normal and light maps.

Tombstone Work In Progress Shot 2 (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/11/tombstoneWIP2b NULL.jpg)In the picture on the right you can tell the light maps are working correctly because the shadows in the second picture are falling over the crosses as they should. If there were errors in the light maps you might get strange blotches or shadows showing up on the wrong faces. Again it’s important that we separated all those sharply angled faces so that we don’t get these errors. It’s also of note that the lower the resolution of your texture, the more padding you need  to give those islands.  If they are too close the shadows will start to bleed from island to island. In the UDK the entire shadow maps are being baked down to very very low resolutions to save memory. If you look at the ground shadows they are set as high as you can go with 1 pixel of screen space being dedicated to 1 pixel in the light map. You can not do this for every asset in your map or you will kill the texture memory of your video card. I only did this as a test for myself to see how far I could push the shadow correctness. Now you might look at those shadows and think they aren’t that sharp, but in a game with a textured ground and movement they are more than enough to sell the realism of the shadow.

Tombstone Rough Material (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/11/tombstoneWIP3 NULL.jpg)Here we have a simple material with a diffuse, specular and normal map along with a 1 Variable Constant set to “10” being plugged into the specular power. To drop a constant down in your work area you can simply press 1, 2, or 3, on the keyboard and left click. Specular Power operates like Eccentricity on a Maya material. The higher you put the number the more “glossy” your highlight becomes. We are dealing with stone here so we’ve entered a low value of 10 as the porous nature of the stone surface would scatter a lot of the diffuse light being cast. The map we’ve used for the specular is actually a darkened version of the cavity map with some noise applied to help sell the diffuse nature of the stone surface. The cavity map works well as a specular base because it stops the cracks and depressions from casting light out into the scene and in turn sells the sunken  nature of those areas. One last thing I wanted to touch on was your low poly mesh’s normals. I found that if I let the UDK set my vertex normals (which is does by default) my faces looked too sharp where the texture seams were running and I generally wasn’t happy with the result. I spent a bit of time setting all the normals in Maya and I wanted to use those instead. Luckily you can do this when importing.

Tombstone Import Normals Protection (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/11/tombstoneWIP5 NULL.jpg)When you choose to import your mesh you can select a couple options that will stop the UDK from wiping out your normal values. Under the General section and Static Mesh sections there are two options; Import Tangents and Explicit Normals. Check both of these off. If you do all of this and your still having trouble with shadows falling improperly over your object you probably haven’t turned your light map settings up high enough in your mesh’s properties. If it’s the “ground” that isn’t showing shadows correctly then the same holds true for whatever surface the shadows fall onto. Remember though that with a static mesh you want a higher number for a crisper result and with BSP geometry it’s a lower number that casts a crisper shadow.

That’s all for now :) I’ll be back with more soon and hopefully have some of the actual scene to show. If anyone has any questions email me or just ask them in the comments section within this post.

[Game] Tombstone WIP – Sculpting

High and Low Poly Tombstone

High and Low Poly Tombstone (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/11/tombstone_wip NULL.jpg)Over the past few years I have really started to feel dependent on Maya as my 3D application of choice. It’s an amazing piece of software, but when it comes to creating game assets ZBrush eventually came impossible to ignore. This is my first attempt and producing a game asset from start to finish in ZBrush. To help me get started I sat down with a friend of mine who is a character artist by trade and spends a lot of his time in Zbrush. After learning about some really important concepts such as Poly Groups and using Zspheres for retopology I was on my way. The low poly on the left clocks in at ~1K polys which is what my target was. The original on the right was about 4 mil, but that doesn’t really matter because we are only using it for baking our texture maps. The next step for me is to UV map the low poly version and then it’s off to xNormal (http://www NULL.xnormal NULL.net/1 NULL.aspx) for transferring the details from the high to the low.

The stub mesh I started with was created in Zbrush using Shadowbox and the black and white texture below. I looked at my concept art and created a Z axis portrait and a X axis portrait of the tombstone for the Shadowbox alpha. I really like this work flow as it’s incredibly fast and can save you a lot of time when it comes to creating your base to sculpt on. The cuts in the rock surface were made with the clip curve brush and then I used the Trim Dynamic brush to flatten out the sharp edges. The rocky noise was made using Surface Noise and then repeating the process after masking off certain portions of the mesh using  the Mask by Cavity function.Alpha Texture for Grave (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/11/grave_D NULL.jpg) One thing I found useful was the ability to save out noise profiles for later use. I have about six tombstone to make so not having to toy with the noise curves for each one will save me a lot of time. The last step was to go in by hand and carve in individual cracks with the Dam Standard brush. This mesh is going to be used in a scene I’m creating for the UDK. I’m really excited to attack this mesh with poly paint after it has UVs as I recently watched a great video (http://www NULL.cgnuggets NULL.com/collections/frontpage/products/september-2011-video-polypainting) on the subject by Jesse Sandifer. More to come soon :)