Tuesday, 19 April 2016

Monday, 18 April 2016

Overall Words

In terms of the character modelling for the game, I am happy that it is complete, however looking back, I know there are some things I could have improved on:


  1. I feel as if I could have made her look closer to the refrence with the character model. She does look like the concept art, but she also doesn't in my eyes.
  2. The character would've have looked better if she had been Z-Brushed.
  3. Better topolgy around the upper arms/shoulders (this seems to be a sticking thing I need to fix).
  4. The overall body mesh could've been somehow smoother, especially the facial and skin textures.
Altough I am happy myself and the team have managed to pull though after realising our ambititions with the game.

Go team. =]

Rock tree finished

The rock tree was the last thing to make fully. the image below show that the UV's were messed up but once sorted the texture was easy to place.


i added the leaves by using live mesh and moved the pivot points at the end of the branches that Matt put on the textures.


once in unity i started applying the texture to the tree, i went through most of the textures as to see what would be the best choice for the game.




this is the final texture for the tree.





Craig Lang - Final Bug Check



I built the game and played through them to check for errors. I did this several times correcting any bugs I came across. The main issue I came across was the platform colliders. They were too large and prevented the player from successfully walking/jumping on them. I shrunk them down and lowered them to the lower part of the object. This allows the player to successfully walk on the platforms. There is slight clipping between the character's legs and the platform, but the issue is if I raise the colliders any higher I risk the colliders interfering with the player. This id due to the platforms being close together and at different heights, which often overlap each other.


I adjusted the rising platforms as some would effect the player by vibrating and throwing them off. This was resolved by scaling up the platform allowing the player to have more room, thus eliminating intense collision detection. One platform needed to be readded to the scene as it conflicted with the character's scale size. After reading the platform and reapplying the scripts the problem was resolved.


I tweaked little features such as deleting poles off rising platforms and adjusting the fire script's timing.


I now feel confident with the end result. There is a lot more for me to learn. I now know to accept my limitations and to work with them rather than being too optimistic and overshoot my skillset. Although it was unfortunate to downsize the game it was a necessary step both in the project and my learning curve in general. I've learnt a lot from this project and will use this knowledge for future projects.

Sunday, 17 April 2016

Environments finishing the layout

with the layout finally done, it is mainly putting the final touches into the design.
i am the environment artist, but i have done no texturing, my contribution was towards the design, layout of the level and lighting. The texturing was done by Matt.

sorting out the layout was to mainly focus on the the two main parts the fire and the platforming.
the image below was the the staring of the layout for the platforming section.


The Lighting;

after the texture were added lighting was the next stage, all of the layout for the level is done and all the models are in place.


 placing the lighting was difficult as we are in a natural environment there is no are light, i had to use spotlights and on those i added an effect shown to me by a classmate that adds beams of light. Sun shafts - a beam of light that get broken up by objects. to light the cave more was use those spotlights and make it so that the rebounding on the lights were a certain distance as to make it brighter.

the orbs were all suppose to have a glow, we added bloom to the camera first but found that it effected all the lights. which is what we didn't want. it made the spot lights to bright and created a negative effect.so what i did was on the orbs in the prefabs i added a area light as to make them all have a slight glow.


the only problem is that for what we wanted it became rather expensive on the lighting. as there are now many sources of light in our game.

but in the end it gave the effect that we wanted for the game. the orbs are what guide the player to the next are so i wanted to get it right.





the images below are final looks of the game with out our character in the game yet. clear views of the the layouts. the only issues are the UV map's on the rock tree and a certain are in the cave. but for unknown reasons to me they are UV mapped but they wont change in unity. for the tree i am going to re-import it after i have fixed the UV map's in unity.






Craig Lang - Camera Move Revisited



I revisited the camera move script as I wanted the player to be able to view the environment the way they wanted. The script was fine before, however the problem was you couldn't reset the camera position. Using a similar technique I tried before with the camera zoom I created an object and attached it to the player. Using the transform.position script is used for the platforms, I then transformed the position of the main camera to the transform coordinates typed into the public default camera function. I would call this function when the player clicks the right mouse button. This enables the player to move the camera around and reset it to it's original position.


This is extremely helpful as the camera tends to change transformations when respawning. Although I would of rather fix this issue properly I am happy with the current solution I have created.

Craig Lang - Door, Key and Elevator scripts





For the final section of the game the player will need to use a key to open the door to access an elevator. I used and edited previous key and door scripts I've made in the past. I also used the platform script on the elevator which only activates when the player enters the trigger.


I had issues with the door and key scripts as they didn't work properly. The door switch couldn't detect the key script which restricted the door to open. I found out that I didn't call the bool function for playerclose in the door switch script to the OnTriggerEnter function. Once I added it I was able to check whether the scripts were working, which they were. I then figured out that I was using setactive on the key script. When you deactivate an object it can cause issues as other scripts may struggle finding it. I encounted this problem before and resolved it by calling the mesh renderer on the object and disabling that component. This allowed the door switch to detect the key script and therefore can activate the door open script. I had to edit the door open script variables as they were set too low that the transformation of the door was barely noticeable. I also parented both the door switch and door triggers so they didn't interfere with one another. This resolved all issues with the key and door scripts.








I also added a fade out script which turns off a selected light within the scene when the player enters a separate trigger box. I did this by calling the light and effecting it's intensity. Finally I added a OnTriggerExit function on the same trigger which loads the end screen canvas menu. The player can then return from the main menu and will know they have completed the level.


I searched through unity forums to gather scripts for effecting the lights. Even though I was successful due to the light design created by the environment artist it has little effect on the environment.

Craig lang - Menu Scripts



I used the same technique I used from my last project to create the menus. I created a function for each button which would then call a menu. What I did differently this time was I created several canvas instead of one. Each canvas was for it's own menu. This was a poor choice as I could of used one. I learnt from my mistakes when I created the main menu and how to play menu as they are in a separate scene from the main game.


For each function I called the canvas I wanted and turned off the others. When transitioning between the main menu and the main game I used the application.load code. I created a separate script when transitioning between the main menu and the how to menu. This was because the menus wouldn't load properly when called as I turned on and off the images and buttons rather than the canvases. I feel my method for the menus was sloppy and inefficient. I should of researched more into creating menus from unity forums rather than relying completely on previous experience.


I will definitely take this in mind for future projects. My only regret is that I don't have enough time to correct my mistake. Focusing on the positives however the menus work and transition between them just fine.

Craig Lang - Fire and Switches





I revisited the VFX tutorial from last term's game encounters lecture when we created the fire. I used the same technique used within that tutorial by creating particle system and adding a 4 image plane sprite. The sprite image is divided into four sections each with its own fire image. The particle system goes through each section one by one to create an animation. I then adjusted the settings to the preferred style I wanted. I then added a capsule collider as a trigger and the attacking script.


For the switches I created a fire switch script which consisted of a coroutine. The coroutine will turn off the fire by deactivating the object using setactive(false). However by doing this all the fire truns off. I then separated certain fire objects into their own prefabs. I then called the prefabs and turned the prefabs off thus turning off the fire particles I wanted. Seeing that this worked I saw an opportunity to create a time event. By adding waitforseconds I created a timed event on which the fire is reactivated after a number of seconds. This added another challenge to the player as they must navigate from switch to switch in order to get to the final switch which turns off the fire blocking the bridge.

Saturday, 16 April 2016

Craig Lang - Checkpoint Scripts



I decided to create checkpoints within the game. I feel this is an important feature to include as the game can be challenging at points. It also helps the player feel a sense of achievement within the game. I created a box collider and using the same transform script I used for the spawn script I simply transformed the spawn box position to the Checkpoint trigger. This transform the spawn trigger to the checkpoint allowing the player to spawn in the new position.


I tried duplicating the checkpoint and positioning them around the map. However, this caused issues as the spawn trigger will always move to the very last trigger. I tried adding all objects to selecting them one at a time with the same script, but the issue wasn't solved.


I therefore created separate scripts for each trigger and called them inside one another. I then activated and deactivated them in order script by script as the player progresses through each checkpoint. This allows the spawn trigger to transform to the last checkpoint trigger the player entered.

Thursday, 14 April 2016

Character Modelling -- In-Engine & Lighting test

Now that the chracter finished, it was a relief that she had been imported into Unity without any errors to both the mesh and the rig during its animations. I was also pleased to see that the normals are also visually functioning well.

Apart from turning down the glossy texture on the character, there was the issue of lighting on the back of her neck. The seam that connects the end of the neck and the back seems to show some change in surface when a light hits that surface. Due to the time we had left, there was no time to fix it, or rather I wasn't very sure on the right approach on how to correct it.









Initial character lighting test.


Full character in-engine with hair and feathers.




Wednesday, 13 April 2016

GUI and GIFs

Finally doing my job and finishing the GUI.





I've also been experimenting with making a GIF for the killscreen - static flickering on a TV monitor.


Tuesday, 12 April 2016

Final Character Model

Here is the finished character model.


Poly count: 14,222 tris.


Time for Unity-Exporting.













Saturday, 9 April 2016

Charater Modelling -- Rigging.

Character rigging was of course the most challenging part of the modeling process from last term, I had forgotten some parts of rigging, so learning it again took some time to begin with the character.


Paying attention to where the shoulder and arm joints were, binding the body and the skin was okay for now. I made sure that since the hair/ feathers, and the body/ clothing were two separate meshes with their own texture maps I had to combine these two, otherwise the rig when testing the head would be iffy. From this point, it was good to check the control rig to see what work I had to do whilst painting weights and such.












The joint were again, tedious to orient. I wasn't exactly sure whether the hip and the chest/spine joint were meant to be pivoted, so they were left alone.


Weight painting was where most of my time was taken up.
Since some layers kept resetting to its default paints, I needed to lock the layers, some of the other layers' vertices would tend to merge to a center point. This took a very long time to get around. At this point, I realized the "max influences" of the model was set higher than it should've been with some help from my tutor.
From there, I realized that the higher influence a joint have, the trickier it would be for me to properly weight-paint (I kept trying to fix the stretch where the underarms were, but no can do I needed to finish with the rest of the rig. I realized from this point that bending arms upwards with the model made with an A pose would prove to be quite difficult to do so).


(From this point, this is the second time rigging this character since due to incorrect UVs)


After some time, my job with weight-painting is now over, I check the control rig for extra pulls and tugs here and there, and from this point, I'm using the control rig to fix any stray vertices.


From this point, the rigging is complete.