Falcon Age arriva in picchiata domani su PS4 e PS VR

1 0
Falcon Age arriva in picchiata domani su PS4 e PS VR

Un'occhiata approfondita alla genesi del nostro falco.

Falcon Age è un gioco in cui Ara dovrà cacciare, combattere, creare un legame con il suo falco e riconquistare la sua terra dai coloni meccanici. È disponibile da domani su PlayStation Store per PS4 non-VR. Oppure, se avete PS VR, potrete accarezzare un falco in realtà virtuale.

Abbiamo lavorato parecchio per fare in modo che il falco fosse in tutto e per tutto un uccello predatore. Vediamo più da vicino la progettazione del falco, le animazioni, la configurazione dello scheletro e la tecnologia delle piume.

Progettazione del falco

La progettazione del nostro falco combina diversi tipi di rapace. È grande come un’aquila reale, combatte come uno sparviero, somiglia a un’aquila codacuneata, ha i ciuffi del gufo e i comportamenti del falco. È uno degli ultimi esemplari della sua specie nel nostro mondo e volevamo renderlo visivamente unico per la storia e anche che spiccasse sul cielo e sugli ambienti desertici durante il gioco.

Una delle prime ispirazioni per Falcon Age è venuta dai video delle aquile reali che cacciavano grosse capre di montagna. Questo ci ha portato a fare delle ricerche sulla falconeria, sull’idea di avere un falco come compagno e sulla progettazione di meccaniche e dinamica di gioco intorno a quest’idea centrale. Abbiamo creato un primo prototipo per provare le idee. La prima volta che siamo riusciti a richiamare l’uccello fischiando in VR e l’abbiamo visto cambiare di dimensioni mentre si avvicinava fino a quando è atterrato sulla nostra mano, abbiamo capito di aver raggiunto il cuore di un gioco unico.

Animazione e scheletro

Falcon feet tracking

Ci sono molte opzioni di animazione, ma nessuna avrebbe sopperito facilmente ai nostri specifici bisogni di rilevamento delle zampe del falco. Tecniche come cinematica inversa, root motion e altri plugin complessi potevano funzionare ma con una squadra più grande e più tempo da dedicare. Volevamo un esito più prevedibile, così abbiamo scelto una soluzione a pose multiple fatta con 3ds Max.

Tuttavia, il motivo principale per non usare la cinematica inversa è che quella è stata la soluzione migliore che siamo riusciti a trovare in pochi giorni. All’inizio del progetto stavamo costruendo il prototipo così velocemente che non abbiamo avuto tempo di considerare le altre soluzioni disponibili. Questo è il metodo più affidabile e bello che abbiamo trovato e l’abbiamo adottato da allora. Squadra che vince, non si cambia.
Ecco come abbiamo immaginato il blend degli artigli dell’uccello nella realtà. La palla è il pugno collegato ai controlli di movimento VR. Questo metodo ha dei limiti. Gli artigli devono essere in grado di avvolgersi intorno a buona parte del pugno e la posa del pugno dev’essere quanto più sferica possibile.

Come funziona in breve: il pugno è una palla e le zampe dell’uccello vi ruotano intorno usando un blend di 30 pose e un’animazione di riassetto per riportarle al centro quando la palla (la mano del movimento) ha ruotato troppo.

Blend di 30 pose su una palla

Un’animazione di riassetto fa ricentrare le zampe

Poi i blend ricominciano dopo la rapida animazione di riassetto da una nuova rotazione della mano. Il nostro programmatore Justin sta facendo dei normalissimi calcoli di quaternioni e di algebra lineare. E io uso i tre valori in virgola mobile forniti e li inserisco in quegli stati di blend dell’animazione.

Per l’uccello ancora piccolo, la seconda nocca dell’indice è considerata una palla.

L’unico caso limite dove il concetto di palla non funziona è quando il guanto è puntato direttamente giù. Come si vede in basso.

C’erano diversi modi in cui potevamo risolverlo. Una soluzione era avere un collisore sull’avambraccio del guanto e far volare via l’uccello se la collisione dell’uccello vi si intersecava. Alla fine abbiamo deciso di lasciarlo così. È più semplice per il giocatore perché permette di toccarsi il fianco sinistro in VR senza che l’uccello vada via. Inoltre, la maggior parte delle persone non terrebbe mai le mani in quel modo in una partita normale.

A meno che non stiano giocando a testa in giù per qualche motivo. Qualsiasi tipo di animazione sembrerebbe errata o non funzionante in una verticale.

Tracciamento della testa del falco

Come funziona in breve: la testa (bone_Head) è figlia diretta dell’oggetto più in alto nella gerarchia dello scheletro dell’uccello (bone_Root).

La posizione (non la rotazione) di bone_Root segue la posizione del controller di movimento e bone_Head controbilancia quel movimento. In sostanza è una gerarchia di due oggetti in cui viene usato un blend posizionale per bilanciare il movimento dell’oggetto padre e tenere l’oggetto figlio nella stessa posizione globale. Il resto del corpo usa un blend di 27 pose per continuare a far sembrare naturale l’uccello.

Con la taglia dell’uccello adulto che abbiamo, una traslazione di 12 cm su tutti gli assi (un cubo di 24x24x24) sembrava ideale per ottenere l’effetto di stabilizzazione senza allungare troppo il collo. La testa inoltre si muoverà sul bordo di quell’intervallo e quando la mano del movimento si ferma, la nuova posizione diventerà il nuovo centro e lì si formerà un altro cubo di 24 cm. In termini matematici, l’ancoraggio della testa è perlopiù una semplice trasformazione vettoriale con molte aggiunte extra per limitare la velocità, fare transizioni in entrata e in uscita e muovere il punto d’ancoraggio quando si allontana troppo dal corpo ma l’uccello è ancora nell’area.

Piume e rendering

Le piccole piume del corpo, o copritrici, sul nostro uccello si agitano al vento e reagiscono alle mani del giocatore che le accarezzano per dare una grande sensazione di interattività tattile. La descrizione in breve è che ogni piuma piccola sull’uccello viene trattata come molti shader per l’erba o la vegetazione.

Vengono usate diverse onde sinusoidali sovrapposte per calcolare delle semplici interferenze usate per far muovere le piume e dare loro un po’ di vita. Il sincronismo è sfasato per ogni piuma secondo un valore casuale conservato nella colorazione dei vertici e il movimento è anch’esso scalato usando la colorazione dei vertici. Questo significa che la base delle piume non si muove, ma le punte sì. Significa anche che le piume più lunghe si muovono di più di quelle corte.

A differenza di molti shader per l’erba, le piume non devono muoversi in direzioni casuali, così non possiamo usare direzioni spaziali globali o locali. Inoltre, tutto questo è applicato su una mesh con modello, il che rende la direzione ancora più dinamica. Invece, usiamo una combinazione di normali e tangenti al vertice della piuma in modo che le piume si agitino verso l’interno, l’esterno e sui lati rispetto al loro orientamento. Non è propriamente accurato, ma per piccoli movimenti come questo non è palesemente errato.

Per gestire le interazioni con la mano, quella del giocatore ha uno script che rileva le ossa e crea una lista di capsule che seguono la forma di ogni dito e una sfera per il palmo. Se la mano è nell’intervallo, lo shader dei vertici passa in rassegna la lista delle capsule per trovare la distanza più breve da una di esse e riduce progressivamente lo sbattere delle piume se una capsula si sovrappone. Le piume vengono anche schiacciate verso il corpo. Le capsule sono più grandi poiché i test di sovrapposizione non sono rigidi, quindi non è un cambiamento sì-no istantaneo, ma graduale. È impostato grossomodo così che quando il dito visibile tocca la piuma, si arresterà completamente e andrà in giù.

Ecco un primo test di questo sistema in azione. Si può vedere come le piume reagiscano alla sfera prima ancora di toccarla, ma l’interazione è comunque convincente.

Questo è un piccolo assaggio del lavoro svolto per rendere credibile l’aspetto del nostro falco. Speriamo vi divertiate ad accarezzare, vestire, cacciare e combattere con il vostro falco.

I commenti sono chiusi.

1 Commento


    Loading More Comments

    Inserisci la tua data di nascita.

    Date of birth fields