« Posts tagged Maya

[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.

[R&D] V-Ray WIP

V-Ray Lamp Scene Work In Progress

Yeah that’s right… I’ve decided to finally check out VRay and I have to say that so far it’s been a lot of fun to work with. I haven’t gone through all the settings yet, but I’m trying to get through working on a piece while learning the suite. I’ve decided to render a bedside lamp and glass full of flowers. Most of the work so far has gone into the lamp shade and getting everything proportioned. One thing I will say is that linear workflow (gamma corrected workflow) is a lot easier in  VRay. Gone are the days of needing a gamma adjustment node on every single file texture you import.

V-Ray Lamp Scene Work In Progress (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/10/lampTest3 NULL.jpg)While rendering I noticed that meshes through Maya’s smoothed approximation method (2 or 3 on your keyboard) weren’t showing up smoothed in the actual render. I fixed this by checking the radio box “Render viewport subdivision”  in the VRay global options. You should know that when you check this your render times might spike up. This is because by default VRay subdivides they smoothed preview many more times than you would actually need. You can fix this by going back into the “Render Globals” of VRay’s options and changing the displacement/subdivision group option max subdivision from 256 to down to something around 8. To light this scene I have a “rectangle light” for fill and a “spherical light” placed in the lamp shade. When I’ve progressed some more I’ll post more about the lamp shade material as well as the actual light values. Until then, cheers and good luck with all your renders :)

 

Late Night With Mental Ray

(http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/09/TMNIGHT2 NULL.jpg)I have wanted to try a late night render for some time and I got an excuse to do so recently. A lot of the time went into getting the final gather and global illumination to behave correctly.  There are two area lights outside the windows lighting the scene along with the two point lights; one in each lamp. The lamp’s point lights have their colour temperature controlled by a mib blackbody node set to around. The floor panel is a flat plane using a 2D bump (no normals) to pop out the individual floor planks. Underneath it, a wood texture to support this.

The ottoman in the middle of the room is procedurally textured using the 2D Texture Cloth node to create a fine bump across the surface as well as to define the diffuse colour of the fabric. Some unevenness is applied to the 2D Placement Node of the ottoman’s material to simulate uneven stretching of the fabric. This effect is applied subtly though. A stronger effect is the light shining through the surface of the lamp shade. This was achieved through using Maya’s default translucent property on a simple lambert shader. A yellowish colour was then picked for the diffuse and I turned down the diffuse value of the material to around “0.4”. The area light to the right of the scene is colored with a dim blue light to simulate the way your eyes desaturate colours in low light conditions. A blue tint was also added afterwards to the whole image in Photoshop. To achieve the final gather I wanted I used three point lights that didn’t cast diffuse or specular light. These point lights simply cast photons (around 300k each) to paint the rooms with final gather points. One point light was placed in the middle of each room. Before rendering I made sure to save out both my final gather and global illuminations passes. The cat on the couch was done using Maya’s native fur system. If I were to change anything I think I would paint a custom fur length map for the cat so the hair wasn’t the same length all over.

In Photoshop I applied an ambient occlusion render over the entire image, set it’s opacity to around 30% and changed  it’s layer’s draw type to multiply. I rendered this image out and an EXR and it gave me the ability to really pull the values of the scene in a wide range due to the raw nature of an EXR. To select the individual objects in the scene I rendered out a mask pass to make selecting the individual elements of the scene much easier. The mask pass was made as a separate render layer. I made 5 different Maya surface shaders and labeled them: red, green, blue, black, and white. I then applied these shaders to everything in the scene and made sure that no to objects with the same colour overlapped.

If anyone has any questions feel free to comment below or to contact me about the questions. Have a nice day :)

[R&D] Zbrush to Maya: Tiling Meshes

Tiling Rock Mesh

I’ve wanted to try this tutorial for a while and now that I have I thought I would share it with you guys. Creating seamless textures (http://www NULL.terrymatthes NULL.com/unreal-2/materials/seamless-textures-in-photoshop/http://) is one thing, but tiling mesh surfaces isn’t always as easy as it may seem. Osart has posted a tutorial (http://osart3d NULL.wordpress NULL.com/home-page/tutorial-creating-perfectly-tiling-meshes-in-zbrush-for-use-in-videogame-environments/) on his blog (http://osart3d NULL.wordpress NULL.com/) that walks you through the process with a couple of different paths you can take when it comes to developing your low poly version of the mesh. The process involves using Zbrush to create a tiling displacement map. The only part of the tutorial I got hung up on was the UV section. At one point he asks you to “normalize” a group of UVs. Normalizing the UVs is done by selecting the particular UV shell you want and then going to Edit UVs > Normalize under the Polygon menu tab. This scales the shell you have selected so that it takes up the entire 0-1 texture coordinate space.

The tutorial is full of really really great stuff. You should go RIGHT NOW and check it out. Below is a tiling rock mesh I made using Osart’s Tutorial (http://osart3d NULL.wordpress NULL.com/home-page/tutorial-creating-perfectly-tiling-meshes-in-zbrush-for-use-in-videogame-environments/). To make the normal and ambient occlusion maps I used xNormal. The diffuse map was painted in Photoshop. If you have any questions I would try and get a hold of Osart, or I could help you as well.

The next step I’m going to take is to bring this mesh into the UDK and create a material for it. I’ll append this post with those results over the next few days.

Tiling Rock Mesh (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/04/Rocks_togeather2 NULL.jpg)Weekend Update!

I’ve imported the mesh as an FBX into UDK and softened all the verts. Rocks have a funny specular pattern and it wasn’t something I could create within the UDK so I created a separate specular map. The following material uses a normal, diffuse, and specular map. Instead of explaining the whole map I thought I would just post it along with a shot of the rock mesh titled several times in the UDK.

Rocks Material (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/04/rocks_material NULL.jpg)Rocks UDK (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2012/04/rocks_UDK NULL.jpg)

Explorer Zbrush Progress

Explorer Face

Explorer Face (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2011/12/face NULL.jpg)My last post was of the concept I had painted up for my random attribute character. For those of you who missed it, I was given the task of creating an elderly prehistoric female explorer with a corrupt disposition. I was originally going to make her a fat character, but as I started to flesh things out it just didn’t make sense. If she’s walking around all the time she is probably pretty thin. The anatomy reference I’m using for the sculpt is of a much younger woman, there’s not a huge amount of naked t-posed grandmas on Google images… thank god.

Explorer Feet (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2011/12/feet NULL.jpg)This sculpt was actually started in Maya. I built a base mesh to nail the basic shapes and then just exported as an OBJ file for ZBrush.At this stage in the sculpt I’m trying to work in the basic muscle forms. A lot of her body is going to be covered up by furs and leather so I’m not going to push the detail too far. I just want enough so that when I create her clothes they will rest properly over her body. I’ve barley touched the third sub division here and I’ve only been using the “move” brush. I find that at these lower subdivisions there isn’t really a need to “sculpt” detail in. At this stage is still a process of picking and pulling vertices around. This project is due on the 9th (next Friday), so I’ll be moving along on it quite quickly now. More posts to come on Sunday :)
Explorer Hand (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2011/12/hands NULL.jpg)Explorer Torso (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2011/12/upperFront NULL.jpg)Explorer Back View (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2011/12/back NULL.jpg)

Breakfast Still Life – Final

Final Post Edited Render

I finished the still life from my last post and then went ahead and did some post work in Fusion. All the major elements in the scene were rendered out on separate render layers in Maya. At first render layers seemed like a lot of work, but after setting them up the benefits are awesome. As always if you have any questions about the work flow feel free to leave a comment or email me. For those hoping to see pastries in the foreground… I’m sorry. I didn’t have enough time to give those croissants the care they needed. GG pastries in Mental Ray. GG.Below are my rough draft and raw render along with the final image. Next time I do a light setup I’m going to try and use the light fog in Maya instead of relying on Fusion. This is the first time I’ve ever used film grain in post and I think it may be a little heavy handed, but in my defense shooting in that low light would give you some strong grain.

Glass Render from Mental Ray (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2011/10/PrePostStillGlass NULL.jpg)

Glass render untouched from Mental Ray

Early Test Render (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2011/10/glassesRough NULL.jpg)

Rough Render for 3D Still

Final Post Edited Render (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2011/10/TerryMatthe_GlassFinal NULL.jpg)

Breakfast Still Life – Rough

Rough Render for 3D Still Life involving glass

This image was created for my rendering class in college. We were given the objects and asked to properly light and render them. The style of render was left up to us. The challenge with this assignment is to get the glass looking right. Most of the objects needed to be unwrapped so that’s the first thing I did. Unlike my last apartment render (http://www NULL.terrymatthes NULL.com/general/news/apartment-final-render-thoughts/) this piece can contain no global illumination or final gather. Any bounced light is simulated with secondary light sources. I had to remodel the glasses as their were lots of strange triangles buggering up the reflections. The pitcher and the glasses have separate faces for the inside and outside of the object. Under the glass mesh render properties the objects are set to one sided.

One thing to keep in mind while rendering glass in Maya and Mental Ray is black surfaces. If you are rendering a translucent or semi translucent object and you are getting black artifacts or faces on your render then you need to increase your reflection rays in the object’s material properties. Reflections and refractions take a long time to render due to the amount of ray casting going on. Too many rays and you can drastically increase your render time. Too few and you’ll get black faces where the rays didn’t penetrate the objec. Reflections are a little tougher as you actually have to know what should be reflected. If you can’t see them at all it’s a littler tougher to guess which ones are missing. If you’re casting enough rays within each material and you’re still getting black faces then chances are you have not set your ray tracing limits high enough in the scene’s render settings. In case you didn’t know there is a master ray trace control found under the “Quality” tab in the render settings window.

The colours of the piece are still pretty loose. I was playing around with Adobe Kuler (http://kuler NULL.adobe NULL.com/) and though it was a pretty fun tool to choose a colour pallet. My biggest problem at this point is the strength of the lighting in relation to the floor reflections. I’d like to keep the light warmer (3500k), but I’d also like to get some less harsh reflections in the floor. Most of what’s left to do involved tweaking materials and finalizing a colour pallet. I might take a swing at Maya fur again, but we’ll see if time allows it. I’ve been working part time in while going to school and it’s really been cutting into the amount of time I have to get homework (let alone personal projects) done. I would cut my hours down, but at my work the minimum for part time is 20. I did find a wonderful way to save time though… I set my computer up so I can login remotely. This makes it a lot easier to setup and look at renders. I suppose I could just batch render multiple files with a script, but I wouldn’t be able to change anything after I leave home. I don’t know about you guys, but I frequently get hit by ideas while out and about and this lets me incorporate those changes into the renders.

Rough Render for 3D Still Life involving glass (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2011/10/glassesRough NULL.jpg)