« Posts under Unreal

Graveyard Shot Final

Windy Graves UDK

I’ve finished the UDK graveyard scene I was working on and started another :) This scene was fun to work on and it gave me a better understanding of the Unreal Engine as a whole. The most interesting part of the entire process was learning the UDK lighting system and how it handles (or doesn’t) BDRF in materials. For my next project I’m starting with a physically based shader that should make more sense coming from Maya. Putting together all the wind related meshes also taught me how far you can push cloth objects with simple skeletons and there will be more of that in my next piece.

 

Graveyard Scene WIP 1

Scene Snippet

Just before I left for Montreal I was able to snap some pics of my graveyard scene. I’ve got most of the modeling done, as well as the sky and rain systems. The Ivy on the foreground grave still needs to be skin weighted for wind movement, whereas the Ivy on the background grave is using a vertex offset to animate the ivy.

Scene Snippet (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/06/SceneSnippet NULL.jpg)

I’m quite happy with the look of my high detail tree, but I still have to tweak the leaf cards a little as some of them don’t line up with the branches I’ve painted on the branch cards. Speaking of vertex weights the trees also need this. I’m going to use the same material wind network the grass uses so they move together. Painting up the trunk and branches in Zbrush was fun and eventually I saved out a surface noise setting for the bark so that I could apply the same look across the entire tree without having to sculpt each notch in the bark. This setting can also be loaded up for any other trees I might create to help things look consistent from tree to tree.

High Detail Tree for UDK (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/06/mayaTree NULL.jpg)

Sky Material Network (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/06/skysetup NULL.jpg)Vertex Ivy Material Network (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/06/ivySetup NULL.jpg)Vertex Coloured Ivy (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/06/vertexIvy NULL.jpg)Graveyard WIP paintover (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/06/paintover NULL.jpg)The material networks are purposefully obscured as they aren’t final and I wouldn’t want anyone to follow them as they are not yet complete. When I’m done I’ll post a better breakdown of the these. I’ve also included a quick Maya shot of the foreground tomb’s ivy and it’s vertex weighting. The base of the leaves are black to keep them from shifting and the weight falls off to red towards the edges of the leaves. You don’t have to be too meticulous with the weights as you can manipulate them in the UDK treating them just like any other RGB value.

After all is said and done I think I’m the most excited about implementing torches on the fence in the background. I apologize for the crushed levels in the video. When I get back to Winnipeg I’ll re-compress it with adjusted settings. If you visit my Youtube (http://www NULL.youtube NULL.com/user/DelightningVFX/videos) channel you’ll see the pyre tests (http://www NULL.youtube NULL.com/watch?v=w2k-J_Bhme4) I’ve made in the past and I’m going to turn these into “flipbook textures” (video game GIFs) to be used in conjunction with particles to make a really believable torch. I’ll post more towards the end of next week.

 

 

Wish me luck fellas, I’m really happy with how everything is coming together and I can’t wait to show everyone the scene when it’s complete.

[R&D] Grey Packing

Grey Packing Method

Whaa, hugh? What the heck is it? Well grey packing refers to creating textures in photoshop that in and of themselves are not particularly useful, but each channel of colour, and possibly even an extra alpha channel contain useful grey-scale textures.

Think of the complete texture as a container or vehicle for getting as many materials as you can into your game or application as efficiently as possible.

A lot of materials use grey-scale textures for values. If you create a 32 bit image (targa for UDK) you can stack 4 grey-scale images into your file and that’s decreasing your memory usage by 300%! and using one quarter of the draw calls for those materials.

Grey Packing Method (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/04/graypacking2 NULL.jpg)

To do this just go into your channel tab (next to layer) in Photoshop and you’ll see your four channels and their composite channel at the top. This is where you are going to copy and paste your grey images into. If you want another channel just create one with the new layer button. By default this channel is called “Alpha”.

Don’t forget to export as 32bit otherwise you’ll lose that extra alpha channel.

Cheers

[Game] UDK Windy Grass

Windy Grassy Plain

Windy Grassy Plain (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/03/windyplain NULL.jpg)Making grass move in the UDK isn’t overly complex but it does requite a decent handle on Maya and the Unreal Development Kit’s material editor. The concept at it’s core is to use the Material Property “world offset position” to make your grass wave. Control of the grass is split between three different systems: the “wind directional actor”, the material network we create for the grass, and our grass mesh’s vertex colours.

Maya

Our verdant journey starts here. I’m not going to go over modeling a grass plane, but if you have any trouble you can just take a look at the one I made here to see the relative complexity of the mesh.

Maya Grass Plain Mesh (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/03/grassmesh NULL.jpg)

After you have created your planar mesh you’re going to need to jump into painting “vertex colours”. Vertex colours are literally just RGB values you’re painting on your mesh’s vertices through Maya’s vertex painting system. Before you go all nuts painting up your mesh you’re going to have to change a few of Maya’s options to ensure that vertex colours will appear properly in your viewport. The steps for enabling vertex painting can be found on Autodesk’s help site here (http://download NULL.autodesk NULL.com/us/maya/2010help/index NULL.html?url=Coloring_polygons_Make_vertex_colors_visible NULL.htm,topicNumber=d0e213327). After you get vertex colours working you can move on to the next step which is painting (http://download NULL.autodesk NULL.com/us/maya/2010help/index NULL.html?url=Coloring_polygons_Assign_colors_to_polygon_vertices_by_painting NULL.htm,topicNumber=d0e213575) a red gradient from the bottom of your mesh to the top. Lower red values will cause the vertex to be less affected by wind. Below I’ve placed a couple more grass planes along with the original.

 Vertex Painted Grass Meshes (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/03/vertexColors NULL.jpg)

After your painting is complete you are ready to export your mesh for the UDK. You don’t have to do anything special on export in Maya to carry your vertex colours into the UDK just export your grass plain as a standard FBX.

Unreal Development Kit

Our mesh is done and it has all the properties it needs to accept directions from the “world offset position” in the material node we’re going to create. The first thing to do is start a new map and import your materials and models for your grass. After everything is imported create a new material.

In this material up with whatever diffuse, normal, and specular etc. that you need and then clear a fair amount of space in your material editor because node network we are going to create for wind is going to take up a bit of space.

Before we create the windy section of the material I wanted to break down the core of the wind network. I mentioned earlier we are using the “world offset position” attribute in our material  to animate the grass. As you can imagine, feeding the world offset position a constant value would yield no animation. We need some way to animate the actual value we are sending to the world offset position.

To accomplish this we are going to use two nodes. The “Sine” node and the “Time” node. The time node will give us the changing value we need. Plugged into the sine node we can create a continually oscillating value between 0 and 1. This is the same principal I used to animate optical flares in my previous post (http://www NULL.terrymatthes NULL.com/unreal-2/materials/sprite-channel-controller/).

Next we need a way of incorporating the red values of our vertices to control the wind falloff on our grass mesh.

The wind instructions to affect the grass are going to come from a “Wind Direction” actor. Your going to need to put on in your scene and they are located in the classes hierarchy tab. When you bring up it’s properties you’ll see that there are a few different controls that we can use to affect the wind. Be sure to play around with these so you can get a good idea of how you’ve weighted your vertices after the network is complete. Beyond the diffue map, there isn’t anything in the network that you can’t grab directly from the right click menu in the material editor. Go ahead an copy the network below, then assign it to your mesh.UDK Windy Grass Material Network (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/03/windyGrassNetwork NULL.jpg)

After updating your material network you should see the grass now waving at a constant rate in the wind. After this it’s up to you to discover some more interesting ways to make your grass move. Also take a minute or two and think about all the implications of this technique. There are a lot of things in video games you could apply this type of procedural animation to.

Conclusion

If you have more than one mesh that will use wind you should really look at setting up your material so it can be used for instancing. This material network can get large and loading it in for each plant is going to cause you some performance loss.

I hope this gave you a good understanding of wind principles and showed you a new way to spice up your Unreal Development Kit environments.

If you’re stuck on a particular step or want to know more about creating material instances ask away and I’ll do by best to help :)

[Game] A Grave Affair

Grave Texture Mapped UV Islands

I’m creating a cemetery scene so you can imagine that I’m going to need some tombstones. I have sculpted another since my last WIP and thought I would share it. As I was breaking down the scene I was trying to think of ways I could maximize my work time. I wanted to make sure I wasn’t sculpting more assets than I needed to make the scene look full. From that point on I decided that all the tombstones were going to have a different design on each side. This would let me cut the number of tombstones that needed to be created in half.

Just like the last mesh I started in ZBrush my sculpting the general shape. With hard objects like this I like to start by smashing together basic geometric shapes with Dynamesh. After I have the basic shape it’s time to save a copy and start sculpting wear and tear. I was able to use the noise profile that I saved from my last sculpt to break up the noise on this one as well. Saving out the noise and other commonly used elements will also help me to keep things artistically cohesive throughout the production of the scene.

(http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/01/gravesculptL NULL.jpg)

Dynamesh is your best friend in ZBrush while creating game assets! Maybe it’s because I started working with 3D before ZBrush was around, but I just love the ability to kit bash with ZBrush while staying largely ignorant of topology. Gone are the days of matching up verts and integrating meshes before they can be treated as a single surface. With  the tombstone here I was able to take a human skull I had modeled for a previous project and insert it into the top of the grave. The book sculpted the same way, but I created the book within ZBrush as a separate subtool. If you’ve never merged dynamesh objects before it’s actually quite simple. Start by making sure both objects are dynameshes themselves and then use subtool master to merge all visible subtools. They aren’t quite the same yet though. They should be one sub tool, but you’re going to have to ctrl drag and empty marquee selection to have ZBrush retopologize your dynamesh subtool once more. Bam! It should be all one surface now. If the objects look to crude then you need to turn up your dynamesh resolution before dragging to retopologize.

Like most of the assets in the scene I’m trying to keep the poly count around 1K. And speaking of polygons I wanted to address a common misconception about them. A lot of people fret about poly count in-game design. Whether its triangles or quads less is not always better. We’ve gotten to the point on mid level hardware where poly count isn’t the limiting factor it used to be. “I spent a solid few months of optimizing polys, lightmap UV channels, collision meshs for everything in UT and the act of stripping 2million polys out of a level generally improved the FPS by 2 or 3 frames.” – Kevin Johnstone (http://www NULL.polycount NULL.com/forum/showthread NULL.php?t=50588). Texture maps represent modern geometry more than polygons do at levels of high frequency detail. We are using lots of texture memory to affect and displace geometry. Stripping down the polygons to an absolute minimum is going to cripple the ability of a normal/displacement map to affect the perceived detail of your asset. If you need a few more verts to make an edge look better just do it!

If textures are the new limiting factor then what you should be aware of is “draw calls“. Your video card can only do so many of these per rendered frame and keeping this low is going to have a big impact on performance. A draw call is done for each material on a mesh every frame.  One mesh doesn’t equal one draw call. A lot of engines will actually limit the number of materials you can put on a single mesh.  The 600 series Nvidia cards can do roughly 600 draw calls per frame and that’s pretty good. When you think about how many textures that is you might that’s a lot, but each of those calls is slowing down performance.  One last thing worth mentioning is that even instanced meshes with the exact same materials will require separate draw calls. This means that if you have a metropolitan city full of instanced buildings each individual building is adding another draw call. If you have more than one material on heavily instanced assets you can see how this would start to adversely affect your frame rates. Just try and keep the number of materials on each mesh as low as possible :)

Just like our last tombstone mesh I broke out the damaged bits and strong surface changes into their own “UV Islands”. These islands are keeping xNormal from casting seams along the edges of those areas. The key is to break out UVs where the geometry sharply differs from the continuity of the surface around it. In the following diagram I’ve outlined the UV islands in blue on both the mesh and UV editor. You can see how these areas differ from the geometry surrounding them. Doing this with your light map UVs as well as your texture UVs will help shadow fall across your object with less error.

(http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/01/GraveUVL NULL.png)

During the initial baking of normals I produced two errors outlined in below. These particular errors were not from UV mapping, but from floating vertices that weren’t connected with an edge. Retopologizing in ZBrush is awesome, but now without its downside. I find the vertices you lay down quite hard to see and the cursor snapping can give you errors if you’re backed to far out by not connecting your edges. On closer inspection of the erroneous areas I was able to find the floating geometry and correct it. Now you can see how this got rid of those errors on the updated normal map texture. Always inspect your errors thoroughly. Chances are your error is coming from errant geometry at the site or flipped normals. If your normal map comes out looking like details are being projected on from the front to the back or vise versa you’re having scale issues. Your models scale is too small for xNormal to properly bake the texture map.  The UDK’s native scale in Maya is too small so you’re going to have to scale up your geometry 20-50 times its actual size to get proper normal map bakes.

Normal Map Errors on UVs (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2013/01/UVerrorL NULL.jpg)

The job I’m working has the potential for me to work on some “magic” type effects so I am going to post a couple R&D clips this weekend. These will be geared more towards film although I will try to explain the fundamentals well enough so that you may apply it to Cascade in the UDK. If your still  feeling confused about baking normals? Check out Tombstone WIP2 (http://www NULL.terrymatthes NULL.com/unreal-2/materials/tombstone-wip-2/) to learn more about game asset creation with the UDK in mind. Until then Cheers,

Terry

[Game] Game Trees WIP

Evegreen Trees Work In Progress

Evegreen Trees Work In Progress (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/12/trees1 NULL.jpg)I’ve been watching people model trees all at work over the past few days and it’s driving me crazy. I must make a tree! So in keeping with my current project I’m going to sculpt an evergreen tree in the with snow on it for import into the Unreal Development Kit. The first thing I wanted to get done was the base mesh. I with the Speed Tree program that comes with the UDK. You can’t export from here but it does create the geometry in a pretty efficient way. After tooling around with settings for about an hour I was able to get a look I liked. Next I needed to recreate the same style of geometry in Maya. To get things started I began with the trunk. The trunk is pretty straight forward. It’s just a cylinder extruded along an ever-so crooked EP Curve. The next thing to do was create the branches. To save time you can model one branch and use Duplicate Special(Edit > Duplicate Special) to space a bunch of them along the +Y axis. This will not work properly unless your branch is pointing outwards from the center of your trunk with its pivot point also at that center of the trunk.

Use the Distance Tool (Create > Measurement Tool > Distance Tool) to get the  height of your tree. Divide your height by how many branches you want. Add that value to the Translate Y Offset. And don’t forget to also offset the Y rotation so the branches don’t space out in a straight row. Record (write down) your offset values as you’ll be using the same values to duplicate and space your “Fronds” or leaf cards. Your cards can be as simple or as complex as you want. Since I am just using this mesh as a guide in Zbrush I will keep my cards simple. I used a Bend Deformer ([Animation]Create Deformer > Non Linear > Bend) to curve a plane with 5 divisions in the height and only one in depth. I then tapered the sheet by selecting all the vertices at the end and scaling them together. You could stop modeling here and start texturing, but I want the poly count a lot lower. A Single tree as it stands is around 5000 vertices and unless you’re in a cinematic situation where you can control the poly count that’s just way to high for a tree. I think by taking this into Zbrush we can achieve a similar look at no more than 25% of the vertices. As added punishment I’m also going to push myself to use poly paint on this sculpt X_X

Terry

[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 :)