Friday, July 9, 2021

No Country for Old Men Sprint #11

 For this sprint I worked on adding the fixed money case rig to the engine and I worked on lighting.  I began to also get low drive space messages from my computer so I bought and SSD to help create space. 

 

Low Space Message from UE4

As I was working on the Money Case rig I found that the problem was because the geometry was in groups.  I froze transformation and deleted history and took all of the geometry out of the groups.  I then re-skinned my geometry to my joints and double checked that everything was cleaned.

Re-Skinning the Money Case

I then exported the rig and brought it into the engine with success!  

Money Case Rig in Engine

After I learned a little bit about optimization from my lighting assignment I decided to check out the scene and see what the optimization looks like.  I fixed some of the optimization on the geometry. 

Optimized Scene 

I also adjusted the fan light in our scene.  I moved it more on top of the light and I made the outter and inner cones bigger.  I also increased the intensity to help in areas that were a little too dark.

Adjusted Fan Light


Aside from adjusting the fan light I also added two ambient lights.  I turned off casts shadows and added them by the bed and the dresser.  One of the lessons I learned from the level designers is that ambient lights should have casts shadows turned off.  

Two Added Ambient Lights

In the past posts the hallway lights bleeding through the walls was an issue so I took out the extra lights and just have one light that is by Anton.

Fixed Hallway Lights

Another important lesson I learned from just being around the level designers was that you want your light importance map to be very close to where you want it to render.  So I adjusted the size of my light importance map and my post processing. 

Adjusted Post Processing and Light Importance Map

At this point I actually sent images to the level designers to get some feedback on where I could improve the lighting.  

Screen Shot #1

Screen Shot #2

Screen Shot #3

From two level designers I got critique.  Level Designer Joey thought I could improve the hallway light and the window light.  Teandre thought I could improve the lamp on the nightstand.  

Level Designer Joey Critique

Level Designer Teandre Critique

I actually jumped into a call with Teandre and he showed me how to work with lights that are in blueprints.  The lamp blueprint was not created by me and it had two lights in it.  To remove it we found a setting in the details and I was able to adjust one light in the lamp and remove the other light that was too high. 

Double Light Fix

Wednesday, July 7, 2021

Lighting a Scene

 

Angle 1 of Final Lighting Build 

This was an assignment in class where I learned a little bit more about lighting.  Mostly from this project I learned about optimization and that less can be more with lighting. The big lesson for me was the Overridden Light Map Res setting.  When I did some research about optimization the colors the maps turn is a big indicator on how optimized a piece of geometry is. I found some wrong information and spent time optimizing the scene incorrectly.  After asking some level designers some questions I did ultimately fix the scene and optimized the geometry correctly.

Incorrect Geometry Optimization

Once I fixed the optimization I was inspired by an amber bar look so I created a PureRef of all the images I found on Google that inspired me.

PureRef Reference Page

After looking at some images I began to place some lights in the scene where I thought they should go.  Many of my lights were on the ceiling on the level as my level does not have many natural light sources other than a light hanging above the piano. 

Placing Lights into the Scene

Once I placed my lights I began to work on the tone and colors of my lights.  I tried to keep it somewhat dark with warm tones coming from my lights.  I used temperature to create the natural warmth look.  

Using Temperature in My Scene

Originally my scene had a lot of highlights and many lights in the scene that was not needed.  After having a level designer critique my lighting I decided to improve my lighting. 
 
My Original Lighting

For my first big change I took out many lights from the ceiling and created one big light that lights the scene.  I then added candles to the scene to give more opportunity or light sources in the scene and I added ambience lighting.  

First Big Change in my Scene

For the second change I brightened my scene using my light that lights the entire scene, created variation to the candles, and added lights behind the curtains.  

Second Big Change in my Scene

From here I made some other smaller changes and created my high resolution screen shots.

Angle 2 of Lighted Scene


Angle 3 of Lighted Scene

Angle 4 of Lighted Scene

Angle 5 of Lighted Scene

Angle 6 of Lighted Scene

Angle 7 of Lighted Scene

Angle 8 of Lighted Scene

Friday, June 25, 2021

No Country for Old Men Sprint #10

 For this sprint I worked on just the money case rig.   The money case rig is built to be simple and rigid.  It is fully FK functionality. 


Completed Money Case Rig

To start I simply placed my joints in the geometry in the areas that need to bend and move. 

Money Case Joint Placement

I also organized my hierarchy with a naming convention.  

Hierarchy Naming Convention

From here I used my controller generator tool and created some controllers for my rig.  I also colored and shaped the controllers around my geometry.  I also added constraints from my controllers to the joints for simple functionality. 

Using Controller Generator Tool to Create Controllers

Then I worked with skinning.  I added a geodesic voxel bind method and began to see how the rig moves and what needed to be adjusted.  After skinning I ultimately added some more joints and a few more controllers to get the movement I was looking for.  

Skinning the Money Case 

Once I skinned the geometry to the joints I went through each controller and locked and hid the transforms and scale.  

Money Case Lock and Hide

After cleaning the money case rig I exported and brought it into UE4.  I ran into an unexpected problem after bringing this asset into UE4.  Some joints were added and the root joint was taken out of the rig. 

Unexpected Broken Money Case Rig in UE4

To troubleshoot the problem I went back into Maya to search for the problem.  After opening Maya to my money case file it crashed and corrupted my rigging scene.  I did get my scene to open but I found a broken rig with all of the controllers locked.   To get the controllers to work I had to unlock all controllers.  

GIf of Broken Money Case Rig

I decided it was best to start with a clean file so I went back into a previous save I had worked on and went through and began to check for what could have caused the error in unreal engine.  I checked the geometry and cleaned it out of any values it had in the transforms and scale.   I found that a few of the pieces still had values and history.  I then checked each joint and re-skinned the geometry. 

Completed Money Case Rig

Thursday, June 17, 2021

Work in Progress Project Management Tool Reel

Work in Progress Project Management Tool

This project is one I'm still working on and improving.  I learned so many new concepts while working on this project such as generating my own UI using the command line to getting more comfortable using PyQt.   More than anything, this project made things a little less scary when using a UI with my code.  My biggest struggle with this project was naming projects and individual files which is still being worked on currently.  I also learned about file directories and creating folder structures with python.  My biggest surprise with this project was how simple it is to tell python to open a file and run the program.  While working on this project that was a big concern for me.  One aspect that I thought would be easier but was harder then I thought was using the tree view.  When I was designing my UI, I made the choice of a tree view over a tree widget and many times while doing research I had to make sure I was looking for documentation on tree views and not three widgets.  The tree view as I have come to learn is a powerful widget and is very user friendly for the user and looks really nice on a UI especially when working with folder structures. 

Controller Genrator Tool Reel



Controller Generator Tool Reel

This was a project that really challenged me.  I learned a lot about coding in maya and how controllers for rigging is created.  I created this tool to help riggers speed up their process with pre-made controllers that are generated using this tool.  The UI is designed to have two tabs, one for creating the controllers and one for editing the controllers.  The controller creation tab is organized by the type of shape you need your controller to be while the editing tab focuses on changing the color of the controller, changing the rotation order, deleting history, and freezing transformations. Besides from creating the tool itself, I learned about how maya reads user set-up codes and is able to create both menus and shelves that don't disappear when the maya preferences are reset.  This has made me realize the way that maya works with it's folder structure and how powerful working with user set-up codes are for keeping your scripts running in maya.  

How to Generate a Qt Designer UI Code from the Command Line

Sometimes it's easier to work with UI code when you generate it from the command line.  It's quick, easy to understand, and is easy to code the rest of your functionality with.  The command line is a very powerful tool, for me personally this was the first time getting a taste as to how powerful it really is.  When working with the command line to generate keep in mind that when you work it the code, you will have to clean and organize code  so that it is readable, the bigger and more functionality the UI has the bigger and more clean up you will have to do, and if you need to change something you will have to regenerate depending on what the change is.  The code generated does look different from just importing it so take your time to read through it to fully understand what it's doing.  To start your process on generating have an organized location you are saving your file to and have a UI created in Qt Designer.  

UI Created in Qt Designer

Save your UI and navigate to where your UI is saved in your folder structure.  You need to navigate to your folder structure because the command line is going to take that location when you generate the code. 

Navigating to UI in Folder Structure

In your folder directory, in type cmd and the command line window should pop up. When you type cmd in any directory it will create your UI code in that location. 

Gif of using the File Directory for the Command Line

Once you are in the command line, type in pyuic5 -x nameOfUI.ui -o nameOf Code.py.  This code tells the command line to extract the code from the ui file and open it as a python code file. 

Code in Command Line

Hit enter and you should see the command line update waiting for the next command.

Updated Command Line

From here you can look back in your file directory and see that your code has generated!

Example Code in File Directory

When you open the code it should look something like this.  For the codes I generate I always run the code and make sure everything is working before I start working.  I then go in and split the code so that it is organized and easy to follow with comments on what the code is.  

Example Code Generated with no Clean Up

Friday, June 11, 2021

No Country for Old Men Sprint #9

 For this sprint I worked mostly on lighting, getting the scene ready for lighting, and watching the level design lighting videos.  I learned a new workflow strategy from Level Designers Brian and Teandre, learned more about the lighting tools UE4 has built in it and I cleaned up the scene a little bit for lighting.

One of the problems that our team faced with lighting was when the gameplay level (persistent level) is checked out.  When this level is checked someone is waiting on another person to check it back in to do their work.  To solve this I talked to both Brian and Teandre and they explained how the level designers work together on the levels for Zenko: A Fox's Tail.  Multiple level designers can work on a level together and have different layers, similar to photoshop, locked if they are working on it.  During common art class I met with both level designers and our technical director so we could learn how this system works with creating the layers and understanding how to work better together.  

Layers System in UE4

To get this window to pop up you go up to Windows and select Layers.  I dragged it over by my world outline.  After pushing levels I selected Create New and selected an empty level. I then named it the lighting level.  In order to move all of the lights to the lighting level, I selected the lights in the scene and I cut and then pasted them into the lighting level.  Teandre and Brian then talked about the tab in the bottom corner of the scene interface that will switch you between the persistent and lighting level.  It also serves as an indicator of which asset is on which level as it tells you which level your selection is on.  

Level Toggle and Selected Actors In

To further organize the scene any asset that is lighting I created a naming convention for so that it is easy to spot in the outliner and it tells you which level it's in. 

Lighting Naming Convention

After organizing the scene, I began to adjust some of the lights and add to the scene based on some of the tools that I learned about after watching the level design lighting classes by Alyssa.  My first adjustment was adding a lightmass importance volume around the level to make the lighting look better and more concentrated. 

Lightmass Importance Volume Selected in Level

I also added a spherical reflection capture and placed it in the room the player will be in.

Spherical Reflection Capture Selected in Level

From here I began to adjust and add more individual lights.  For the window light I learned that it is created by a directional light.  I rotated it to have a better angle on the floor for when the light comes through the window.  

Directional Light Shining through Window

I also adjusted the light that is above the dresser.  Without this light this corner is too dark. Originally it was placed in the ceiling and went through the roof of the level. I brought it down and added s little more light in that corner.

Spotlight above the Dresser

The area I spent the most time understanding lighting was the hallway.  I added two new lights, learned about attenuation, and temperature. Originally the hallway had one light that was on the floor.  It also had an orange color to it and it was static.  In the update I moved the light higher more where you would expect there to be a wall mounted light.  The attenuation radius was adjusted to that it is smaller.  For the color on the lights, I messed with the temperature setting and moves it to a yellow color.  Each of the lights is on stationary.  I learned from Teandre some of the differences between stationary and static. 

Hallway Lights in Level

An issue I am currently figuring out with lighting is the wall bleed issue.  Currently after building the top corners of the player's room you see a little bit of light showing.  

Light Bleed in Player Room Corner

Aside from working on lighting I am just beginning to work on the Money Case rig as I have just been given the model!

Money Case Model in Maya

Zenko Rig Reel

Zenko Rig Reel Zenko was my capstone character that I rigged and animated for Zenko: A Fox's Tale.  He is built to have a very reactive ...