Mudanças entre as edições de "Unity"

De Cliomatica - Digital History
 
(21 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 
{{articolo|
 
{{articolo|
nome=|
+
nome=Stefano|
 
cognome=Moscatelli|
 
cognome=Moscatelli|
 
testo=
 
testo=
  
== 1. Introduzione ==
+
== ''Introduzione'' ==
  
 
Unity è un motore grafico multipiattaforma sviluppato dalla compagnia americana Unity Technologies a partire dal 2005 <ref>https://arstechnica.com/gaming/2016/09/unity-at-10-for-better-or-worse-game-development-has-never-been-easier/. Consultato il 29/11/2020.</ref>. La sua ultima versione stabile risale al 1.10.2020 (2020.1.7).
 
Unity è un motore grafico multipiattaforma sviluppato dalla compagnia americana Unity Technologies a partire dal 2005 <ref>https://arstechnica.com/gaming/2016/09/unity-at-10-for-better-or-worse-game-development-has-never-been-easier/. Consultato il 29/11/2020.</ref>. La sua ultima versione stabile risale al 1.10.2020 (2020.1.7).
Linha 11: Linha 11:
  
 
Tra i punti di forza Unity si riscontrano:
 
Tra i punti di forza Unity si riscontrano:
- interfaccia intuitiva e personalizzabile;
 
- una nutrita community;
 
- documentazione esaustiva;
 
- API in C#;
 
- funzionalità drag and drop;
 
- asset store proprietario;
 
- compilatore multipiattaforma.
 
  
Queste caratteristiche lo rendono uno strumento ideale nell'ambito delle Digital Humanities e in particolare per la ricostruzione di eventi e ambienti virtuali nell’ottica della fruizione museale o di condivisione di progetti umanistici più o meno specialistici con un ampio pubblico <ref> Per dare un'idea delle potenzialità che si schiudono per l'ambito storico, si veda il progetto della Duke University di "decostruzione" delle mappe antiche tramite GIS e game engine come Unity. </ref>.
+
* interfaccia intuitiva e personalizzabile;
  
 +
* una nutrita community;
  
== 2. Interfaccia ==
+
* documentazione esaustiva;
 +
 
 +
* API in C#;
 +
 
 +
* funzionalità drag and drop;
 +
 
 +
* asset store proprietario;
 +
 
 +
* compilatore multipiattaforma.
 +
 
 +
Queste caratteristiche lo rendono uno strumento ideale nell'ambito delle Digital Humanities e in particolare per la ricostruzione di eventi e ambienti virtuali nell’ottica della fruizione museale o di condivisione di progetti umanistici più o meno specialistici con un ampio pubblico <ref> Per dare un'idea delle potenzialità che si schiudono per l'ambito storico, si veda il progetto della Duke University di "decostruzione" delle mappe antiche tramite GIS e game engine come Unity. https://bassconnections.duke.edu/project-teams/mapping-history-seeing-premodern-cartography-through-gis-and-game-engines-2020-2021. Consultato il 30/11/2020. </ref>.
 +
 
 +
 
 +
== ''Interfaccia'' ==
  
 
Si presenta di seguito l'interfaccia di default della versione 2019.3.15f1.
 
Si presenta di seguito l'interfaccia di default della versione 2019.3.15f1.
  
[[Arquivo:InMoscatelli1.png|500px]]
+
[[Arquivo:InMoscatelli1.png|800px|thumb|center|''Figura 1. Ambiente di lavoro in Unity.'']]
 +
 
 +
===''Gerarchia''===
 +
 
 +
In Unity tutti gli oggetti in scena sono rappresentati come relazioni gerarchiche. Si possono avere oggetti allineati tutti sullo stesso piano (fratelli) o progressivamente incassati (padre-figlio o avo-discendente, a seconda del grado di profondità). Gli oggetti discendenti erediteranno alcune caratteristiche dai padri, come la posizione relativa nello spazio di scena o le proporzioni. Tipicamente all'avvio di ogni progetto verranno creati automaticamente una Main Camera (che permette di seguire l'azione a partire da un certo punto di vista, i cui parametri si possono modificare in Inspector) e una Directional Light (un tipo particolare di sorgente luminosa che simula la luce solare). Ogni oggetto è identificato da un nome da un'icona a forma di cubo a fianco. Se questa è azzurra, vuol dire che l'oggetto in scena è collegato a un modello (prefab) presente negli asset. Un prefab è un particolare tipo di oggetto salvato negli asset che consente di modificare tutte le sue istanze (ovvero gli oggetti rappresentati effettivamente in scena) con un solo passaggio modificandone il relativo schema (blueprint). Ad esempio, se cambierò il colore del cubo attraverso il blueprint, tutte le istanze in scena di quel cubo assumeranno immediatamente lo stesso colore.
 +
 
 +
[[Arquivo:InMoscatelli2.png|800px|thumb|center|''Figura 2. Blueprint di un prefab'']]
 +
 
 +
Attraverso il pulsante a forma di croce è possibile aggiungere rapidamente alla scena alcuni tipi di oggetti:
 +
 
 +
* Create Empty/Create Empty Child: permette di creare un oggetto vuoto e invisibile sulla scena. Di solito è utilizzato come recipiente per attivare degli script sulla scena o per raggruppare tutti gli oggetti coerenti all'interno di una gerarchia. Ad esempio, è sensato creare un oggetto vuoto "Casa" contenente gli oggetti suoi figli "Perimetro", "Tetto" e "Pavimento".
 +
 
 +
* 3D Object: permette di creare un solido tra i predefiniti di Unit (cubo, sfera, capsula, cilindro, piano e quad, terreni, alberi e testo 3D). Menzione particolare va all'oggetto terreno, un piano che è possibile modellare a proprio piacimento con gli strumenti di sculpting già presenti in Unity e a cui è possibile applicare layers di texture o modelli di alberi.
 +
 
 +
[[Arquivo:InMoscatelli3.png|800px|thumb|center|''Figura 3. Lo strumento terrain.'']]
 +
 
 +
* 2D Object: oggetti per lavorare in ambiente bidimensionale. L’utilizzo è limitato a contesti particolari, normalmente si lavorerà in contesti tridimensionali.
 +
 
 +
* Effects: sotto questa voce si ritrovano gli effetti particellari e altri effetti grafici.
 +
 
 +
* Light: La luce è implementabile principalmente in tre forme:
 +
** Luce direzionale (Directional light): simula una fonte luminosa approssimabile al sole;
 +
** Punto luce (Point light): simula la radiazione di luce a partire da un punto;
 +
** Faretto (Spotlight): un fascio conico di luce proveniente da un punto.
 +
 
 +
* Audio: crea degli oggetti vuoti adatti a contenere delle tracce audio compatibili.
 +
 
 +
* Video: crea degli oggetti vuoti adatti a contenere delle tracce video compatibili.
 +
 
 +
* UI: oggetti che servono a creare interfacce utente complete (pannelli, slider, aree di testo, pulsanti, menù a tendina).
 +
 
 +
* Camera: permette di aggiungere altri oggetti che riprendono la scena da punto di vista, in aggiunta a quello predefinito. Può esserci solo una Main Camera alla volta.
 +
 
 +
===''Strumenti rapidi''===
 +
 
 +
Con questi pulsanti, richiamabili anche con scorciatoie da tastiera, è possibile agire rapidamente sulla posizione, rotazione e proporzione degli oggetti nello spazio.
 +
 
 +
* Hand Tool (tasto Q): permette di muoversi sulla scena lungo un asse orizzontale o verticale.
 +
 
 +
* Move Tool (tasto W): visualizza sull'oggetto un'interfaccia composta da tre frecce e tre piani colorati. Cliccando e tenendo premuto su uno di questi componenti permette di muovere l'oggetto su un piano o su un asse.
 +
 
 +
* Rotate Tool (tasto E): attiva un'interfaccia composta da tre cerchi colorati. Cliccando su uno di questi si ruoterà l'oggetto sull'asse corrispondente.
 +
 
 +
* Scale Tool (tasto R): attiva un'interfaccia composta da 3 assi colorati e un cubo grigio al centro. Trascinando uno degli assi si modificherà la proprozione dell'oggetto lungo quell'asse. Agendo sul centro verranno modificati tutti gli assi contemporaneamente.
 +
 
 +
* Rect Tool (tasto T): attiva un'interfaccia che permette di modificare le proporzioni di un oggetto lungo due dimensioni tramite maniglie. Valido anche per le interfacce utente, solitamente bidimensionali.
 +
 
 +
* MRS Tool (tasto Y): attiva contemporaneamente il Move Tool, il Rotate Tool e lo Scale Tool.
 +
 
 +
===''Controllo scena''===
 +
 
 +
Con le etichette è possibile cambiare pannello di visualizzazione. Il predefinito è scena, e ci mostra il "dietro le quinte" della scena che stiamo costruendo, con le sue griglie ed interfacce ad hoc. La game view permette di vedere la scena così come inquadrata dalla Main Camera, senza ulteriori interfacce se non quella utente. La scheda asset store richiama il negozio virtuale di Unity, in cui è possibile importare, gratuitamente o a pagamento, librerie, estensioni e risorse da essere impiegate nei progetti. Animator richiama un pannello destinato di gestione delle animazioni destinato agli utenti intermedi. Tra i pulsanti al di sotto, uno dei più utilizzati è il 2D, usato per "appiattire" la scena tridimensionale in due dimensioni e lavorare correttamente sulle interfacce.
 +
 
 +
===''Avvio scena''===
 +
 
 +
La bottoniera al di sopra della scena permette di avviare l'applicazione, mettere in pausa l'esecuzione o di fermarla del tutto.
 +
 
 +
===''Scene view''===
 +
 
 +
Mostra la disposizione nello spazio degli oggetti di scena attraverso un punto di vista svincolato da quello della Main Camera. Di default la scena sarà vuota e verrà rappresentato un campo che si estende indefinitamente in ogni direzione. In alto a destra è un comodo strumento che permette di allineare il punto di vista esattamente su uno degli assi e di cambiare modalità prospettica. L'interfaccia si aggiornerà anche in caso di rotazione manuale col mouse, tipicamente con il trascinamento del tastro destro. Al di sotto una stringa segna la modalità di visione. Con la modalità "Persp" gli oggetti verranno mostrati in prospettiva, come nel mondo reale, per cui gli oggetti più lontani saranno più piccoli e quelli più vicini più grandi. Cliccandoci si passerà alla modalità "Iso", modalità che annulla la distorsione prospettica e mostra gli oggetti nelle loro dimensioni di scena.
 +
 
 +
===''Inspector''===
 +
 
 +
In questa barra verranno visualizzati tutti i moduli relativi a un oggetto quando cliccato e permette di modificare i parametri nelle caselle apposite o di aggiungere, spostare e rimuovere moduli. In Unity si agisce su degli oggetti, rappresentati tramite dei moduli (Components) a essi applicati, materializzati su un ambiente con delle proprie caratteristiche fisiche globali. Tra i moduli più comuni, visualizzabili nel pannello di ispezione (Inspector) ritroviamo:
 +
 
 +
* Transform: definisce i valori di posizione (Position) nella scena, di rotazione (Rotation) e proporzione (Scale) sui tre assi;
 +
 
 +
* MeshFilter e MeshRenderer: permettono la resa grafica dell'oggetto nel mondo, attraverso la mesh poligonale e il materiale a essa associato;
 +
 
 +
* Collider: dei cubi (o altri poligoni) che circondano l'oggetto e che individuano le collisioni con l'ambiente o con altri oggetti;
 +
 
 +
* Shader: definisce come viene computato il colore dei pixel in base alla luce. È possibile anche definire dei propri shader.
 +
 
 +
===''Asset''===
 +
 
 +
Gli asset sono le risorse a disposizione del programmatore che può sfruttare all'interno del progetto. Qualsiasi tipo di file compatibile con Unity è considerato un asset, a partire dai formati audio/video fino ai file di testo o modelli 3D realizzati con altri applicativi. Buona parte degli asset è applicabile alla scena semplicemente trascinandoli dal riquadro all'interno della scene view. Lo slider in basso a destra permette di modificare lo zoom e la quantità di asset visualizzabili.
 +
 
 +
==''Hands on: una libreria sonora virtuale''==
 +
 
 +
Partendo dall’idea di un archivio virtuale dei suoni, questa semplice applicazione permette di acquisire dimestichezza con le caratteristiche base di Unity analizzando il “dietro le quinte” del codice, con l’augurio di fornire un modello sufficiente a cimentarsi nella realizzazione dei propri progetti. L’archivio virtuale dei suoni è disponibile sia in versione eseguibile (per ambienti Windows) sia in package da scompattare nell’ambiente di lavoro di Unity.
 +
 
 +
 
 +
[https://lhs.unb.br/wiki_files/ArchivioSonoroUnity.rar Archivio]
 +
 
  
 
}}
 
}}

Edição atual tal como às 15h29min de 23 de junho de 2021

Tempo di lettura 11 minuti - per Stefano Moscatelli


Introduzione

Unity è un motore grafico multipiattaforma sviluppato dalla compagnia americana Unity Technologies a partire dal 2005 [1]. La sua ultima versione stabile risale al 1.10.2020 (2020.1.7).

Insieme al competitor Unreal Engine, Unity è attualmente uno dei motori più utilizzati per lo sviluppo di videogiochi e applicazioni interattive di realtà aumentata o virtuale, sia in 2D che in 3D (per una stima del 60% delle applicazioni rilasciate, secondo un'indagine del 2018 [2]). Per la sua versatilità e potenza è stato anche impiegato nell'industria cinematografica nella miniserie Adam [3].

Tra i punti di forza Unity si riscontrano:

  • interfaccia intuitiva e personalizzabile;
  • una nutrita community;
  • documentazione esaustiva;
  • API in C#;
  • funzionalità drag and drop;
  • asset store proprietario;
  • compilatore multipiattaforma.

Queste caratteristiche lo rendono uno strumento ideale nell'ambito delle Digital Humanities e in particolare per la ricostruzione di eventi e ambienti virtuali nell’ottica della fruizione museale o di condivisione di progetti umanistici più o meno specialistici con un ampio pubblico [4].


Interfaccia

Si presenta di seguito l'interfaccia di default della versione 2019.3.15f1.

Figura 1. Ambiente di lavoro in Unity.

Gerarchia

In Unity tutti gli oggetti in scena sono rappresentati come relazioni gerarchiche. Si possono avere oggetti allineati tutti sullo stesso piano (fratelli) o progressivamente incassati (padre-figlio o avo-discendente, a seconda del grado di profondità). Gli oggetti discendenti erediteranno alcune caratteristiche dai padri, come la posizione relativa nello spazio di scena o le proporzioni. Tipicamente all'avvio di ogni progetto verranno creati automaticamente una Main Camera (che permette di seguire l'azione a partire da un certo punto di vista, i cui parametri si possono modificare in Inspector) e una Directional Light (un tipo particolare di sorgente luminosa che simula la luce solare). Ogni oggetto è identificato da un nome da un'icona a forma di cubo a fianco. Se questa è azzurra, vuol dire che l'oggetto in scena è collegato a un modello (prefab) presente negli asset. Un prefab è un particolare tipo di oggetto salvato negli asset che consente di modificare tutte le sue istanze (ovvero gli oggetti rappresentati effettivamente in scena) con un solo passaggio modificandone il relativo schema (blueprint). Ad esempio, se cambierò il colore del cubo attraverso il blueprint, tutte le istanze in scena di quel cubo assumeranno immediatamente lo stesso colore.

Figura 2. Blueprint di un prefab

Attraverso il pulsante a forma di croce è possibile aggiungere rapidamente alla scena alcuni tipi di oggetti:

  • Create Empty/Create Empty Child: permette di creare un oggetto vuoto e invisibile sulla scena. Di solito è utilizzato come recipiente per attivare degli script sulla scena o per raggruppare tutti gli oggetti coerenti all'interno di una gerarchia. Ad esempio, è sensato creare un oggetto vuoto "Casa" contenente gli oggetti suoi figli "Perimetro", "Tetto" e "Pavimento".
  • 3D Object: permette di creare un solido tra i predefiniti di Unit (cubo, sfera, capsula, cilindro, piano e quad, terreni, alberi e testo 3D). Menzione particolare va all'oggetto terreno, un piano che è possibile modellare a proprio piacimento con gli strumenti di sculpting già presenti in Unity e a cui è possibile applicare layers di texture o modelli di alberi.
Figura 3. Lo strumento terrain.
  • 2D Object: oggetti per lavorare in ambiente bidimensionale. L’utilizzo è limitato a contesti particolari, normalmente si lavorerà in contesti tridimensionali.
  • Effects: sotto questa voce si ritrovano gli effetti particellari e altri effetti grafici.
  • Light: La luce è implementabile principalmente in tre forme:
    • Luce direzionale (Directional light): simula una fonte luminosa approssimabile al sole;
    • Punto luce (Point light): simula la radiazione di luce a partire da un punto;
    • Faretto (Spotlight): un fascio conico di luce proveniente da un punto.
  • Audio: crea degli oggetti vuoti adatti a contenere delle tracce audio compatibili.
  • Video: crea degli oggetti vuoti adatti a contenere delle tracce video compatibili.
  • UI: oggetti che servono a creare interfacce utente complete (pannelli, slider, aree di testo, pulsanti, menù a tendina).
  • Camera: permette di aggiungere altri oggetti che riprendono la scena da punto di vista, in aggiunta a quello predefinito. Può esserci solo una Main Camera alla volta.

Strumenti rapidi

Con questi pulsanti, richiamabili anche con scorciatoie da tastiera, è possibile agire rapidamente sulla posizione, rotazione e proporzione degli oggetti nello spazio.

  • Hand Tool (tasto Q): permette di muoversi sulla scena lungo un asse orizzontale o verticale.
  • Move Tool (tasto W): visualizza sull'oggetto un'interfaccia composta da tre frecce e tre piani colorati. Cliccando e tenendo premuto su uno di questi componenti permette di muovere l'oggetto su un piano o su un asse.
  • Rotate Tool (tasto E): attiva un'interfaccia composta da tre cerchi colorati. Cliccando su uno di questi si ruoterà l'oggetto sull'asse corrispondente.
  • Scale Tool (tasto R): attiva un'interfaccia composta da 3 assi colorati e un cubo grigio al centro. Trascinando uno degli assi si modificherà la proprozione dell'oggetto lungo quell'asse. Agendo sul centro verranno modificati tutti gli assi contemporaneamente.
  • Rect Tool (tasto T): attiva un'interfaccia che permette di modificare le proporzioni di un oggetto lungo due dimensioni tramite maniglie. Valido anche per le interfacce utente, solitamente bidimensionali.
  • MRS Tool (tasto Y): attiva contemporaneamente il Move Tool, il Rotate Tool e lo Scale Tool.

Controllo scena

Con le etichette è possibile cambiare pannello di visualizzazione. Il predefinito è scena, e ci mostra il "dietro le quinte" della scena che stiamo costruendo, con le sue griglie ed interfacce ad hoc. La game view permette di vedere la scena così come inquadrata dalla Main Camera, senza ulteriori interfacce se non quella utente. La scheda asset store richiama il negozio virtuale di Unity, in cui è possibile importare, gratuitamente o a pagamento, librerie, estensioni e risorse da essere impiegate nei progetti. Animator richiama un pannello destinato di gestione delle animazioni destinato agli utenti intermedi. Tra i pulsanti al di sotto, uno dei più utilizzati è il 2D, usato per "appiattire" la scena tridimensionale in due dimensioni e lavorare correttamente sulle interfacce.

Avvio scena

La bottoniera al di sopra della scena permette di avviare l'applicazione, mettere in pausa l'esecuzione o di fermarla del tutto.

Scene view

Mostra la disposizione nello spazio degli oggetti di scena attraverso un punto di vista svincolato da quello della Main Camera. Di default la scena sarà vuota e verrà rappresentato un campo che si estende indefinitamente in ogni direzione. In alto a destra è un comodo strumento che permette di allineare il punto di vista esattamente su uno degli assi e di cambiare modalità prospettica. L'interfaccia si aggiornerà anche in caso di rotazione manuale col mouse, tipicamente con il trascinamento del tastro destro. Al di sotto una stringa segna la modalità di visione. Con la modalità "Persp" gli oggetti verranno mostrati in prospettiva, come nel mondo reale, per cui gli oggetti più lontani saranno più piccoli e quelli più vicini più grandi. Cliccandoci si passerà alla modalità "Iso", modalità che annulla la distorsione prospettica e mostra gli oggetti nelle loro dimensioni di scena.

Inspector

In questa barra verranno visualizzati tutti i moduli relativi a un oggetto quando cliccato e permette di modificare i parametri nelle caselle apposite o di aggiungere, spostare e rimuovere moduli. In Unity si agisce su degli oggetti, rappresentati tramite dei moduli (Components) a essi applicati, materializzati su un ambiente con delle proprie caratteristiche fisiche globali. Tra i moduli più comuni, visualizzabili nel pannello di ispezione (Inspector) ritroviamo:

  • Transform: definisce i valori di posizione (Position) nella scena, di rotazione (Rotation) e proporzione (Scale) sui tre assi;
  • MeshFilter e MeshRenderer: permettono la resa grafica dell'oggetto nel mondo, attraverso la mesh poligonale e il materiale a essa associato;
  • Collider: dei cubi (o altri poligoni) che circondano l'oggetto e che individuano le collisioni con l'ambiente o con altri oggetti;
  • Shader: definisce come viene computato il colore dei pixel in base alla luce. È possibile anche definire dei propri shader.

Asset

Gli asset sono le risorse a disposizione del programmatore che può sfruttare all'interno del progetto. Qualsiasi tipo di file compatibile con Unity è considerato un asset, a partire dai formati audio/video fino ai file di testo o modelli 3D realizzati con altri applicativi. Buona parte degli asset è applicabile alla scena semplicemente trascinandoli dal riquadro all'interno della scene view. Lo slider in basso a destra permette di modificare lo zoom e la quantità di asset visualizzabili.

Hands on: una libreria sonora virtuale

Partendo dall’idea di un archivio virtuale dei suoni, questa semplice applicazione permette di acquisire dimestichezza con le caratteristiche base di Unity analizzando il “dietro le quinte” del codice, con l’augurio di fornire un modello sufficiente a cimentarsi nella realizzazione dei propri progetti. L’archivio virtuale dei suoni è disponibile sia in versione eseguibile (per ambienti Windows) sia in package da scompattare nell’ambiente di lavoro di Unity.


Archivio


Bibliografia e sitografia

  1. https://arstechnica.com/gaming/2016/09/unity-at-10-for-better-or-worse-game-development-has-never-been-easier/. Consultato il 29/11/2020.
  2. https://www.dailydot.com/debug/unity-deempind-ai/. Consultato il 29/11/2020.
  3. https://unity.com/madewith/adam. Consultato il 29/11/2020.
  4. Per dare un'idea delle potenzialità che si schiudono per l'ambito storico, si veda il progetto della Duke University di "decostruzione" delle mappe antiche tramite GIS e game engine come Unity. https://bassconnections.duke.edu/project-teams/mapping-history-seeing-premodern-cartography-through-gis-and-game-engines-2020-2021. Consultato il 30/11/2020.



Citazione di questo articolo
Come citare: MOSCATELLI, Stefano . "Unity". In: CLIOMATICA - Portale di Storia Digitale e ricerca. Disponibile in: http://lhs.unb.br/cliomatica/index.php/Unity. il giorno: 3/07/2024.






Informare errori in questa pagina