# Vista e movimento

Per prima cosa è essenziale imparare a muoversi all'interno della scena in costruzione, per poter gestire al meglio il punto di vista e valutare spazi e posizionamenti.

È possibile sfruttare contemporaneamente il mouse (o trackpad) e la tastiera per una lavorazione ottimale.

La tastiera da sola non consente un numero illimitato di movimenti, mentre il mouse sì. La differenza però sta nel fatto che il mouse ha per sua natura dei limiti spaziali, legati alla dimensione della sua superficie d'appoggio rispetto all'ampiezza dello spostamento che si sta eseguendo, mentre la tastiera può abilitare movimenti continuativi di ampiezza illimitata (basta mantenere un tasto premuto per prolungare un comando). Al termine di questa sezione verranno quindi illustrate alcune best practice per utilizzarli insieme al fine di ottenere movimenti fluidi e posizionamenti esatti.

Se per il posizionamento degli oggetti viene considerata una condizione assoluta, con delle coordinate spaziali che vedono una convergenza al punto 0 nell'angolo in alto a sinistra della propria scena (o della mappa globale nell'open world), il movimento nello spazio assume una condizione relativa, riferendosi all'orientamento del proprio punto di vista (**PDV/POV**) per ogni singolo istante in cui avviene il movimento stesso, considerando quindi un asse orizzontale per la **x**, uno verticale per la **y**, ed uno perpendicolare a sé per la **z** sempre concordi al proprio PDV. Questo sistema cartesiano immaginario, fisso, di cui la **z** traccia una linea invisibile tra noi e l'oggetto che stiamo osservando, non ha riscontro nei riferimenti relativi allo spostamento degli oggetti stessi, se non in una specifica modalità di [traslazione su piano ortogonale](https://docs-it.coderblock.com/coderblock-studio/builder-tool-guida-avanzata/ambiente-di-lavoro/strumenti-di-progettazione/gizmo-e-manipolazione-degli-asset/posizione/spostamento-sul-piano-ortogonale). Più avanti, trattando la gestione e l'editing degli oggetti in scena, verranno assegnati a questi assi i colori di riferimento <mark style="color:red;">**rosso**</mark>**,&#x20;**<mark style="color:green;">**verde**</mark>**&#x20;e&#x20;**<mark style="color:blue;">**blu**</mark>**.**

Il PDV non può ruotare su se stesso, ma sempre relativamente a un **focus** che lo influenza, come se camminasse lungo una circonferenza o sulla superficie di una sfera sempre guardando al centro di essa. La rotazione del PDV sugli assi è possibile solo per il **panning** (asse y) e il **tilting** (asse x).

{% hint style="info" %}
Immaginando la camera in un punto fisso,  i principali movimenti sono direttamente derivati dal gergo e dalla pratica cinematografica. In questo specifico contesto ne contiamo tre, uno per ciascun asse di rotazione: <mark style="color:red;">**tilting (x)**</mark>, <mark style="color:green;">**panning (y)**</mark>, e <mark style="color:blue;">**rolling (z)**</mark>.\
Non avendo però necessità registiche/cinematiche, ma strettamente pratiche e architetturali, il movimento di rolling viene escluso dalle possibilità. Può sembrare un vincolo ma è in realtà un vantaggio in quanto consente una maggiore velocità di esecuzione nelle fasi di costruzione. L'assenza del rolling si noterà maggiormente durante la descrizione dello strumento per il [posizionamento su piano ortogonale](https://docs-it.coderblock.com/coderblock-studio/builder-tool-guida-avanzata/ambiente-di-lavoro/strumenti-di-progettazione/gizmo-e-manipolazione-degli-asset/posizione/spostamento-sul-piano-ortogonale).

**Per facilitare la distinzione tra gli assi dello spazio di lavoro, e quelli del PDV, ci riferiremo ai primi con le lettere&#x20;**<mark style="color:red;">**x**</mark>**,&#x20;**<mark style="color:green;">**y**</mark>**,&#x20;**<mark style="color:blue;">**z**</mark>**&#x20;in accordo con il sistema di coordinate spaziali, e con i termini&#x20;**<mark style="color:red;">**tilting**</mark>**,&#x20;**<mark style="color:green;">**panning**</mark>**&#x20;e&#x20;**<mark style="color:blue;">**rolling**</mark>**&#x20;nel secondo caso.**
{% endhint %}

### Focus

Quando accedi ad una scena, che sia nuova o il caricamento di una lavorazione precedente, il focus è posizionato in un punto predefinito dello spazio. I tuoi spostamenti nell'ambiente e la manipolazione degli oggetti influenzeranno il focus. La sua centratura è recuperabile attraverso il click sul tasto [**Focus Camera**](https://docs-it.coderblock.com/coderblock-studio/builder-tool-guida-avanzata/strumenti-di-progettazione/pannello-di-controllo#focus-camera) per reinizializzarlo, o premendo il **tasto F** dopo aver selezionato un oggetto, per reimpostare il focus sull'oggetto stesso. Quest'ultima operazione è molto utile quando si è coinvolti nella lavorazione di ambienti grandi, dove lo spostamento del  PDV può indurre a delle rotazioni su raggi molto ampi per l'oggetto selezionato.

### Operare con il mouse/trackpad

L'uso combinato dei tre tasti (due laterali e rotella centrale) con il movimento del mouse permette una fruizione globale dello spazio, senza limiti nella selezione e nello spostamento degli oggetti e del PDV. Se si volesse, si potrebbe quindi utilizzare solamente questo device per una lavorazione integrale, senza mai coinvolgere la tastiera (se non per le customizzazioni).

* <mark style="color:green;">**Il tasto sinistro**</mark> del mouse conserva la sua funzione primaria di **selezione**, **trascinamento** e **rilascio**, ed è associato per questo al **posizionamento** e **manipolazione degli oggetti** dall'[asset pack](https://docs-it.coderblock.com/coderblock-studio/builder-tool-guida-avanzata/ambiente-di-lavoro/strumenti-di-progettazione/asset-packs) o già presenti in scena. Un click sinistro sulla scena in un punto privo di oggetti non porterà quindi ad alcun risultato.
* Il <mark style="color:green;">**tasto destro**</mark> del mouse consente un movimento di **rotazione intorno all'**<mark style="color:green;">**asse di panning (y)**</mark> che è posizionata verticalmente sul nostro focus **e intorno all'**<mark style="color:red;">**asse di tilting (x)**</mark>, posizionata orizzontalmente . La distanza del proprio PDV dal focus point determinerà il raggio di rotazione del PDV stesso.
* Il <mark style="color:green;">**tasto centrale**</mark> del mouse, corrispondente alla rotellina, è quello che subisce più di tutti i limiti meccanici della superficie di lavoro, ma consente la gestione totale degli **spostamenti lineari**. Cliccando sulla rotellina si produrrà uno **shifting**, dove il movimento orizzontale del mouse consente uno **spostamento laterale lungo l'**<mark style="color:red;">**asse di tilting (x)**</mark>, e il movimento verticale invece, si traduce in una **elevazione lungo l'**<mark style="color:green;">**asse di panning (y)**</mark>. La rotazione della rotellina consente invece un movimento in avanti e indietro (**zoom**), quindi **in profondità lungo l'**<mark style="color:blue;">**asse di rolling (z)**</mark>.

<mark style="color:red;">**Attenzione**</mark>: non viene approfondito l'utilizzo di un **trackpad** in quanto le gesture corrispondenti ai movimenti del mouse sono specifiche per ciascun hardware in uso e potrebbero differire tra loro.

### Operare con la tastiera

Come anticipato, la tastiera consente un numero limitato di movimenti, e sono relativi solo alle funzioni di **zoom** e **shifting**, ovvero quelle associate al tasto centrale del mouse. Il vantaggio nell'utilizzo della tastiera è però legato alla **persistenza del comando**, consentendo grandi spostamenti con estrema fluidità. Infatti, se il mouse ha il limite meccanico della sua superficie di utilizzo, e il movimento nello spazio è legato al movimento del mouse, il movimento gestito dalla tastiera è invece legato alla durata della pressione dei tasti.

I pulsanti associati a tali spostamenti sono i primi 6 sul lato sinistro della tastiera così ripartiti:

* <mark style="color:green;">**A**</mark>**/**<mark style="color:green;">**D**</mark>, rispettivamente spostamento laterale vesto sinistra e verso destra, corrisponde al movimento di shifting sull'<mark style="color:red;">**asse di tilting (x)**</mark>;
* <mark style="color:green;">**Q**</mark>**/**<mark style="color:green;">**E**</mark>, consentono il movimento sul piano verticale, abbassando e alzando il PDV lungo l'<mark style="color:green;">**asse di panning (y)**</mark>;
* <mark style="color:green;">**W**</mark>**/**<mark style="color:green;">**S**</mark>, per avanzare e arretrare lungo l'<mark style="color:blue;">**asse di rolling (z)**</mark>.

<figure><img src="https://2251493269-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7Xx9MXfrv3u3rqwjPomO%2Fuploads%2FRQgijGGZQPGQ3FcdMK7X%2Fimage.png?alt=media&#x26;token=9f069b9e-ee48-4425-9590-2f856eec6915" alt="" width="563"><figcaption></figcaption></figure>

La pressione costante dei pulsanti muove il PDV lungo gli assi, ma se volessimo muoverci su un piano? È semplice: basterà dare in contemporanea i comandi per le direzioni coinvolte. Vale lo stesso per uno spostamento nello spazio tridimensionale: premendo tre pulsanti, uno per ciascun asse.\ <mark style="background-color:yellow;">Es.: voglio muovermi lungo sul piano orizzontale avanzando e spostandomi contemporaneamente verso destra, quindi premerò W e D, dosandoli per arrivare nel punto desiderato.</mark>

N.B.: come già detto all'inizio del capitolo, gli assi di spostamento sono relativi. Pertanto, se stessimo guardando il nostro ambiente dall'alto, e avessimo quindi applicato un tilt verso il basso per inquadrare la scena (come nell'immagine qui sopra), un movimento di avanzamento lungo l'<mark style="color:blue;">**asse di rolling (z)**</mark> (tasto <mark style="color:green;">**W**</mark> premuto) non sarà parallelo al piano orizzontale della scena stessa, ma diagonale rispetto ad essa, e insistendo sul movimento lo intercetteremo.

<mark style="color:red;">**Best practice**</mark>: la migliore gestione del movimento avviene con una combinazione di tastiera e mouse, dove viene affidata alla tastiera il 100% degli spostamenti lineari, zoom e shifting, ed il mouse viene utilizzato per tilting e panning, sfruttando quindi solamente il tasto destro e non il centrale.
