sabato 28 febbraio 2015

CORSO "CREARE UN VIDEOGIOCO HORROR"

Nel corso "Creare un videogioco horror" (presente nella pagina "creare un videogame") troverete tanti tutorials che vi spiegheranno come creare un videogame horror, che vi risulteranno utili anche nella creazione di altre tipologie di giochi.

domenica 22 febbraio 2015

JUMPSCARE CON IMMAGINE

Il jumpscare è una delle componenti assolutamente più importanti, si potrebbe dire la più importante, di un gioco horror. Il jumpscare è il "salto della paura", ovvero uno spavento. Può essere l'apparizione di un'immagine, l'apparizione di qualche mostro...
Oggi impareremo come fare un jumpscare facendo apparire un'immagine e farla sparire dopo poco.
Inanzitutto importate un'immagine nella finestra Project. In seguito create una GUI Texture, che sarà l'immagine che apparirà nel gioco. Per fare ciò andate su:
GameObject>CreateOther>GUITexture.
Di default l'immagine rappresenterà il logo di Unity con la scritta "Unity" a fianco, per cambiarla basterà, nell'Inspector, inserire nel box "Texture" l'immagine precedentemente importata. Potrete spostarla nella scena tramite i parametri "position" nell'Inspector, ma attenzione! L'immagine sara visibile solamente nella finestra con l'anteprima di gioco.
L'immagine si attiverà all'entrata in un Trigger. Per crearlo:
GameObject>CreateEmpty.
Assegnate all'oggeto vuoto il BoxCollider tramite GetComponent, e spuntate la casella "IsTrigger".

Si passa ora allo script:

#pragma strict

var tex : GUITexture;

function Start {
tex.enabled = false;
}

function OnTriggerEnter () {
tex.enabled = true;
yield WaitForSeconds(2);
tex.enabled = false;
}

Assegnate questo script al Trigger. All'entrata da parte del First Person Controller nel Trigger si attiverà l'immagine, che all'inizio del gioco sarà disattivata, per poi scomparire in seguito a due secondi. Per cambiare questo parametro basterà modificare il numero all'interno delle parentesi che segue a WaitForSeconds. RICORDARSI che i numeri decimali vanno sempre messi con il punto, e mai con la virgola.

NON ESITATE A CHIEDERE IN CASO DI BISOGNO!

SCRIPT DI FINE GIOCO

Secondo me uno dei temi meno affrontati dagli youtuber o i blogger che espongono tutorial su Unity3d è quello della fine del gioco.
Ok, ho fatto il menù di pausa, di inizio, ho sviluppato un gioco... Ma come faccio a farlo finire questo gioco? Come faccio per esempio ad aggiungere dei titoli di coda e dopo rimandare al menù iniziale?
Un gioco si può far finire sostanzialmente in due modi:

1. L'ANIMAZIONE

Si può per esempio decidere che quando il personaggio entrerà in una zona, che sarà un trigger, parta un animazione. Un esempio è il gioco horror "Outlast", dove il gioco finisce con un animazione degli swat che uccidono te stesso, in seguito partono i titoli di coda.
Prima di tutto si dovrà fare un'animazione di fine gioco.
Per fare questo dovrete aggiungere una finestra "animation", non presente di default nella scena. Per fare ciò andate su:
Window>Animation.
Questo corso è destinato a persone che conoscono già le basi di Unity3d, quindi capaci di fare un'animazione. Per imparare le animazioni, guardate qualche videotutorial su YouTube.

Creata l'animazione, la dovrete assegnare all'FPS:
Nell' Inspector andate su GetComponent>Animation.
Aggiungete nel box apposito l'animazione e togliete la spunta su Play Automatically.
L'Animation Type dell'animazione dovrà essere uno. Per impostarlo selezionare le righette alla destra del lucchetto, in riga con la scritta Inspector, e in Animation Type mettere "1".


Adesso si parla di Trigger. Create un trigger andando su:
GameObject>CreateEmpty.
All'oggetto vuoto dovrete assegnare il box collider:
Nell'Inspector andate su GetComponent>BoxCollider. Spuntate la casella "Is Trigger".
Apparirà una "scatola" verde, che sarà la zona nella quale bisognerà entrare per attivare l'animazione.

Adesso si parla dello script:

#pragma strict

var FPS : GameObject;
var LevelToLoad : String;

function OnTriggerEnter () {
FPS.animation.Play();
yield WaitForSeconds(QUI DOVRANNO ESSERE MESSI I SECONDI DI DURATA DELL'ANIMAZIONE es. 15.9);
Application.LoadLevel(LevelToLoad);
}

Lo script andrà assegnato al Trigger che attiverà l'animazione. Nella variabile FPS mettete il First Person Controller, mentre nella variabile "LevelToLoad" mettete il nome IDENTICO alla scena dove compariranno i titoli di coda oppure direttamente il nome della scena con il menù di inizio.
Si ricorda che ogni scena per essere caricata deve essere aggiunta alla Build Settings.
In questo modo, quando si entrerà nel trigger, si attiverà un'animazione che farà finire il gioco.

2. IL TRIGGER

Se si vorrà far finire il gioco in modo più semplice ma meno sviluppato bisognerà creare un Trigger nello stesso modo di prima e assegnargli questo script:

#pragma strict

var LevelToLoad : String;

function OnTriggerEnter () {
Application.LoadLevel(LevelToLoad);
}

Lo script andrà assegnato al Trigger e nella variabile "LevelToLoad" mettete il nome IDENTICO alla scena da caricare. In questo modo, quando si entrerà nel Trigger, verrà caricata la scena desiderata.

NON ESITATE A CHIEDERE IN CASO DI BISOGNO!

sabato 21 febbraio 2015

CREAZIONE MENU DI PAUSA

Con questo script sarà possibile la visualizzazione di un menù di pausa al seguito di un Input (che sarà la pressione di un tasto).
Il menù andrà assegnato alla main Camera, se si userà un Fps Controller bisognerà assegnarlo alla sua main camera, invece se si usera la Main Camera già presente nella scena di default bisognerà assegnarla ad essa.

#pragma strict

var paused : boolean;
var LevelToLoad : String;

function Update () {
if(Input.GetKeyDown(KeyCode.Escape))
{
paused = !paused;
}
if(paused)
{
Time.timeScale = 0;
}
else
{
Time.timeScale = 1;
}
}

function OnGUI () {
if(paused)
{
if(GUI,Button (Rect (Screen.width/2 +100, Screen.height/2 +50,200,50), "Resume"))
{
paused = !paused;
}
if(GUI,Button (Rect (Screen.width/2 +100, Screen.height/2 +0,200,50), "Quit"))
{
Application.LoadLevel(LevelToLoad);
}
}
}


Alla variabile "LevelToLoad" andrà assegnato il nome IDENTICO al nome della scena di inizio (quella con il menù di inizio).
In questo caso la pausa si attiverà alla pressione del tasto "Escape" ovvero "Esc", ma si potrà cambiare questo parametro semplicemente sostituendo la parola "Escape" con la lettera (scritta maiuscola nello script) che volete attivi la pausa.

NON ESITATE A CHIEDERE IN CASO DI BISOGNO!

CREAZIONE MENU' DI INZIO

Con questo script, che dovrà essere associato alla Main Camera, si potrà creare un menù di inizio che sarà visibile all’avvio del videogioco.
Da questo menù si potrà:
  1. Caricare la scena di gioco e quindi iniziare a giocare
  2. Visualizzare i comandi di gioco
  3. Uscire dal gioco


lo script è programmato in JavaScript, che sarà il linguaggio usato per tutti gli script messi a disposizione.


#pragma strict


var LevelToLoad1 : String;
var LevelToLoad2 : String;


function OnGUI () {
if(GUI.Button (Rect (Screen.width/2 +100, Screen.height/2 +50,200,50), “Avvia gioco”))
{
Application.LoadLevel(LevelToLoad1);
}
if(GUI.Button (Rect (Screen.width/2 +100, Screen.height/2 +0,200,50), “Comandi”))
{
Application.LoadLevel(LevelToLoad2);
}
if(GUI.Button (Rect (Screen.width/2 +100, Screen.height/2 -50,200,50), “Esci”))
{
Application.Quit();
}
}


Prima di tutto associate lo script alla main camera, in seguito mettete nel box della variabile “LevelToLoad1” il nome IDENTICO alla scena da caricare per iniziare a giocare, nel box della variabile “LevelToLoad2” il nome IDENTICO alla scena da caricare per visualizzare le istruzioni, che potranno essere espresse usando GUI.Text o 3d Text, entrambi creabili selezionando:
GameObject>Create Other> GUIText o 3dText.
Per gli utenti meno esperti si avvisa che un GUIText non si vedra nella scena ma solamente all’avvio del gioco (premendo il tasto PLAY).
ATTENZIONE:
Per essere caricata una scena di gioco essa deve essere presente nel Build Settings. Per aggiungerla selezionare:
File>Build Settings>Trascinare la scena nello spazio vuoto.
Le scene dovranno essere trascinate in ordine di “partenza”. Se si vorrà che, all’avvio del gioco, sarà visibile la scena del menù bisognerà trascinarla nel Build Settings prima di tutte le altre.


NON ESITATE A CHIEDERE IN CASO DI BISOGNO!