
Scopo del progetto è quello di creare un personaggio di animazione tramite modellazione 3d e resa; quindi creare una scena dove inserire il personaggio e sviluppare un'animazione di un centinaio di frame con risoluzione 300x300 utilizzando gli strumenti xccurv, xcsurf, xcrayt e xcview presenti in xcmodel.
All'interno di questa relazione saranno descritte le tecniche utilizzate per la creazione dei vari oggetti utilizzati per la costruzione del personaggio, della scena, degli oggetti della scena e dall'animazione: se un singolo oggetto è formato da più superfici, saranno assemblate nella fase di modellazione e utilizzate nelle fasi successive (resa e animazione).La modellazione geometrica delle superfici sarà creata con XCCurv e XCSurf, dove il primo è uno strumento specializzato alla creazione di curve 2D, mentre il secondo è in grado di creare curve 2D e 3D e (anche tramite ques'ultime) è in grado di creare ogni tipo di superficie in 3D.
La resa realistica e l'animazione sarà fatta attraverso la scrittura di uno script in C che utilizza la libreria "descriptor.h" e assistita tramite il programma XCRayt.
L'animazione sarà visibile utilizzando XCView, il quale è in grado di leggere i formati hr e hra (resa il primo, resa e animazione il secondo) che sono entrambi formati "proprietari" di XCModel.
Progettazione del personaggio (Willy il Coyote)
Si è pensato di creare, come personaggio di animazione, Willy il coyote: personaggio degli anni 50 e 60 (prima apparizione 16 settembre 1949) del cartone animato "Wile E. Coyote and Road Runner" (conosciuto in Italia come "Willy il Coyote e Beep Beep") della Warner Bros, dove è stato recentemente costruito un modello 3D del personaggio inserito nel film "Looney Tunes Back in Action" del 2003 (anche quest'ultimo della Warner Bros).
Il personaggio Willy è composto dalle seguenti superfici:

Il piede si può suddividere in due parti:
Le dita del piede sono state create tramite skinning di tre curve, dove la prima è stata creata in XCCurv e la seconda e la terza sono state copiate e scalate dalla prima (di cui la terza scalata a un punto) con XCSurf. Questo modello è stato utizzato per tutte le dita del piede del personaggio.

Mentre la per pianta del piede sono state utilizzate due superfici con extruding utilizzando 3 curve.

La gamba è stata creata tramite Extruding di sette curve dove una di queste (quella verde nell'immagine) è quella della pianta del piede vista precedentemente.

Il busto è stato creato tramite Skinning di sei curve: la prima creata in XCCurv e inserita in XCSurf mentre le altre (tranne quella in bianco nella figura), derivano dalla prima. La curva selezionata (quella in bianco) verrà usata per la creazione del collo, che vedremo di seguito.

Il collo è stato creato con Extruding di due curve, dove la curva verde in figura è praticamente quella del busto. Come si può vedere in "side" la curva in alto non è uguale all'altra: oltre ad essere stata copiata e traslata rispetto alla curva verde è stato anche fatto uno scale.

La realizzazione della coda è stata fatta in maniera particolare:

Il braccio è stato modellato con Extruding di quattro curve.

Come nel piede, anche la mano si divide in pianta della mano e dita, e le superfici sono state modellate con lo stesso procedimento utilizzato nel piede.
La faccia è composta da:

La progettazione della faccia è stata la parte più dura del progetto: per la sua realizzazione è stato necessario progettare il modello prima su carta e poi con XCModel.
La prima superficie sviluppata è stata il naso. Quest'ultima si divide in due superfici: la prima è stata fatta con Revolution di una curva creata in XCCurv e in seguito è stato ridotto rispetto l'asse delle Z.

Mentre la seconda superficie è una semplice sfera creata con Usual

In seguito sono state costruite le guance. Anche queste sono state fatte con Revolution, utilizzando una curva costruita precedentemente in XCCurv. Poi sono state scalate (e ruotate) finché non si è raggiunta la forma desiderata.

Dopo le guance è stata fatta la testa. Anche questa superficie è stata fatta con Revolution.

Gli occhi sono due sfere fatte con Usual e ristrette con scale nell'asse delle Y. Per fare le pupille sono state aggiunte due altre sfere nell'occhio.

Per le ciglia è stata costruita una curva in XCCurv e aperta in XCSurf. Da quella curva derivano altre due curve di cui una è solo traslata leggermente rispetto all'asse delle Y e l'altra è stata ridotta fino a diventare un punto. La superficie sarà generata facendo extruding delle tre curve.

Infine le orecchie sono state create con lo Skinning di 5 curve: la prima creata in XCCurv e le altre derivano da essa. La curva blu in figura è stata leggermente ingrandita e traslata indietro rispetto l'asse delle Y, mentre la curva Rossa è stata rimpicciolita; infine c'è una curva scalata fino a formare un punto.

Progettazione oggetti della scena
Gli oggetti utilizzati nella scena sono:
La catapulta è un oggetto complesso formato da 31 superfici che possiamo in sintesi suddividere in:

Il numero maggiore di superfici sono situate nella base, che è formata da 18 superfici che si possono suddividere in sei parti, per ogni parte si utilizzano 4 curve per la creazione di tre superfici.

In particolare è stata creata con XCCurv una "curva" rettangolare e in seguito caricata in XCSurf; da qui è stata copiata e in seguito scalata fino a diventare un punto. Da queste due superfici si fa extruding per avere una superficie piana rettangolare. In seguito si è fatta un'altra copia della curva rettangolare ed è stata traslata in avanti parallelelamente rispetto alla prima; poi si è fatta una nuova copia di quest'ultima e ridotta fino a un punto per ottenere con Extruding una seconda superficie piana; infine sono state prese le due curve rettangolari (ovviamente non quelle scalate) ed è stato fatto Extruding in modo creare una parte della base. Le altre cinque parti sono stare create con lo stesso sistema:.

Le ruote sono state create con superfici cilindro di Usual.

Timone e rullo sono stati creati con superfici Usual: in particolare il timone con un cubo e quattro cilindri e il rullo con un cilindro.

Il launcher è composto da due superfici: la prima è stata fatta con tubolar e la superficie che chiude il tubo con Extruding.

Infine la pedana è stata creata grazie a un piano Usual e in seguito sono stati modificati i Control Point..

Il cactus è formato da due superfici. La prima è stata creata con Revolution di una curva creata in XCCURV; nella seconda è stato utilizzato un procedimento simile a quello utilizzato per la coda del personaggio: si è creato un tubo con tubolar e poi sono stati presi i control point del margine superiore del tubo ed è stato scalato fino a formare un punto, in seguito il control point del punto è stato traslato in alto.

La strada è un piano Usual ingrandito con scale e sono stati modificati i control point (come nella Pedana della catapulta vista precedentemente).

La terra e il laghetto sono entrambe due piani creati con Usual. Il primo è di grande dimensione ed è stato fatto il refinement e modificati i control point in modo da formare delle piccole collinette e delle cunette. In due di queste cunette sono stati inseriti un piano che identifica il laghetto

Il mondo è stato creato con una sfera in Usual, grande quanto la terra.

Si è deciso di ambientare la scena "all'aperto", nonostante in realtà l'intera scena si svolge all'interno di una sfera che rappresenta il mondo visibile a occhio nudo: questa decisione è stata presa per simulare il più possibile la vista all'orizzonte. All'interno di questo mondo, la scena si svolge su un piano che identifica il terreno su cui viene girata la scena. Come detto già precedentemente, questo terreno è pieno di zolle e collinette dove sono presenti anche due laghetti. La strada è stata inserita al centro del terreno e infine sono state create delle copie dei cactus sparse di qua e di la nella scena. La catapulta e Willy sono stati messi in prossimità della strada.
Per quel che riguarda la scelta degli attributi e il texturing applicati agli oggetti:
L'animazione consiste nel:

L'animazione finale è la seguente
I bugs che ho trovato sono i seguenti: