Continuo a passare una buona porzione del mio tempo libero su Unity e con il passare del tempo mi rendo conto di alcune cose.
E’ incredibile la quantità di argomenti con i quali si deve acquisire una certa familiarità prima di potere arrivare a dei risultati concreti.
Ho quindi deciso di documentare qui sopra il percorso che sto seguendo giusto perché magari potrebbe tornare utile a qualcuno e permettergli di risparmiare tempo nel fare quello che io sto cercando di fare.
La premessa fondamentale è che io so scrivere codice, anche benino tutto sommato, ma questo è condizione necessaria ma non sufficiente per riuscire a combinare qualcosa di senso compiuto in Unity.
In realtà avrei dovuto avere buona memoria e ricordare che cosa raccontavo ai bambini che seguivo quando partecipavo al CoderDojo di Buccinasco. In genere mi prendevo sempre i ragazzini che non avevano alcuna esperienza di programmazione e durante il pomeriggio li portavo a creare il loro primo gioco con Sketch.
Quando parlavo con loro dicevo che a tutti noi piace giocare con i videogiochi ma che spesso ci ritroviamo prigionieri in un mondo che ha pensato un’altra persona. Quante volte ci siamo ritrovati a domandarci: “Ma perché in questo punto del gioco non posso fare questa cosa?”. Continuavo dicendo che sarebbe stato bello scrivere un gioco così come lo avevamo immaginato noi. Una cosa costruita da noi dall’inizio alla fine ed in tutte le sue parti.
L’idea che sottintendeva a questa narrazione era scrollare di dosso la passività della fruizione di un videogioco e prendere un ruolo attivo nei confronti della tecnologia.
Per questa ragione allora dicevo che in un solo pomeriggio saremmo stati dei programmatori che avrebbero scritto il codice che avrebbe governato la logica del gioco, dei visual designer che avrebbero disegnato i personaggi e l’ambiente, dei game designer che avrebbero progettato le dinamiche di gioco ed i vari livelli, dei sound designer che avrebbero creato i suoni e la musica. Avremmo insomma indossato diversi cappelli per arrivare a sera con un oggetto funzionante.
Funzionava. Bene. Confesso che da quando mi sono trasferito a Laglio quei pomeriggi con i ragazzi sono una delle cose che mi mancano di più.
In questi giorni credo di essere io uno di quei ragazzini, con la sostanziale differenza che non c’è nessuno ad aiutarmi se non Internet, qualche libro ed una discreta dose di curiosità.
Anche qui devi indossare diversi cappelli per fare funzionare le cose.
Una delle prime cose che ho realizzato è che modellare in 3D all’interno di Unity è estremamente inefficiente. Ci sono degli strumenti che ti permettono di fare delle cose ma non sono nemmeno lontanamente paragonabili a strumenti che sono nati per fare esattamente quella cosa lì.
Per questa ragione dopo avere litigato un pomeriggio per creare un mobile ho deciso di mollare il colpo e prendere due strade differenti.
La prima strada è quella di affidarsi a dei modelli in tre dimensioni già pronti e facilmente, oddio nemmeno tanto con il senno di poi, importarbili in Unity.
La seconda strada, più complessa della prima, è quella di usare un programma dedicato di modellazione in tre dimensioni. A portata di mano c’è Blender che negli anni è evoluto in qualcosa di veramente figo. E’ chiaro che esistono strumenti professionali per questo genere di cose ma non intendo spendere migliaia di euro per una cosa che è poco più che un esperimento e un divertimento.
La curva di apprendimento diviene quindi ancora più ripida. Oltre ad imparare cosa fare con Unity devi ora anche imparare ad utilizzare Blender.
Più vado avanti e più scopro cose di cui devo avere almeno una conoscenza superficiale per continuare nel mio esperimento.
Scarico quindi qualche modello in tre dimensioni e con Blender lo modifico secondo le mie necessità. Lo salvo e lo importo nel mio progetto in Unity. Figo, tutto sembra funzionare.
Ricompilo la mia applicazione e la installo sul mio Oculus. Gli oggetti che ho importato sembrano veri.
Mi muovo nella stanza e mi rendo conto che il mio personaggio si comporta come un fantasma. Riesci, quasi come fosse una magia, a passare attraverso gli oggetti senza fare una piega.
E a quel punto capisci che durante la procedura di importazione devi selezionare il checkbox “Generate Colliders” altrimenti gli oggetti importati non avranno proprietà fisiche. In realtà la questione è un pochino più complessa ma semplifico.
Immagino che tutti i professionisti là fuori si stiano facendo delle grasse risate leggendo queste righe. E’ chiaro che sono veramente una pippa sull’argomento ma vi assicuro che mi sto divertendo un sacco. Che poi è lo scopo ultimo di qualsiasi hobby che abbia la dignità di portare questo nome.
Ad ogni modo ecco il risultato delle mie fatiche:
Nel caso questo è il link: https://vimeo.com/684213153