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!

Sunday, March 29, 2015

Sorry!!!

Greetings and salutations! Normally I would not post on Sunday, but I must apologize for the lack of any posts during this last week. It was finals week for this quarter and I meant to post, but got too swamped by all the work that needed to get done. Do not worry however because finals are finally over and I can start blogging again as normal. Next time I'll try to post during finals week. So sorry and I thank everyone for their patience.

Saturday, March 21, 2015

Autodesk CG Student Awards

Greetings and salutations! I just learned of this yesterday: Autodesk is sponsoring an international competition called the CG Student Awards 2015. They are accepting work based in six categories. These are Student of the Year, Film of the Year, Game of the Year, People's Choice, Bootcamp Internship, and School of the Year. The main categories of art being judged in these is VFX/Animation, Film, and Game Design. The prizes are awesome but there is one prize that only winners get: an internship at a production studio of their choice available from the list of studios on the CG Student Awards website.

That is a huge deal. That is my goal is to get hired by a studio. This would help me tremendously if I can win. Thus I am entering Prism into the competition. The only problem is that the deadline is May 13th, 2015. That is less than two months away. Before I had six months to get Prism working and in a polished condition for graduation. Now I only have less than two months.

I hate rushing. Whenever I rush, I get the work done but the quality suffers as a result. However, if I can learn to get my work done faster and use good time management, I think I can get it done. I have no choice if I am going to make it in the industry. The biggest thing I think studios are probably looking for is good quality combined with speed. If a person can pump out excellent work consistently and quickly, than they could probably be a highly valued asset to a production team.

So that is the goal. Prism will be my introduction piece into the game industry via the CG Student Awards. It's going to be tough, but I believe I can do it. Making the levels modular as I explained Thursday will help tremendously with production time. It is the individual assets that make up the game that will take the longest to build. So without wasting anymore time, off I go to get Prism done!

Oh, one more thing: if you want more information on the Autodesk CG Student Awards 2015, you can find more information here.

Thursday, March 19, 2015

Level Tiles

Greetings and salutations. I apologize for the late post during the week. I didn't have anything to share and I still don't. Well, I can actually talk about how I am approaching level design in Prism.

For the levels in Prism, I am taking a modular approach. What I mean is that each level will be made up of specific rooms that function as the halls and intersections of a particular level. Within those tiles, I will have specific objects randomly spawn in preset locations. These objects could be enemies or they could be treasure. The reason for making the levels modular is because it saves time in the long run without compromising quality. The original Phantasy Star Online does it; Diablo, the game it's based off of, does it; and even Baldur's Gate: Dark Alliance does it. All three of those games pull off modular level design quite successfully so I will take the same approach, just hopefully with better graphics.

Now the first level I am working on is a forest level. Not a creepy forest level but a welcoming one, full daylight but under the shadows of ancient trees so the player has a chance to get familiar with the game in a mysterious, but not creepy, environment. Since it is the first level, I don't want many obstacles except for maybe simple enemies. I have already sculpted out the tiles which you can see below:

Tiles for Prism's forest level.
Each tile is fifty meters square, so they are good size. Unfortunately, because they are so large, they also have high polygon counts, each with 100,000 polygons. That is way too many polygons so I need to reduce them by quite a bit. I also need to create basic meshes for the flora and fauna. I have an idea for the lighting which I am thinking will be a yellow tone due to particles in the air like pollen and other stuff. Hence volumetric lighting or the illusion of it may be required. I will also need to see if Unreal Engine 4 supports cucoloris' so I can create the shadows of the trees on the ground. If not I can always bake them into the texture. Actually, it might be a better idea to just bake the shadows to save on render time for the game. Overall, I want the forest to seem old even though there is some technology within.

So this is what I have been working on all week. I will post more about the level in future posts, so stay tuned!

Saturday, March 14, 2015

Announcing... Prism!

Greetings and salutations! Today, I am revealing the name of my senior project that I will be working on for the remaining time I will be at The Art Institute... Prism!



An ancient encoding technology called Prism has left many treasures in deep space up for grabs. Those called Prism Hunters hunt for these precious artifacts in hopes of unlocking their dreams. Can you guide your heroine or hero to victory?

Prism will be a third person action-rpg designed for single or multiplayer offline or online game play throughout a variety of environments. Players will control one of four heroes and hunt down Prisms to help make their character grow stronger. At the same time, a common foe also hunts for the Prisms and it is up to the player to collect them before they do. It will be aimed for release on Steam eventually if I can get commercial licenses for some of the programs I use (very expensive unfortunately).

The idea for this game came about for several reasons. If you have read my previous posts, you may be aware of my ranting about Diablo III, Destiny and Phantasy Star Online 2. In addition, I know there is a large market for Phantasy Star Online 2 here in the west that Sega refuses to acknowledge (myself included in that market) so making this game is kind of a direct response to the failure that is Sega and somewhat Destiny as well. From what I heard, Destiny was the most returned game of 2014 (even though several million players still play it so it was still a commercial success). I don't know how true that is but from all the people I have talked to and listened about the game, obviously a lot of players were disappointed in it and were hoping for something more robust.

My main competition I think will be Diablo III so I have been studying game play from several different types of games to ensure that I have an idea of what makes them tick and why people keep coming back for more. One of the things about the original Phantasy Star Online is that its game play and loot system were inspired by the original Diablo. I hear Destiny has awesome game play but from what I can tell, I don't really see it. I've watched people play the game and have studied it but I don't understand why people do play it. It seems more like Borderlands, just not as over the top.

Overall, I am also making the game for myself because, well, I like to make games. The name for Prism itself was actually from an older card game I created over a decade ago but never commercially released. The name Prism helps keep the main focus of the game in mind; for the art direction to the items that can drop in the game. While at school here at The Art Insititute, I have learned how hard it can be to have a focus and single direction in mind when building a game so having a name for the game that constantly reminds me of the theme will help keep my focus in check. In addition, I love working with color and color theory is one of my favorite subjects so I will incorporate everything I know about color theory into some form in Prism. Color is the focus, the be all and end all of the game. The Four Heroes themselves revolve around this them such as Aphrael Red. The next character, Puma Aurelius is named after gold, a type of yellow-green. So color pretty much is the central theme of the game.

I want to have a prototype level and more if possible done by the time of my graduation. I will be posting updates about the game here on my blog so tune in! It will be a grand adventure!

Wednesday, March 11, 2015

WIP: Aphrael Lo-Res Model 3

Greetings and salutations! Today I will show the completion of the cranium. After that though, I hope all of you don't mind but I am going to try to speed up my production at this point since I have pretty much six months until graduation. I was hoping to have all four characters done by then so I will not be able to post constantly about progress on the project. However, since The Four Heroes will now be part of my final project for school, I will provide updates for them along with updates for the final project.

Anyway, so to complete the cranium, I proceeded to go ahead and expand two edge loops from the "mask" of the face and connect it to the ear as shown below.

Connecting the ear to the rest of the mesh.
It appears hard at first, but it is actually quite simple to keep everything as quads. Next, I extrude edge loops from the top of the skull and use the ear as a guide on how to rotate them along the top of the cranium as shown in the two images below:

Extruding edges out to form the top of the skull.

Completing the skull by rotating around the ear.

Creating the edge loops in this manner helps keep the natural shape of the skull intact. I am still debating though if I want to add more edge loops later just to give a little bit more roundness to the skull. I do need to be careful though because more edge loops means more polygons and I don't want that.

Anyway, the completed head for Aphrael is below:

Aphrael's head is complete!
At this point, I only have just over 800 quads, so not bad at all. If I do add more edge loops, it may push the head to over a thousand, so I may not add any at all. I like keeping the quad count low, especially since I will need to triangulate the mesh by hand later for use in Unreal Engine 4.

Okay so that's it. I hope everyone enjoyed watching the head form. I have an important announcement for my next post so stay tuned!