Friday, 1 April 2016

Character Attacks - Jack Schular Animation/VFX



This is the final iteration of the character attacks. Like the golem I animated an object in the scene with a knock back and tried to model the attacks around it. The character controller needs a combat stance so to replace the fixed animation it was useing I created a looping combat stance. The attacks form a 3 hit combo which I based of personal experience of martial arts I have studied. I wanted to create an attack in the style of northen shaolin however this would not work with the character controller movement without many more animations for different directions so I settled for a simpler 3 punch combo.

Coding - Golem Health, Death and Emission - John Howard

Task
Code health and a diagetic emission health bar.
Step One - Setting up the materials
The first step was to take Tom's latest model and apply the materials and latest rig. This was a very quick script to set up.
Step Two - Accessing Emissions
Accessing the emission texture took more work than I thought to begin with. It turns out you have to actually call keywords to unlock the use of them. I had to refer to this API quite a lot in order to get it working. But once I did it was rather simple. I could now change the emission to be that of a set colour. I then decided to create a point light which would take its colour value from the emission and would have a pulse script on it. This made it feel more alive.
Step Three - Health
I then set up a health script which used cur-health and max-health. The current health could be accessed by a trigger which would lower the current health. I set this up to make use of the emssion. So as the golem's health falls its light changes.
  • 180 - 121 -- Yellow
  • 120 - 61 -- yellow/orange
  • 60 - 41 -- orange/red
  • 40 or less -- red
This allows a proper diagetic showing of the health. So the player can read what is happening in game.


Step Four - Death
Once that reaches 0 the golem activates a death animation and falls to the ground. Where it plays a death sound then is destroyed and a hollow armor is instantiated in place, made by jack. This was just instantiating and calling bools so a very simple script to make.


Thursday, 24 March 2016

Level Redesign (Labyrinth) - Matt Glen (Concept Art)

Owing to time constraints and concern about the feasibility of some of our original goals for this project, the group decided to attempt to restructure the level into something more maze-like, taking the emphasis away from the combat aspects of the game (over which are hanging some question marks at the moment) and focusing more on evading enemies. After deciding on a overall layout of the map, the three distinct rooms and connections, I set about coming up with a concept for the internal labyrinth. Below you can see the original sketch provided by our Game Designer and then my design underneath.





The idea with this layout was to have a functional maze that could be slightly confusing and misleading at first, but would ultimately have multiple possible routes to the end destination. I began sketching in rough partitions and quickly established that it made sense to have three routes through the maze. I also knew I wanted to include the cell block design in there somewhere, as this had already been modeled, along with the starting platform which is a reworked version of my initial design for the last room of the game. Once these things were established, I quickly jotted in some example enemy placements to block the player's route, and marked in a start and finish. This was all done quite quickly, but it was necessary to get this to our Environment Artist as soon as possible to give us a chance of putting all of this together in time. Hopefully this new design will enable us to ensure there is a functioning game working by the end of the project, even if parts of the combat or other elements do end up not making the cut for one reason or another.



Coding - Cover Test - John Howard

Task

To try create a basic cover AI

Overview

I wanted to try and push towards creating a cover AI script. One that would allow me to, with altering the golem scripts, set up the skulker. I was very confused on how to approach this to begin this and so had to look at many different videos to get some ideas.

I began to piece together the notion of using nodes to act as cover points and thus I began coding. Firstly I set up a main cover holder which would be the main body of cover. For example a wall or rock. I created a tag for these called "Cover". I then created a cover selector script on the AI test cube. What this script does is firstly create an array and store all objects tagged cover. I would want to change  this to an area around the AI so the array would constantly be getting filled and emptied. However for now this will do. Using an InvokeRepeating function I force the AI to chose the closest piece of cover at any one point.
Under each cover game object are numerous child Nodes each node has a cover checker script on it. Each has a goodcover bool on it. This bool is turned off when a ray from the cover to the player is not obstructed and turned on when the node cannot see the player. The selector script then fills up a node array with the selected covers child objects, the nodes, and selects the closest node that cannot see the player and moves there. See video below.

Thoughts

This is a very buggy script that needs multiple iterations to work better with many different things needed to be taken into consideration. However I feel I must leave this script and function for now and fully focus on doing a final set of iterations for the golem and make that one as good as possible. However I believe I could come back to this and make a cover script that works much better.

Wednesday, 23 March 2016

Character after Quixel and completed character

Above Is my a render I created within Quixel using the baked maps received from xnormal.
Not Finalized, the above render shows an experimental colour way for the main characters items that he has equipped. The ability to play around with textures quick and frequently through using the workflow within Quixel meant that I was able to play around with many effects on all parts of the character before I found the one that believed to capture the original concept the most.
In order to apply different textures to different parts of the model, I used the colour ID map that I showed in my last post to apply a different texture to each colour on the model, this meant that the green trousers underneath where able to have more of a cloth appearance to them, and the bracers wrapped around his wrist where able to look more stone like.





Going back into quixel again with a better idea of how we wanted the character's clothing to look, i was able to create the finalized character you can see above, rendered in Quixel.
I added a bit more dirt and scaring on the skin texture in order to make him appear as more like he's been kept away in a dungeon for years, I then because of this ensured that his clothes where not as clean as they appeared in the previous render. 
I then added a basic pattern to the texture of the trousers that was already a dirty teal cloth texture, this then gave the effect to be wearing printed trousers which added to the authentic feel of the character.

Im very happy with the final outcome of this model. Putting all my work together in Quixel is always my favorite part of the workflow, as it breaths a lot of life into something thats been grey for most of the time that I have been working on it. Working on this character also made me more proficient in my use of applying separate textures with the use of colourID's, being able to apply them all to the same model on the same texture sheet is something I can use to my advantage when i come to creating a character again. 



Main character Textures

Albedo

ColourID

Rather than the traditional approch of applying my colour ID maps within Zbrush and then exporting them out, I instead painted my Colour ID map within photoshop instead, over a UV snapshot of the models UV's. I did this essentially due to my lack of experience within Zbrush at this present time and I wanted to ensure that I could get my finished character model textured as fast and efficiently as I possibly could.

Gloss

Normal

When it came to creating the normal maps for my model, I was force to play around with them a bit in photoshop before they where as accurate as they are now on the model. this is because, when I was baking all of my characters objects together within Xnormal, parts of the models would bake on to each other, which obscured the model. For instance, my first normals came out so that the bracer around the neck was baked onto the back of the characters neck, and the rope around his waste could be seen on his back. So what I did to avoid this was bake each object separately and then overlay all of the separate normals within photoshop so that they would all be mapped out correctly in the uv's but not have any of the previous baking issues that i had before.

Specular

Finished LowPoly model and UV unwrap


Here I have shown the completed Low Poly model of our games main character that I created for the High Poly Zbrush model to be baked on to.
I created this low poly model by exporting out a decimated version of the high poly model that i created in zbrush so that it wasnt to high poly that it would make maya run to slowley. I then imported it into maya and began creating my low poly model by quad drawing around the model.
As you can see the character is still made of a few separate models. The body, bracers and folded jacket are all separate so they where all given their own low poly model. This was done as a request by our animator so that he could make the bracers appear to move while he is running rather than them being static and stuck to his body. 



Here I have a screenshot of the main characters finalized UV layout, ensuring that there are no obvious seems that would obscure the textures when they are put onto the low poly model. I do realize however that the way I have layed out my UV's means that there will be a seem that goes straight down the middle of my models face, I did however make a decision to put the seem here instead of on the back as I considered that the player wouldn't ever be seeing the face of the character directly as the game is being played in first person.