Wednesday, 27 November 2013

Texturing 25th - 30th


Today I have managed to texture the conveyor belts and hook. They are exported out seperately as 3 different object so they can be re-adjusted in unity. I will next add bump and specular maps to the assets, and continue to texture the other asset for the room.

 
This is a shot of both the conveyor belts with a bump and specular maps. The bump highlights detail whilst the specular highlights light. They have been used together to give off a metal shine but also to show that they have a little wear and tear in them. The bottom shows a dried blood that has been left at the bottom and rust in the metal where is has started to decay.
 
 
This is the turbine fully textured and ready to be put into the game, it has a diffuse, bump, and specular map. I have used rust textures to make it look a little out and outdated whilst a complicated piping texture to exaggerate the high-tech style in which it is built. This is used to power machines around the facility and possibly to grind bodies.
 
 

Monday, 25 November 2013

Assets for the Processing Room


 
These are both assets for the processing room, that were created last week. This week however I shall be texturing and adding more assets to put together for the processing room. Here I have modelled a turbine that powers the machine and the processing machine. I have also created a conveyor belt with the hook that holds humans and pulls them across the room.
 

Wednesday, 20 November 2013

Basic Layout

So we've decided to scale down the map. By doing so we're going to focus on three main rooms that will be accessible to the player (Cage Room, Larbratory and the Processing Room) and one room that the player will be able to look in to (the Disposal Room).


This way, we feel we will not be taking on too much work and we will be able to do these rooms to a high standard that gets the message of our game across sufficiently. This is just a basic graybox view of what it will look like, we shall start adding assests from now on.

Tuesday, 19 November 2013

This week

Concept Art:


Paintover of battery egg cages to show a possible cage room concept. I added the rough figures based on the amount of space chickens get to show the cages as cramped and unpleasant and to reflect reality better. I included the escaped figure to give a sense of how tall this would be in engine.  





Assets:

Maya model of the cooker from Joe's processing room concept.Since posting this I have sorted out the issue with the 12 sided face using connect components.

What I'll be doing...

My job for up coming few days is to refine the graybox we have, adjust the layout of where we want things, ultimately scale it down to only a few rooms, so that we can just focus on specific areas, and move forward from there. I will be carrying on with implementing sounds, some will only play in specific zones, and then I can see if I need to make any amendments here and there.

Look at:

flickering lights - code.

ambient sounds

screams

To do

To Do:

Concepts for processing and cage room (Toop)
Assets needed:
Humans - High poly and low poly models - Edit default mudbox human
Arm holding orb (High poly)
Cages
Conveyor belt
Preparation machinery (processing room)
 Tables
 Tanks
 Lab equipment
Meat hooks 
Textures for all assets, ideally two for humans though a lot of farm animals are clones so if they all look the same it might actually be more accurate to what we are trying to portray.

Monday, 18 November 2013

Processing Room

 
This is a concept of some of the items to be used in the processing room such as; gears, cogs, pistons etc. I have also included images of animals such as cooked pigs and raw cows, to help me to design the colour and texture of the human bodies. I also included some war images of burnt bodies as part of the research. I chose pigs because they are the same colour flesh and meat as human so this will closely help me to design it. I like the cow image because it shows a very interesting way to hang up heavy pieces of meat, very raw colours and just hung there on hooks.



This is the environment concept that I produced for the processing room. I decided to go with a very simple layout showing a convayer belt that pulls humans around the room, into the cooker and then away to be eaten. The layout of the room isn't very accesable although viewing the process of what happens to humans should be horrific for the player to witness. Ive also included some concepts of the vents and machinery as well as some close ups of a pully system and a burnt human.

Item Concepts

So my task for over the weekend was to look at specific items that you would maybe find within a slaughter house, that we could use for our processing room. I started off with drawing three types of hooks that you would hang the bodies up on. I then moved on to hands restrained by cuffs, hung up in the air. I thought that maybe we could combine the two elements.




I was thinking of also looking at the pulley systems/ conveyor belts that would be used to move the bodies along. As well as this I was thinking of also studying the clothing worn by the people who work within those sorts of environments, for example wellies and gloves. Furthermore I will try and produce studies of instruments they may use within the slaughter process (which is going to be terribly gruesome to research!). 


Saturday, 16 November 2013

Weekend Plan

We need to have a proper discussion before we can move forward (Monday 11.30). Untill then tasks for the weekend are:


Toop: I will be sketching environment concepts for the cage area and processing plant.


Joe: Research factory farming, look through the research already posted on the blog and do some independent research and make a post on the blog. Its extremely vital that you do this, will make things a lot easier on yourself once you get this done.


Alice: Concepts for objects in the environment

Tuesday, 12 November 2013

Possible Idea



We looked at a interactive virtual scene of a battery hen farm and came up with an alternative idea. Instead of having the cages arranged in a maze like pattern we could have them arranged in a way more typical of factory farms which would draw more parallels to factory farms.


Link to interative scene:
http://www.animalvisuals.org/projects/empathy/virtualbatterycage/#reference

Sunday, 10 November 2013

What I have done this weekend.....




I think this design would suit us if it was focused on showing how the aliens are more advanced and high-tech. This can be used if we decided to base the aliens around the futuristic style. The design shows how they use very simple methods but are very effective i.e. the braces being used to hold humans against walls whilst only being a piece of metal.





I quite like this design I think it suits the style of our game a lot better than the Sci-Fi one because it could look a lot creepier due to it looking old styled and that its made with very simple materials. This would work well especially when it comes to the re-creation of the doors locking and how it can help you to escape. 



This design is the most simplistic for a cage and would be used to store humans in large quantities in tight and cramped conditions. The cage will be made from simple materials put together and used over and over throughout the whole facility. The style is very medieval to symbolise old and simple methods to in-prison people.



I managed to create a quick design of the alien in a possible suit he might wear considering the style in which it might head towards. Underneath are development sheets of how the enemy is designed through the development of the start to up to date.




Wednesday, 6 November 2013

What I have produced this week...


 
This week I attempted to make a loading screen in unity using a white silhouette of our logo using a texture sprite sheet technique. I found this to be very difficult because you have to line up each of the parts exactly the same as before. I have to look more into this process as I've had a few problems with the animation lagg.

 
I also worked partly on our start up screen where it introduces the character and the story into the game I managed to complete these three sceens.
 

 
A character concept/pose I designed today, it is using more of an action styled pose where it has just jumped down.

AI_Patrol script

using UnityEngine;
using System.Collections;
public class AI_Patrol : MonoBehaviour
{
 //-----------------------------------------------------------------------------
 #region public_vars
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------

 public enum AIState { none, idle, walking, run }

 public float patrolSpeed = 2F;       // The nav mesh agent's speed when patrolling.
 public float patrolWaitTime = 1F;      // The amount of time to wait when the patrol way point is reached.

 public float patrolSpeedDamper = 5F;     // Patrol at 1/5th of animation speed

 public AIState currentAIState = AIState.none;

 public float speed = 0.5f;

 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 #endregion
 //-----------------------------------------------------------------------------

 //-----------------------------------------------------------------------------
 #region private_vars
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // constants

 private const float MIN_NAVAGENT_SPEED = 0.1F;
 private const float MAX_NAVAGENT_SPEED = 1.25F;
 private const float m_SpeedDampTime = .25f;
 private const float m_DirectionDampTime = .25f;

 private int   m_WayPointIndex = 0;

 private int maxWaypointIndex = 0;

 private NavMeshAgent nmaAI = null;
 private Animator animatorAI = null;

 private const float MIN_IDLE_TIME = 2;
 private const float MAX_IDLE_TIME = 8;


 private int currentWaypointIndex = 0;

 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 #endregion
 //-----------------------------------------------------------------------------

 //-----------------------------------------------------------------------------
 #region public_methods
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 #endregion
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 #region private_methods
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------

 void Awake()
 {
  nmaAI = GetComponent<NavMeshAgent>();
 }

 //-----------------------------------------------------------------------------
 // Use this for initialization
 void Start ()
 {
  animatorAI = GetComponent<Animator>();

  StartCoroutine( Idle() );

 }

 void OnTriggerEnter( Collider hit)
 {
  Debug.Log("AI_Patrol: OnTriggerStay hit: "+hit.gameObject.tag);

  if( hit.gameObject.tag == "Enemy" )
  {
   Throw ( hit.gameObject );
  }
 }


 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 IEnumerator Idle()
 {
  currentAIState = AIState.idle;

  float randomIdleTime = Random.Range( MIN_IDLE_TIME, MAX_IDLE_TIME ) + Time.time;

  while( randomIdleTime > Time.time )
  {
   animatorAI.SetFloat("Speed",0 );
   nmaAI.speed = 0 ;
 
   yield return null;
  }
  
  StartCoroutine( Patrolling() );
 }

 //-----------------------------------------------------------------------------
 IEnumerator Patrolling ()
 {
  currentAIState = AIState.walking;

  // Set an appropriate speed for the NavMeshAgent.
  nmaAI.speed = Mathf.Clamp( animatorAI.GetFloat( "Speed" ) / patrolSpeedDamper, MIN_NAVAGENT_SPEED, MAX_NAVAGENT_SPEED );

  // Set the destination to a random patrolWayPoint.
  //nmaAI.destination = Waypoints.GetRandomWaypoint();

  nmaAI.destination = Waypoints.GetWaypoint(currentWaypointIndex);
  currentWaypointIndex++;

  bool endPatrol = false;
  
  // While not near the next waypoint or while there is a destination...
  while( !endPatrol )
  {
   if( Vector3.Distance( nmaAI.destination, animatorAI.rootPosition ) > nmaAI.stoppingDistance )
   {
    animatorAI.SetFloat( "Speed", MAX_NAVAGENT_SPEED,m_SpeedDampTime, Time.deltaTime );
  
    Vector3 curentDir = animatorAI.rootRotation * Vector3.forward;
    Vector3 wantedDir = ( nmaAI.destination - animatorAI.rootPosition ).normalized;

    if( Vector3.Dot( curentDir, wantedDir ) > 0 )
    {
     animatorAI.SetFloat( "Direction", Vector3.Cross(curentDir, wantedDir ).y, m_DirectionDampTime, Time.deltaTime );
    }
    else
    {
              animatorAI.SetFloat( "Direction", Vector3.Cross(curentDir, wantedDir ).y > 0 ? 1 : -1, m_DirectionDampTime, Time.deltaTime);
    }
    nmaAI.speed = Mathf.Clamp( animatorAI.GetFloat( "Speed" ) / patrolSpeedDamper, MIN_NAVAGENT_SPEED, MAX_NAVAGENT_SPEED );
   }
   else
   {
     endPatrol = true;
   }
 
 
   yield return null;
  }

  StartCoroutine( Idle() );
 }
 //-----------------------------------------------------------------------------
private bool throwing = false;

 public void Throw( GameObject hitObject )
 {
  if( !throwing )
  {
   StartCoroutine( AnimateThrow( hitObject ) );
  }
 }

 public float rotationDelta;

 IEnumerator AnimateThrow( GameObject hitObject )
 {
  if( !throwing )
  {
   throwing = true;
 
   animatorAI.SetBool( "Throw", true);
   yield return new WaitForEndOfFrame();
 
   AnimatorStateInfo stateInfo = animatorAI.GetCurrentAnimatorStateInfo( 0 );
 
   animatorAI.SetBool( "Throw", false);
    
      // transform.LookAt( hitObject.transform.position );
   bool rotating = true;
 
   float endOfThrowTime = stateInfo.length + Time.time;
   float step = speed * Time.deltaTime;
 
   while( rotating)
   {
  
    Vector3 targetDir = hitObject.transform.position - transform.position;
  
    Vector3 newDir = Vector3.RotateTowards(transform.forward, targetDir, step, 0.0F);
  
    Debug.DrawRay(transform.position, newDir, Color.red);
  
    transform.rotation = Quaternion.LookRotation(newDir);
    
   
//    if(Mathf.Abs( (int) rotationDelta ) > 179 )
    if( endOfThrowTime < Time.time )
    {
     rotating = false;
    }
  
    yield return null;
  
   }
  
   transform.LookAt( hitObject.transform.position );
 
//   yield return new WaitForSeconds( stateInfo.length );
 
   throwing = false;
  }
 }


 //-----------------------------------------------------------------------------
 #endregion
 //-----------------------------------------------------------------------------




}

Update

Rescaled the unity file fixing the issue where the AI was moving extremely slowly.




Map
Drew a map of the building showing where the different rooms will be. At the present moment we haven't decided the path the player will go down.

Slaughterhouse concept
Painted over a Maya render to get the basic concept of the slaughterhouse done. The poster is meant to be an advertisement showing the humans having better quality of life than what they are living in which is often done with advertisements for animal products.  This didn't turn out well as a concept piece, I should of painted more into it and I'm not happy with the the shadows.

Tuesday, 5 November 2013

Tasks for the week

Check the trello board !!! (should be checking and updating  your progress on tasks everyday) and ticking off tasks once they've been done

Joe: Finish the concept art for the alien. The versions wearing suits and the versions with stomachs can be paintovers of previous concept pieces or sketches.


Toop: Complete weekly schedule and update presentation


Alice: Getting placeholder sounds to use in the graybox and finishing processing sketch


All three of us also need to write a personal statement (300 words)