Sunday, February 26, 2017

Week 4-5

The past two weeks in thesis have been very productive. I forgot to log hours for the past two weeks but I would guess at 8 hours week 4 and upwords of 15 for week 5.

 I started week 4 modeling a new building for my project. 


My updated plan for modeling is to have simple and efficient meshes that can fill 1x1 or 2x2 tile space in my game. This will keep the game visually simple and remove any confusion about which tile can and can't be used by units. I will finish base versions of all 6 buildings and then continue to add smaller details with any additional time.

After modeling the pub, I began my escapade into unreal materials starting with Unreal's procedural tile material which was released with a stream earlier this month. 


This material offers great control over any cell-based tiling system and I plan to use it and variants of it to cover lots of open texture space on both hero objects and in background environment objects.

After seeing the incredible versatility of procedural textures in Unreal and learning a bit about their creation, I decided that hand-paining most of my textures in substance painter was overkill and that I should instead invest that time in building a few versatile materials to use throughout my entire level. The first material I created combined wood and paint for a worn effect.


My first pass looked pretty good in previews but didn't tile very well across large surfaces. I wanted to see what other ways I could use the effect though so I added a painted metal version as well.


At this point I realized that I was being held back by the quality of the alpha maps that I was using so I began some research into the best way to create/acquire better quality alphas. I settled on Substance Source which provides fully built materials which can be imported directly into unreal and are often free for use. 


The source materials looked pretty good in-engine and I tried adding and adjusting a bump offset to amplify the effect.  I multiplied the RGB values of the normal map together to use as a 1 channel heightmap (which is the only input bump offset will accept)

Next, I searched for materials on substance source which would have useful alpha maps. I ended up taking the roughness map from the concrete materials and adjusting it for my purposes. This doesn't look great for solid paint on wood but works well for more faded colors and for the metals. 


The final step was to take my materials and make them editable with material instances. Below is a quick example of the versatility of the materials instances. There are still many improvements I could make to these materials but I think I'm going to leave them for now and continue on to do other work. I may come back and add LERPed normal maps but that's on the backburner for now. 



  Next week I'll be modeling more buildings from each faction.

Sunday, February 12, 2017

Week 3 - Character & Buildings

This week I spent time working on incorporating my character into the game (with some issues persisting through the week) and continued setting up buildings within the game.

Character - Since I'm not a character animator I've decided to get my character animations from Mixamo. I gathered a small set of character animations for the game for now. I set up an animation state machine to control the animations and a blend space to transition between idle, walking, and running. The issue arose when I tried to substitute my character/skeleton/animations for the defaults. After some research and digging into the plug-in's code, I found out that the default skeleton is built fairly deep into the plug-in's system, and it will take some serious work to fully swap the two. I've decided to put this off for now as there are a few ways to approach it depending on how much time I have available.
Character mid animation 
Buildings - After the character issues, I decided to switch gears and start working on the buildings some more. I started by importing my first building into Unreal and adding it to my building blueprint. I also set up a UI widget which will display all of the actions that a building can perform. The only thing holding that up is that I'm not sure how to call a custom event within a UI widget blueprint. After some research, it seems like an event dispatcher may be useful here but I'm going to leave some of that work for next week.
UI toggle logic


Building with real mesh. Light indicates the building is "on" in the game. This will be swapped out for active animations and an idle state.