Monday, April 27, 2015

Prism Level Update

Greetings and salutations! Today I will share a little bit of my prototype level for Prism. Here is what one area looks like in the Unreal Engine 4 editor so far:

Prism prototype level in progress.
As you can see, I finally have grass and trees and the entire map is now actually laid out. I need to cover the entire map with the grass and trees but so far it is looking good.

One of the problem areas I was having with the grass was making it look like grass. After many attempts, I finally just painted it myself by using a Photoshop filter and then masking out an initial shape for a blade of grass. Then I copied that shape and used the warp tool to create different blades and pasted them into a coherent texture I could use on a single plane. I then built up several of those planes in Maya and then imported it into Unreal. As you can see, the result is quite marvelous. However, the grass is processor heavy and it slows the editor down on more conservative systems (ones that aren't mine anyway).

Speaking of Maya, Autodesk just recently released Maya 2016. After playing around with it for quite  a bit, I must say that I am happy with the results. It is far superior over 2014 and 2015. 2014 was my go to so I think it is a big deal to find a version of Maya that is better than 2014. One of the things that I like the most is the new interface. Take a look:

The new Autodesk Maya 2016 interface.
The interface is very clean now with much more readable icons. The menus have been cleaned up from the mess that was 2015 and there are many new useful tools such as an entire sculpting shelf now. Even the UV editor has new tools and they helped me clean up some stretch issues I was having on Aphrael's face. I always had problems getting the face to have minimum stretching and now the new tools in the UV editor fixed it quite easily. I am very happy.

I am not for sure what I will post about next. Stay tuned though and sorry for the lack of posts last week.

Saturday, April 25, 2015

No Content This Week.

Greetings and salutations. I apologize for no posts during this period but I don't have new content to show just yet. Don't worry, there will be stuff for me to talk about next week. Expect a new post on this upcoming Monday. Thanks and sorry.

Friday, April 17, 2015

I'm on LinkedIn!

Greetings and salutations! I apologize, but I don't have much to talk about today. However, I did want to inform everyone that I am finally on LinkedIn! For those who don't know, LinkedIn is a professional networking site. What I mean is that it is not like Facebook where anything goes, but instead it is for professional opportunities and contacts in the business world. For anyone serious about advancing their career or need a way to start networking in a more convenient manner, check out LinkedIn. Also, if you are curious, my LinkedIn page can be found here. Have fun!

Saturday, April 11, 2015

WIP: Aphrael UV Mapping

Greetings and salutations! Today I will show off the UV maps that I just completed for Aphrael. UV mapping is one of the things I enjoy doing when building a character. In fact, I find it quite easy. For Aphrael, it probably took me only 8-9 hours UV mapping her. UV mapping can get complex, but as long as you keep track of what you are doing, you'll be fine.

Anyway so let me show the texture distribution first on the model and then I will explain what I did.

UV density in the front view.

UV density in the back view.
First I created a texture that used a multicolored tiled texture for its appearance. I assigned that to the unmapped model and then used that as a guide to eliminate stretching as much as possible. Notice how there is almost no stretching of the tiles? One of the goals of UV mapping is to keep texture stretching to a minimum. The reason for this is because it will look terrible on the model. Can you imagine seeing the texture on a shirt looking all stretched out? Yeah, that would look weird.

Another thing that I did was that I cut my seams in places where seams would naturally occur in the real world such as the seams on Aphrael's clothing or on the back of the hose she is wearing. Keeping seams at a minimal is ideal as well but when you have a complex object such as this to map out, it makes more sense to place seams where they would be at in the real world. This ups the seam count a bit but at the same time keeps the texture mapping much more manageable.

At the same time, sometimes it is better to keep specific surfaces as a continuous surface rather than cut a seam. I actually did a combination of both so as to help minimize the effect it would have on the model in Unreal Engine 4 and for consistency. So you can see how I actually set up the maps, I will show the four UV sets below.

Skin UV set.

Upper body UV set.

Lower body UV set.

Ruffles UV set.
As you can tell, I have continuous surfaces in some areas (like the skin) and full cuts in others. The full cuts are usually on the clothing where seams occur in real life. In addition, note that I have four different UV sets which normally is not ideal for game engines. The reason I have four sets is because this will allow me to maximize the texture quality in Unreal Engine 4 without compromising memory. Each set will have its own RGB mask to drive where tiling textures will occur. The texture details will then be provided by those tiled textures. Small 256x256 square texture files are a lot easier on memory than a full 2048x2048 map. The only 2048 maps that I will be using is for the skin UV set and that is because skin is unique and I need to ensure it actually looks like skin. Tiling textures do not work very well for this purpose since skin is very complex and requires time and dedication to get right.

So that is a little bit of insight into my texturing process. The next time I post about Aphrael, I will have started the actual texturing process so stay tuned!

Wednesday, April 8, 2015

WIP: Aphrael Lo-Res Model 5

Greetings and salutations! The main part of the lo-res mesh for Aphrael is complete. Secondary meshes like the teeth, hair, and accessories I will focus on after I UV map the main mesh. However, before I start UV mapping, I wanted to do a little review and show how the mesh looks. First is the whole body:

Front view.

Side view.

Back view.

As you can see, the ruffles are done. I decided to make the ruffles a floating mesh instead of simply extruding out from an edge loop. The reason for this is because it will make it easier to paint skin weights for and I don't want any t-manifold errors. What I mean by this is having a plane of faces extruded out from a single edge loop that lies along a surface, kind of like a t-shape. That would be just bad geometry.

Speaking of geometry, let's look at it in more detail.

Head geometry.
Again, I am quite happy with the results here for the head. The edge loops are clearly defined and quite clean. Placing a facial rig should not be a problem here.

The hand and sleeve ruffles.
Would you believe that the hand and ruffles are actually floating and not physically connected to the main mesh? Again, I did this to keep rigging simplified and to prevent T-manifold errors. The hand itself did not take long to do and I am happy with the results. The ruffles though took forever but that's probably because I built the geometry and shaped each vertex by hand to ensure I got it to look the way I wanted it to look.

Skirt geometry.
The same deal with the skirt. It is an actual floating geometry and not physically connected to the main body. The skirt went by a little faster because I now knew the edge flow I needed to create the ruffles and all I had to do was create one set and duplicate the others. I then fine tuned their shape around Aphrael's hips. I had to pay close attention to this because of how big her buttocks are. I didn't want any geometry intersecting except at right below the belt so it would give the illusion that it is part of the mesh.

Legs geometry.
My personal favorite, I am quite pleased with how beautiful Aphrael's legs came out. This is exactly what I was looking for. They will look even better once I bake the tangent space onto her legs from the high-res model. The shoes were probably the one area that was giving me the most problems. I ended up with a single triangle on each shoe. However, since the mesh will be triangulated anyway, it will not prove to be too much of a problem in the near future.

Next is UV mapping. UV mapping doesn't usually take me that long; however, this is probably the most complex mesh I have had to map yet so we will see what happens. UV mapping really is an art unto itself and you have to practice, practice, practice to finally get comfortable with it. I'll get more into that next time I post about Aphrael so stay tuned!

Saturday, April 4, 2015

Prototype Prism Level WIP

Greetings and salutations! Today I want to show where I have progressed in Unreal Engine 4 in regards to Prism. It has been quite difficult, but very enjoyable to say the least. I have been working hours at a time in Unreal and forgetting to eat I've been having so much fun. I got to watch that, but it is so compelling to try to fix and experiment and tinker inside the engine, seeing what works and what doesn't. Anyway, last time I was talking about the level I had gotten the level tiles sculpted. Now they are UV mapped and have the appropriate textures ready for them. I also made a tree which I will show below.

My tree in Unreal Engine 4.
The tree itself took over four hours to build, including textures and UVs. It wasn't actually that hard, just long and tedious as I built the texture maps and the branch groups. Overall, the tree consists of 20,000 triangles which is actually probably too much. However, it is the best looking tree I have ever made and I am actually quite proud of it. Usually I am terrible at doing foliage but I am getting better. This tree is proof of that.

The textures on the ground mesh was a totally different story. They were frustrating me to no end. I could not get them to look sharp, clear and good no matter what I did. I tried UV mapping the ground plane and then painting the textures directly onto the mesh in Mudbox. However, that made the textures too large and blurry. So I tried baking procedurals in Maya but that came out even worse. Finally, I got this result:

Texture detail of the ground.
So how did I pull this off? By tiling! I discovered how to tile textures in Unreal by just using three nodes in the material editor. You see, the material editor is just like the Blueprints system and the Hypershade networks in Maya so setting it up was actually quite easy once I discovered how to do this. Tutorials helped of course, but I had to figure out how to actually get all of the information I learned together into a single shader network for this to work. Here is part of the network:

Shader network for the ground textures.
The two nodes TexCoord and Tiling determine how much the texture is tiled. These are multiplied together and plugged into the UV inputs of the texture files. The red and green texture to the left is an RGB mask. It drives where the textures show up on the mesh. Red is for soil and green is for grass. I then put everything together and plug them into the output mode of the material and voila! Instant success. Using one material to drive two textures saves on memory and render times. Unreal Engine 4 can have multiple layered textures, but according to the documentation, it can be quite expensive to have several materials layered in the same network. Thus why not use one material and drive the textures with an RGB mask? Quite ingenious if you ask me. I have a similar set up for the normal maps as well and I think it has come out very nice.

The last thing I am still working on is how to use the lighting engine in Unreal. Unreal uses something called Lightmass which handles its precomputed lighting. This was quite difficult to understand and I am still struggling with the best optimized use for it. When I first baked the light maps in this sample environment, I discovered that the normal maps on the tree were looking very odd, not at all like how it looked in Maya. After doing some research and re-baking the normal maps in xNormal, I discovered it wasn't the normal maps at all, it was Lightmass! It was baking my light maps at too low a resolution. So I upped the resolution and tweaked a few other things. The results speak for themselves:

Using Lightmass to bake the shadows and textures into the environment.
The textures you see on the tree is totally driven by a normal map. However, it only looks that good because I increased the resolution of the light map on the mesh for the tree. The same with the tree's shadow on the ground. It didn't look right until I did the same thing for the ground mesh as well. Then I added a small amount of GI to bring out the color in the shadows instead of having pitch black.

I'm really excited about my progress in Unreal Engine 4 so far. Just learning how the materials and lighting work together and individually will especially help me when I get Aphrael herself into the engine. I also can't wait to see what my finished prototype level will look like. It is going to be great!

Friday, April 3, 2015

WIP: Aphrael Lo-Res Model 4

Greetings and salutations! Today I wanted to show off my progress on Aphrael. Since I've had time this week to work on her, I have made some significant progress on her. Take a look below:

Front View.

Side View.

Back View.

I believe I am at or around 5,700 polygons at this point before triangulation. Many of the remaining amount of polygons will be used for the next steps which is the ruffles for her skirt and sleeves, her hair, and Aphrael's accessories like her sword and pistol.

This is going to sound weird but one of the most difficult areas that I always have doing is a woman's crotch. The shape and how the legs connect to the pelvis along with the shape of the buttocks always throw me into a loop. I didn't have as much issues here because I have been practicing. How have I been practicing? By modeling panties! I said I was going to sound weird. I'm not a pervert however. I actually studied how panties were made along with the various types and patterns that are used. I then attempted to model them in Maya. After a few attempts, I now understand the edge flow needed to create the correct shape for the crotch and how to connect the legs and buttocks to that shape. I believe I have finally succeeded here even though the buttocks are kind of high density. That's okay though because it will make it easier to get the correct shape of Aphrael bending her legs easier when I start rigging.

Overall, I am happy with how Aphrael is coming along. I am particularly pleased with how her legs came out. It was tough getting the shape of her two jackets correct but they are there now and I am happy. I hope to finally do the ruffles and her hair next before I start UV mapping. Accessories I will do later because those will need high-poly versions as well. I will most likely use subdivision modeling for the accessories.

Next time I post, I will talk about my progress with Unreal Engine 4 and how I am using it for Prism so stay tuned!