La transform in Unreal Engine 4: snapping, coordinate e mobility.

La transform di un oggetto in Unreal Engine 4 è l’insieme dei valori, espressi in float (ovvero numeri decimali), che indicano la posizione, la rotazione e la grandezza di tale oggetto nel mondo di gioco. Un’altra informazione che può essere contenuta – ma non sempre – dalla transform di un oggetto è la sua mobilità (mobility) ovvero se l’oggetto rimane fisso nel livello, oppure è soggetto a cambiamenti o movimenti.

Details e Panel Perspective

Per quanto possa sembrare semplice o scontato è indispensabile conoscere a pieno l’uso della transform, che non si limita all’inserire valori nel pannello Details ma anche ad un uso consapevole della Viewport. Quello che imparerete con questo articolo è evidenziato nell’immagine in sovrappressione, come notate va al di là del pannello dettagli.

I valori della transform di un oggetto ed il pannello Details

Dopo aver definito che cos’è una transform, studiamo a pieno ciascuno dei campi che esprime. Questi sono i campi che tutte le transform hanno:

  • Location: esprime la posizione dell’oggetto nel mondo di gioco o all’interno di un actor.
  • Rotation: esprime la rotazione dell’oggetto nel mondo di gioco o all’interno di un actor.
  • Scale: esprime la “scala” dell’oggetto ovvero quanto è grande rispetto a quello caricato, ad esempio mettendo un valore di 2,0 in tutti e tre gli assi, l’oggetto sarà grande il doppio rispetto al suo originale.
La transform in Unreal Engine 4 nel pannello Dettagli: Location, Rotation e Scale ergo tutti i modi per muovere, scalare e ruotare

Il modo più preciso di modificare questi valori è tramite la scheda Details dove potremo inserire dei valori precisi.

Reset Values Button Unreal Engine 4 Questo pulsante accanto ad ogni campo è il bottone Reset. Cliccandolo porterai ai valori di Default ogni valore di quel determinato campo.

Lock Button Unreal Engine 4 Questo pulsante accanto al campo Scale è il bottone Lock. Cliccandolo le variazioni fatte nei valori dello scale saranno uniformi, ovvero verranno fatte proporzionalmente in ogni asse. Per esempio, se abbiamo un oggetto con scale (1,0; 1,5; 2,0) raddoppiando il valore della X anche i valore degli altri due assi raddoppiano, lo scale risultante sarà (2,0; 3,0; 4,0).

Ricordati di questo metodo rappresentativo per il futuro, i vettori 3D si indicano come (X; Y; Z), quelli 2D come (X;Y).

Avrai notato che tutti tutte e tre i campi esprimono un vettore in 3D quindi è fondamentale la conoscenza degli assi in Unreal Engine 4 per comprendere al meglio il resto dell’articolo.

In sintesi gli assi con i relativi colori convenzionali di UE4 sono X, Y e Z.

Il translation widget e lo snapping di Unreal Engine 4: un altro modo di cambiare i valori della transform.

Translation Widget UE4

Cliccando un oggetto nella Viewport verrà reso visibile il translation widget, ovvero quel widget con le tre frecce con i colori dei rispettivi assi.

Definizione di widget: componente di un’interfaccia interattiva.

Tenendo premuto su uno dei tre assi e trascinando sarà possibile spostare l’oggetto lungo quella direzione. Inoltre possiamo anche muovere un oggetto rispetto a due assi, ovvero rispetto ad un piano, trascinando a partire dai quadratini del piano relativo. Per esempio trascinando dal quadrato con i lati rosso-blu muoveremo l’oggetto nel piano XZ, allora diremo che la Y è bloccata (constrained).

Oltre che traslare un oggetto puoi anche ruotarlo e scalarlo allo stesso modo, selezionando l’operazione desiderata tramite i bottoni WER Move Rotate Scale UE4 Muovi Ruota Scala nella Viewport, oppure tramite i tasti rapidi W (trasla), E (ruota) o R (scala).

Puoi selezionare la sensibilità (l’unità di spostamento) di tali operazioni tramite i bottoni di Snapping Snapping Buttons in Unreal Engine 4.

Puoi cambiare la prospettiva utilizzata per tali operazioni tramite il pulsante Perspective Button on Viewport UE4, molto utile se vuoi ad esempio creare un gioco in 2D e quindi evitare di muovere gli oggetti lungo uno dei tre assi.

Coordinate assolute o relative: World e Local

Tutto è relativo… frasi fatte a parte, la transform di un actor può avere valori assoluti (ovvero rispetto al mondo) oppure relativi (ovvero locali, questo vale ad esempio quando c’è un actor con più mesh: la posizione di una mesh rispetto all’altra sarà la sua posizione relativa).

Possiamo cambiare il modo di vedere le coordinate, e quindi anche le coordinate lungo le quali avviene lo snapping, tramite il bottone Wolrd/Local Button UE4 con il quale possiamo passare dalle coordinate assolute (World, quando l’icona è quella mostrata) a coordinate relative (Local) cliccandolo.

Come livellare gli oggetti sul pavimento? Tramite il surface snapping

Unreal Engine 4 permette di far posare gli oggetti sul pavimento, si tratta di un tool che modifica il valore della posizione dell’asse Z portandolo ad un valore pari all’offset.

Surface Snapping Options

Se il campo Surface Offset è pari a 0, allora l’oggetto poggierà direttamente sul pavimento. Se vogliamo che l’oggetto voli di una quantità costante, possiamo assegnare all’offset il valore desiderato maggiore di zero.

Definizione di offset: valore aggiunto.

Per far sì che il Surface Snapping funzioni devi abilitarlo tramite tick dalla Viewport (come mostrato nell’immagine) e traslare l’oggetto desiderato lungo l’asse X o Y.

Se il pavimento è inclinato, può risultare utile abilitare l’opzione “Rotate to Surface Normal” in tal modo oltre che livellare l’asse Z modificherà anche la rotazione al fine di far poggiare sul pavimento l’oggetto spostato.

La griglia (Grid) del mondo in UE4

Finalmente è arrivato il momento di cuocere un po’ di carne… ah, non parliamo di quel tipo di griglia? 😢
Se i pavimenti illustrati prima sono essenzialmente delle Brush (geometrie) o oggetti da noi importati, l’editor di Unreal Engine 4 ha un suo pavimento di base, senza in realtà alcuna collisione: la Grid. La griglia si trova in ogni punto del mondo con Z=0.

Puoi attivare come per i pavimenti il surface snapping sulla griglia cliccando il bottone centrale mostrato nell’immagine precedente.

Snapping Base Size UE4

Aumentando la sensibilità dello Snapping la Grid diventerà più definita.

La mobility (mobilità) di un actor

Non tutti gli actor hanno nella sezione transform la mobility, perché alcuni hanno delle impostazioni predefinite: per esempio i personaggi (characters) devono muoversi, quindi saranno “Movable”, le brushes (le geometrie che formano i pavimenti di gioco) sono fatte per rimanere ferme quindi sono “Static”.

Per altri actor dovremo specificarlo noi scegliendo dalla sezione Transform della scheda Details tra:

Mobility UE4
  • Static: è un oggetto che non cambia durante il gioco, perciò rimane fermo e invariato.
    Per esempio i pavimenti o delle mura indistruttibili.
  • Stationary: è un oggetto immobile ma che varia durante il gioco.
    Per esempio un palloncino che cambia di scale perché viene gonfiato, rimanendo però fermo nel punto in cui è.
  • Movable: è un oggetto che si muove e può variare durante il gioco.

Se impostiamo la Mobility di un oggetto a “Movable” anche se in realtà è statico non avremo alcun problema ma attenzione: i movable richiedono una maggiore forza computazionale poiché il gioco dovrà verificare ad ogni istante di gioco (tick) la variazione della posizione dell’oggetto.

Quindi a cosa serve la mobility? A definire manualmente se l’oggetto si muove o meno, per una questione di sforzo nel rendering, che è causato anche dal metodo con cui sono tracciate le ombre: è logico che un oggetto immobile in tal senso formerà un’ombra anch’essa immobile che quindi richiederà il minimo sforzo da parte della GPU.

Cosa hai imparato

  1. Che cos’è una transform in Unreal Engine 4
  2. Quali valori comprende la transform e cosa esprime ciascuno di essi
  3. Come modificare tali valori tramite la scheda dettagli
  4. Cos’è e come si usa il translation widget per le tre operazioni
  5. Come impostare la sensibilità dello Snapping
  6. Come impostare la prospettiva nella Viewport
  7. La differenza tra le coordinate assolute e relative e come scegliere quali visualizzare
  8. Cos’è il surface snapping: come livellare gli oggetti sul pavimento
  9. Cos’è la Grid (griglia) del mondo
  10. Cos’è la mobility di un actor, quando è presente, quali modalità esistono e perché selezionarla con cura.

Questo articolo era ricco di contenuti ma guarda il lato positivo: nel prossimo finalmente schiaccieremo quel benedetto pulsante “Play” finendo la costruzione delle nostre fondamenta dell’engine. Inoltre adesso puoi dire realmente di conoscere tutto sulla transform di Unreal Engine 4 e di conoscere l’uso di quasi tutti i pulsanti della Viewport.

Perfavore, disabilita adblock o metti il sito nella whitelist!
Le pubblicità ci fanno andare avanti coprendo spese e ripagando il tempo investito.