# Esplodere un oggetto

Ora che abbiamo il nostro modello in scena, preoccupiamoci di aggiungere un minimo di interazione, aggiungendo quella che si definisce *Modalità Explosione*.

Questa funzionalità permette di animare i songoli elementi di un modello in modo tale da "aprirlo" per poterne visualizzare meglio i dettagli.

## Aggiungere la modalità Esplosione

Per utilizzare la modalità Esplosione, andremo ad utilizzare un oggetto di Unreal Engine chiamato *Blueprint*. Un *Blueprint* (nel nostro caso si chiama *Blueprint Class*) è un elemento di codice che possiamo inserire nel livello e che aggiungerà funzionalità alla nostra scena.

{% hint style="info" %}
Per coloro che hanno qualche conoscenza di programmazione, un Blueprint è, a tutti gli effetti, una classe C++ "nascosta" dietro a un sistema di Visual Scripting.
{% endhint %}

Nessuna paura! Non dovremo "programmare" (per gli interessati all'argomento, ci vediamo in un altro manuale).

1. Aprite il *Content Drawer*
2. Navigate nella cartella *Content > CollaborativeViewer > Blueprints > Commands > Explode*
3. Selezionate *BP\_Explode (non BP\_Explode Component*!)
4. Trascinate l'oggetto nel livello

![L'aggiunta del Blueprint](https://2682668550-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOL1gGBh2paFWQtgq6tRv%2Fuploads%2F4Hw105gItGFuigqd0tDn%2Fbp-explode.png?alt=media\&token=33eec416-0cfd-456b-9e8a-58313a0fac95)

{% hint style="warning" %}
E' possibile aggiungere un singolo oggetto di questo tipo nel livello: con un numero superiore potreste avere comportamenti indesiderati!
{% endhint %}

Al contrario della cassettiera, questo elemento è "invisibile": contiene semplicemente la logica per fare funzionare il meccanismo di esplosione. Se non vi trovate in *Play Mode*, potrete individuarlo tramite una icona a forma di ingranaggio.

![L'icona del Blueprint](https://2682668550-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOL1gGBh2paFWQtgq6tRv%2Fuploads%2Frtmzm7Rz2HVgD2BWaIso%2Ficona-explode.png?alt=media\&token=7a7c7570-e098-4c85-a8e5-93ede7bf2044)

## Collegare il modello con il Blueprint

Siamo ora pronti ad aggiungere l'animazione di esplosione alla nostra cassettiera.

1. Nel pannello *Outliner* individuate l'oggetto chaimato *BP\_Explode*
2. Selezionatelo
3. Nel pannello *Details* individuate la sezione *Explode*

![La sezione Explode](https://2682668550-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOL1gGBh2paFWQtgq6tRv%2Fuploads%2FZUNhPxqC3Zf47zwtUUdL%2Fsezione-explode.png?alt=media\&token=e530376f-8f65-4b25-9e5d-311fc1462bd0)

Dobbiamo ora definire quale sarà l'oggetto da esplodere:

1. Cliccate sul pulsante "+" dell'elemento *Actors Root*
2. Cliccate sul campo *None* che verrà visualizzato
3. Selezionate *SM\_Classic\_Commode*, cioè la cassettiera nel livello

![Selezione dell'oggetto da esplodere](https://2682668550-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOL1gGBh2paFWQtgq6tRv%2Fuploads%2FDwu2aRHZJJOZh8BGtm7h%2Fselezione-root.png?alt=media\&token=747da674-d4d7-4788-80e0-190ad739660d)

I cassetti, essendo "figli" della cassettiera, verranno tracciati automaticamente.

## Creare l'effetto di esplosione

Dobbiamo ora definire lo stato di partenza del nostro modello e, per far questo, utilizzeremo lo stato in cui si trova: cassetti ben chiusi.

1. Cliccate sul pulsante *Set Initial Location*.

![Registrare la posizione iniziale](https://2682668550-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOL1gGBh2paFWQtgq6tRv%2Fuploads%2F6fEA8j1CRw6KKU1EnndZ%2Fposizione-iniziale.png?alt=media\&token=b77c86c6-b4a5-4c1a-867a-0db5faa52584)

Questa operazione registra l'oggetto principale e i suoi "figli" con le relative coordinate all'interno del campo *Initial Transform*.

Andiamo ora a posizionare i cassetti in una posizione aperta.

1. Selezionate i cassetti uno alla volta
2. Trascinateli fuori dalla cassettiera in una posizione dove sia possibile controllarne l'interno.

![La cassettiera nella posizione aperta](https://2682668550-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOL1gGBh2paFWQtgq6tRv%2Fuploads%2FdUcNUnmCk0kI8nblDBZu%2Fcassettiera-aperta.jpg?alt=media\&token=82b7c804-be33-4c28-ae3f-733812b272a1)

Registriamo questa situazione come quella "esplosa":

1. Selezionate *BP\_Explode*
2. Cliccate sul pulsante *Set Explode Location*.

![Registrare la posizione finale](https://2682668550-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOL1gGBh2paFWQtgq6tRv%2Fuploads%2FwBYA3Nfaa8P3AQ8MisSA%2Fposizione-finale.png?alt=media\&token=4e71155a-fa71-488e-bf52-0344b5ec073e)

I cassetti "torneranno" al loro posto, ma noterete che nel campo *Explode Transform* sono state registrate le posizioni finali.

{% hint style="info" %}
Tramite i pulsanti *View Explode* e *View Initial Location* potrete visionare i due stati del vostro modello.
{% endhint %}

## ...manca qualcosa?

Se provassimo ora la funzionalità ci accorgeremmo che qualcosa non va... Il perché risiede nel modo in cui i nostri modelli sono stati impostati all'interno della scena: ogni oggetto persente è, con ogni probabilità, considerato *statico*, cioè immobile.

{% hint style="info" %}
Il concetto di oggetto *statico* è un po' più complesso: si sta fondamentalmente dichiarando che non modificherà nessuna delle sue proprietà. Per una cassettiera può semplicemente dire che non si muoverà o non ruoterà, ma per una luce vuole dire che non modificherà la sua intensità o il suo colore.
{% endhint %}

Dobbiamo selezionare tutti i nostri modelli nel livello e modificare la loro mobilità da *Static* a *Movable*.

1. Selezionate ogni oggetto singolarmente (cassettiera e cassetti)
2. Nel pannello *Detail*, alla voce *Mobility* selezionate *Movable*

![La proprietà Movable](https://2682668550-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOL1gGBh2paFWQtgq6tRv%2Fuploads%2FDGrCiUhWvRc2vRrj0EvZ%2Fmovable.png?alt=media\&token=e6aeaa31-5420-40d3-ad14-7dc0be65347a)

## Utilizzare lo strumento Explode

Siamo ora pronti ad attivare la nostra animazione di esplosione e lo possiamo fare solamente in *Play Mode*.

{% hint style="info" %}
Dato che abbiamo impostato il componente *Explode*, all'interno del menu di interazione comparirà la relativa opzione.
{% endhint %}

1. Aprite il menu di interazione tramite la barra spaziatrice
2. Selezionate *Explode*
3. Selezionate *Execute*

{% embed url="<https://youtu.be/oPoCbtGaUmk>" %}
Lo strumento Esplosione in azione
{% endembed %}
