Pagine    Articoli    Prodotti    Forum    Cerca  
Nickname

Password


Non sei registrato?
Registrati a GPI qui!

Puoi anche attivare un vecchio utente GPI e chiedere una nuova password.
I Team

Mappa Team
I nostri utenti

Mappa Utenti
  Rain{One} IA alla portata di tutti
Pubblicato da Pasquale Sada il 2012-11-08 10:51:18

Unity 3d, grazie alla sua versatilità, si è presto imposto come il motore 3D più utilizzato in ambiente indie ed hobbistico. Sicuramente tra i suoi grandi punti di forza, c’è l’Asset Store, un vero e proprio market che fornisce agli utenti prodotti terze parti in grado di sviluppare con maggiore rapidità ed efficienza, rendendo accessibili anche funzioni non proprio semplici per i novizi. In questo tutorial tratteremo proprio di uno di questi middleware, Rain{One}, una delle migliori soluzioni per creare intelligenze artificiali complesse e tra le più semplici da implementare. Il prodotto di Rivaltheory, infatti, permette diversi livelli d’accesso che garantisco ai meno esperti tool di tutto rispetto e senza castrare le possibilità di customizzazione richieste dai più esperti. Vediamo come funziona

 

Primo Setup

 

 

 

Per scopi dimostrativi abbiamo creato un piccolo Cubo che ci farà da player(salutate Verdone! e aggiungete nell’Inspector la tag Player), un terreno con qualche montagna e una serie di case che agiranno da ostacoli. Ora è necessario importare il package di Rain{one} dopo averlo acquistato su Asset Store. La procedura di importazione non differisce da altri package scaricabili dallo store ufficiale. Se la procedura è effettuata correttamente dovremmo avere nel Menu la voce RAIN, dalla quale creeremo la nostra IA.Creiamo, infine, un gameObject vuoto, rinominiamolo target, settiamo la sua tag in target e posizioniamolo sul terreno.

 

Il primo step da effettuare è la creazione di un oggetto Recast (RAIN>>Recast>>create Recast Object). Selezionando l’oggetto Recast nella Hierarchy, dovremmo avere nell’Inspector le opzioni per settare la grid di navigazione utilizzata dal nostro player. Settiamo il Recast generetor come nell’immagine avendo cura di aggiungere nelle tags da ignorare sia player che target. Infine assegnamo come nome “PlayerGrid” al Navigation Grid Filename. Ci tornerà utile in seguito.

 

 

Il cervello (sciocco) 

 

E’ tempo di dare un cervello a Verdone. Selezioniamolo nella Hierachy, clickiamo sul menu RAIN e da li RAIN>>Create AI >> with a simple mind. Verdone finalmente sarà in grado di compiere qualche semplice operazione e muoversi vero il target. Ma prima dobbiamo aggiornare il suo path manager. Nella Hierarchy clickate su Verdone, espandete il piccolo triangolo alla sua sinistra e poi clickate su Path Manager. Utilizzate il Setup in foto.

 

 

E’ importante assicurarsi che il path manger sia settato su Use Navigation Grid e Navigation Grid Filename abbia lo stesso nome della griglia che vogliamo utilizzare. E’ fondamentale inoltre selezionare il target verso cui muovere il nostro protagonista. Rain{One} ci mette a disposizione diverse opzioni ma per questo tutorial utilizzeremo un nodo di transform. Quindi in Move Target e Look Target selezionate Transform, comparirà il campo Transform Target dove dovrete trascinare il nostro target precedentemente creato. Premete Play e godetevi la magia (ricordate mi posizionare la camera in modo tale che Verdone e il target siano visibili.)

 

I behavior tree

 

Su questa impostazione semplice è molto facile costruire qualcosa di decisamente più complesso. Rain{One} rende semplicissimi l’innesto di behavior tree piuttosto complessi (per approdondire consultate questo splendido articolo), sviluppando IA davvero interessanti. Diamo il benvenuto a Rossotto, il fratellino intelligente di Verdone. Selezionate Rossotto e questa volta seguite il seguente percorso RAIN>>Create AI >> with a behavior tree. Abbiamo appena applicato un behavior tree a Rossotto rendendolo parecchio intelligente. In unione con i sensori questo ragazzo ci darà davvero delle soddisfazioni.


 

(Una splendida foto di famiglia)



E’ giunto il momento di educare Rossotto. Dal Menu RAIN>>Behavior>> Behavior tree editor. Si aprirà una nuova finestra e da li potremo creare una nuova AI selezionando dal menu a tendina Create New Behavior Tree. I Behavior Tree di Rain{one} sono estremamente semplificati, tanto da vere azioni già impostate. Clickando sul nodo Root del BT Rossotto, facciamo tasto destro, scegliamo Create>>Actions >> detect. Si formerà un nodo verde chiamato detect. Clickandoci sopra possiamo rinominarlo in “Detect Verdone”. Seguiamo le istruzioni in foto.

 

 

In questo modo abbiamo settato un sensore sight per Russotto che cercherà l’aspetto Verdone e lo conserverà in una variabile Verdone. In soldoni Rusotto per ora può vedere tutto quello che “è Verdone” nel nostro mondo 3d. 

 

Riclickiamo su Root ma questa volta Create>>Actions >> Move. Rinominiamo l’azione in Move to Verdone e settiamo come nella foto avendo cura di scegliere come move target e look target variable e mettendoci la nostra variabile Verdone. Settiamo entrambe le velocità a 10. Chiudiamo l’editor.

 

Ora dobbiamo semplicemente aggiornare il setup delle IA e i relativi sensori. Clickiamo su Rossotto, espandiamo il triangolino a sinistra e primo step aggiornamo la "mente": clickamo su Mind nella Hierachy, e nell’Inspector settiamo come behavior tree name “Rossotto” e come Root Name root.

 

Infine aggiorniamo il sensore. Nella Hierachy selezionate sensor e assicuratevi che sotto Sensations ci sia sight e sensation name sia settato su sight. E’ il turno di Verdone. Cliccate su di lui nella Hierachy poi dal menu RAIN >>Add Aspect>> Visual. Nell’Inspector dovreste avere un Setup come in foto.



Ricordate di aggiornare Decoration con Aspect Name “Verdone”. Premete Play e godetevi la magia!

 

Conclusioni

 

Ma cosa è realmente accaduto? Il nostro verdone corre verso il target con la sua mente da sempliciotto, mentre Rossotto lo segue. Dietro le quinte non abbiamo fatto altro che assegnare a Verdone una decorazione del tipo Verdone (insomma abbiamo detto che a vederlo sembra proprio verdone). Poi abbiamo attivato “gli occhi di Rossotto” ossia il suo sensore visuale. In fine abbiamo creato un BT nel quale un nodo detect si mette in ascolto della qualità “Verdone”, quando la trova conserva in una variabile il nodo di transform che contiene quella qualità (insomma a chi appartiene quella qualità). A questo punto il BT ha il via libera per muoversi verso il nodo seguente Move To Verdone, settando l’atteggiamento di Verdone su una versione molto semplice di inseguimento. Da qui in poi settare AI complesse e personalizzate è davvero semplice ed intuitivo!  

Campagne crowfunding

Just One Line
Siamo presenti su

     
Copyright ©2016 - Manifesto - Privacy - Termini di Servizio - Community - Collaboratori - Contattaci