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