Un film d’animazione 3D o un videogioco fa spesso uso di elementi geometrici ripetuti, che danno forma, per esempio, a capelli e vegetazione. Chiaramente questi dettagli non possono essere modellati singolarmente, per cui esistono XGen, un plugin all’interno di Maya che permette di generare un gran numero di geometrie che si ripetono.
In questo tutorial andremo a vedere come applicare questo strumento per creare un manto erboso, da usare per un’ambientazione naturalistica. Prima di addentrarci nella creazione dell’erba, dovremo tuttavia prima creare un terreno adatto, adeguatamente spesso e vario, proprio come la superficie di un giardino.
Creare il terreno usando una Normal Map
Creiamo quindi un Plane e aggiungiamo un numero piuttosto elevato di suddivisioni. A questo punto, dobbiamo creare un deformatore tramite texture, cliccando sulla voce del menu in alto Deform, Texture. Una volta applicato il deformer, clicchiamo sul Plane e spostiamoci nell’Attribute Editor, dove si trova la voce textureDeformer1.
Clicchiamo sul riquadro bianco a nero stile tavolo da scacchi vicino alla parola Texture. In questo modo si aprirà la finestra Create Render Node, da cui potremo caricare tramite l’opzione File un’immagine che definirà l’aspetto della superficie del Plane.
L’immagine, che scaricheremo da Internet, deve contenere diversi punti bianchi e neri, un po’ come lo schermo della televisione quando non si sintonizza il canale. In gergo tecnico questo tipo d’immagine si chiama “noise”, ed è così che potremo cercarla su Google.
Questa alternanza tra bianco e nero fungerà da Normal Map, ossia fornirà le informazioni a Maya per generare una geometria con alti e bassi. Di seguito riportiamo un esempio di immagine da usare come base.
Una volta cliccato su File, si aprirà un nuovo menu nell’Attribute Editor, dal titolo file1; qui, sotto la voce File Attributes, clicchiamo sulla cartellina gialla vicino a Image Name, e importiamo l’immagine che abbiamo appena scaricato. L’effetto che otteniamo aggiungendo il noise sarà immediatamente visibile. A sinistra nell’Attribute Editor troviamo uno slider denominato Strength, che permette di impostare appunto l’intensità dell’effetto, e di conseguenza l’asperità del terreno. Abbassiamola solo leggermente, arrivando fino a 0.800.
Creare una nuova descrizione XGen
Il prossimo passo da compiere è andare nelle tab superiori di Maya e cliccare sulla voce XGen. A questo punto, si aprirà un nuovo menu, e dovremo cliccare sull’icona a forma di X, all’estrema sinistra. Si aprirà a destra un’altra finestra, chiamata “Getting started with XGEN”, dove dovremo cliccare sul tasto Create New Description… Nel menu successivo, diamo un nome alla descrizione e lasciamo tutte le impostazioni così come sono.
Tali impostazioni infatti sono le più adatte per i nostri scopi, in quanto ci permettono di creare una serie di Spline sparse casualmente attraverso la superficie, con proprietà definite da un’espressione.
Se adesso diamo invio, vediamo qualcosa di molto simile a un manto erboso, sebbene le primitive, ossia i futuri fili d’erba, siano molto radi e la loro forma lasci piuttosto a desiderare. Andiamo quindi nel menu XGen, che ora si trova dove di solito l’Attribute Editor, e clicchiamo sulla tab Primitives. Qui, dobbiamo gestire la cosiddetta Width Ramp.
La Width Ramp gestisce gli spessori delle primitive. Selezioniamo la voce Spline dal menu a tendina e impostiamo le curve cliccando sulla Width Ramp; ogni volta che cliccheremo sull’onda questa creerà un nuovo punto di riferimento, creiamo cinque punti di riferimento con un andamento che va dal basso verso l’alto e poi nuovamente verso il basso. Il risultato prodotto sarà una serie di fili d’erba con una forma molto più credibile rispetto a quella con cui avevamo iniziato.
Creare dei fili d’erba di grandezza variabile
Tramite delle espressioni matematiche possiamo rendere casuale la distribuzione e l’aspetto dei singoli fili d’erba, il che è particolarmente utile perché in natura non esiste simmetria da questo punto di vista, e se quindi tutti gli steli fossero uguali il risultato sarebbe incredibilmente artificioso.
Andiamo nell’XGen Editor e, alla voce Length nella lista Primitive Attributes troveremo uno slider, e al suo fianco un tasto contraddistinto dalla sigma dell’alfabeto greco.
Clicchiamoci sopra e apriremo il menu XGen Expression Editor: length; nella finestra in basso, sotto l’espressione già presente, aggiungiamo l’espressione: $a * rand(.5,1.5,1)
, che farà sì che i fili d’erba siano di lunghezza diversa e (almeno virtualmente) randomica.