::Tutorial ::

 

From Lightwave to XSI

Dato che sono di recente approdato al software di casa AVID, e ho dovuto imparare come esportare il mio workflow da LW su XSI, ho deciso di buttare giu' alcune note, per non dover ricorrere all' help ogni 5 minuti. Per massimizzare queste nozioni ho pensato di scrivere un tutorial che spero possa servire ad altri, che come me, abbiano compiuto questo passo. Premetto che mi riferiro' allle versioni Softimage|XSI 3.5 e Lightwave 3D [7.5]

Innanzitutto devo dire che, se si esclude lo scontato disagio iniziale, il modo di operare di XSI ricorda in molti punti quello di LW, perlomeno la maniera di lavorare che avevo io su quest'ultimo: talvolta ho l'impressione che alla Avid abbiano imitato i cavalli di battaglia di altri software, migliorandoli e integrandoli nella filosofia "non-distruttiva" del suo prodotto.

Vi consiglio la lettura di "lightwave to XSI Quickstart" che trovate su XSIfile per avere un riferimento sinottico dei vari comandi o shortcut; vi consiglio inoltre il tutorial introduttivo del mio amico Smile.

 

Modeler vs Model Panel

Prima di iniziare la descrizione tenete a mente 2 cose: XSI tratta a livello di costituente elementare non solo poligoni, ma anche vertici e punti: questo vuol dire che praticamente ogni operatore/selettore che vale per l'uno, vale anche per l'altro, chiaramente in maniera leggermente diversa: si veda ad esempio il bevel. In questo Tutorial insiemi di polygon, di edge o di point saranno indicati in maniera neutra come "selezione" quando non sussiste il pericolo di fraintendimento. Inoltre mi preme dire che la modellazione che più ha reso celebre LW, ovvero quella per meranurbs, viene pienamente supporatata in XSI, ed assume il (più filologicamente esatto) nome di Subdivision surface, e anzi funziona anche con poligoni di 5, 6, 20 lati, cosa impossibile in LW; vi consiglio comunque di non abusare dei n-gon. Il tasto TAB di attivazione in LW diviene "+" in XSI, che se ripetuto aumenta il dettaglio di suddivisione (mutatis mutandis per il "-")

Aprendo il programma per la prima volta, ciò che stupisce il neofita di XSI è la quantità mostruosa di spazio che i vari pannelli dei comandi pretendono (infatti XSI chiede almeno una resolution 1280x1024): sopra, sotto a destra e a sinistra delle viste di lavoro. Quella che userete di più è quella a destra per le manipolazioni, selezioni etc, e quella a sinistra per le primitive i e deformatori.
XSI, come la maggior parte dei software a differenza del LW, non ha due moduli separati per modellazione e render, cosa che in primis mi ha shockato, ma che diviene familiare dopo qualche sessione di utilizzo; per dividere logicamente i comandi afferenti le varie attività, XSI usa il pannello di sinistra che cambia contestualmente: premendo 1 si ha il pannello per la modellazione, 2 per l'animazione, 3 per il render, 4 per la simulazione (per dinamiche etc.); gli altri numeri dal 5 al 9 aprono altri pannelli, tra cui cito adesso solo quelli che hanno un'analogia con LW: 6 per i layer, 9 per lo schematic.

Vediamo per adesso il modulo modellazione: nel primo menù (Get) abbiamo le primitive, le camere, le luci, i materiali, e "property" che per adesso tralasciamo.
Chiaramente in primitive troviamo cubo sfera e cilindro (sotto il submenu polygon mesh), i null, e anche curve e surface, che sono nurbs nel vero senso della parola, e che quindi non sono implementati come in LW. Camera e Light sono abbastanza ovvie, mentre surface "crea" un materiale per la selezione attiva; XSI attribuisce i materiali o all'oggetto intero o a selezioni di esso che si chiamano cluster e che fanno le veci delle superfici proprie di LW.
Nel secondo menù (Create) abbiamo molti comandi per la gestione delle nurbs, inoltre abbiamo i comandi per le operazioni booleane (sotto polymesh) e per la creazione di scheletri.
Infine nel terzo menù (Modify) abbiamo i modificatori: in component abbiamo il Move Point Tool (richiamabile con M) che risulta in pratica il semplice traslate se usato direttamente, e il magnet/drag-net se usato in maniera proportional (Ci torneremo sopra). Inoltre abbiamo il mark hard e il crease che si comportano in modo simile al peso della smussatura (subpatch weight); in effetti il sistema di weight di XSI e' simile a quello del LW anche in altri aspetti e le weight map si possono spennellare come con lo spray del modeler. Curve e surface sono i modificatori delle forme nurbs.
In Polymesh abbiamo una serie di strumenti imporantissimi: il Polygon tool (N) che funge come la penna per creare i poligoni dal niente, (aggangiabili automaticamente ai bordi di mesh), Add Edge che si comporta come il Edge loop tool (che per LW e' una plug-in) e Add Vertex che fa lo stesso con i singoli punti. Abbiamo inoltre gli utilissimi strumenti per l'eliminazione intelligente di poligoni, vertici e punti (collapse, delete etc), per l'estrusione (extrude along curve/axis) per il weld (Weld two points, weld two edges), per la suddivisione (Shift+D), e per il bridge (Bridge Polygon, Bridge Edge). A onor del vero la maggior parte di questi strumenti possono essere chiamati contestualmente selezionando un ente su un modello e premendo il pulsante destro del mouse (Context Menu)
in deform abbiamo tutti quegli strumenti di deformazione che possiede anche LW: Bend, Bulge, Shear, Taper e Twist. Tutti questi comandi hanno molte opzioni per la gestione della curva di modifica, molto simile al modo di operare di LW.
Sebbene non appartenga a quasto menu, spendo due parole sul comando duplicate (Ctrl+d); questo comando serve ovviamente a duplicare selezioni, ma in pratica funge come bevel o extrude di LW, perchè se viene usato su selezioni di oggetti, crea i nuovi poligoni agganciati alla mesh, pronti quindi per le scala-roto-traslazioni, che per XSI sono operazioni "forti". La duplicazione pura corrisponde allo standard Ctrl+c (parimenti Ctrl+v, Ctrl+x per paste e cut) e il duplicato eredita anche la storia del suo epigono.

Il Main Control Panel (MCP).
In questo pannello si trova il cuore della gestione della scena: dal primo menu', "Layers" (evocabile con 6) abbiamo la gestione dei livelli stratificati, ma questi hanno un significato un po' diverso dai Layer di LW. Essendo livelli della scena e non dell'oggetto non ha molto senso usarli per i vari pezzi di uno stesso modello. Inoltre per tutte quelle operazioni binarie in cui LW chiede un foreground layer "sorgente" e un background layer "agente" o "destinazione", XSI ha una sintassi operativa che prevede di selezionare esplicitamente il "sorgente" e indicare l'agente con un click ("pick"). I layer sono semmai da considerarsi compartimenti "logici" per la scena (tutti i character in layer 1, tutte le luci in Layer 2, etc.)
In "select" si trovano gli strumenti per gestire appunto la selezione: degli oggetti innanzitutto, che non sono solo le mesh e le nurbs, ma anche le luci e le evenuali altre camere. Si noti che e' possibile selezionare piu' oggetti insieme. Andando in modalita' "sub-oggetto" e' possibile selezionare poligoni (Polygon con y o u), spigoli (Edge, E) o singoli punti (Point T); per tornare agli oggetti si prema la barra (space). Per effettuare la selezione esistono diversi strumenti: premendo sulla linguetta select apparira' un sub-menu, e in tools e' possibile vedere le varie possibilita'. Il piu' simile al LW e' il rectangole (F7) e il freeform (F9). A differenza del LW se si vuole aggiungere parti a una selezione basta tenere premuto Shift, mentre per fare il toggle si preme Ctrl, infine Shift+Ctrl per deselezionare. E' possibile accrescere la selezione come in LW (grow selection, Shift+=) e eseguire il Parallel Loop, ma solo sugli edge. In ogni caso si puo' sempre passare agli "adiacent", siano essi poligoni o punti. Tutti questi selezionatori sono attivabili anche dal menu a scomparsa ottenibile premendo il tasto sinistro su un oggetto.
Utilizzando la freccina accanto a "Sample" si accede a un filtro di selezione per scegliere solo una categoria di enti. Una vera novita' dall'impatto dirompente e' il tasto selection: se lo premete con un oggetto selezionato, esso vi mostrera' la 'storia' dell'oggetto stesso, le sue rotazioni, le sue traslazioni, le sue deformazioni a ritroso fino alla sua stessa creazione! E se modificate o addirittura eliminate un passaggio intermedio, tutta la storia successiva verra' influenzata! Naturalmente non puo' sempre funzionare bene ma con le omotetie (scala-roto-traslazioni) praticamente si, cioe' se dopo aver fatto tutta una serie di modifiche a una parte di una mesh, vi accorgete che al primo passaggio era meglio ruotarla e traslarla diversamente, potete ancora farlo! Naturalmente tenere una storia aggiornata esige molte risorse, percio' e' opportuno congelarla, facendo in modo che XSI si scordi quanto e' avvenuto finora, rendendo l'oggetto "primitivo" in senso cronologico; il tasto "freeze" serve a questo, e non ha nessuna parentela con la freezatura di mesh di LW: per fare quest'ultima c'e' il comando "subdivision" (create > poly.mesh > subdivision)
Nel pannello Transform abbiamo uno dei punti di forza di XSI: esso apparentemente serve soltanto a eseguire scalature (x), rotazioni (c), traslazioni (v). Queste operazioni possono essere eseguite in diversi modalita', come si evince ispezionando i 3x3 pannelli sottostanti: nei primi tre abbiamo global, local e view
questo significa che gli assi di riferimenti per le omotetie possono essere globali (ovvero riferiti all'intero mondo come le coordinate:world del LW), locali o legate alla vista. Cosa vuol dire tutto questo? Significa che se sono in locale e traslo con il tasto sinistro del mouse ottengo una traslazione rispetto all'asse laterale dell'oggetto in questione: se questo oggetto era stato ruotato casualmente nello spazio tale asse NON COINCIDE con nessun asse dell mondo, e quindi sarebbe stato alquanto difficile spostarlo ESATTAMENTE seguendo la sua ascissa in LW. E questo vale sia anche per le rotazioni e le scalature.
I tre tasti del mouse sono mappati nel seguente:

  • tasto sinistro: coordinata estensione x - rotazione Pitch
  • tasto centrale: coordinata quota y - rotazione Heading
  • tasto destro: coordinata profondita' z - rotazione Blank

Si puo' sempre fare riferimento alla striscia in basso della finestra di XSI: essa ci avverte dei diversi effetti ottenibili con i tre pulsanti del mouse.
Oltre agli assi e' necessario specificare un centro (center) per le omotetie. Il center corrisponde al Pivot point del LW, ma piu' di questo influenza le operazioni, tanto che puo' essere necessario "scavalcarlo" se si vuole operare rispetto a un altro riferimento momentaneo: Add, Ref, e Plane servono a questo, impostando il rifermineto sul parent (oggetto padre) su un oggetto a scelta (che va pickato) o su un piano.
Il centro nasce insieme all'oggetto nel modo piu naturale, e' il baricentro geometrico delle primitive; durante le trasformazioni sulle mesh queste si possono "sbilanciare" nel senso che il centro "logico" resta dov'e' nato, ma il centro fisico (baricentro) e' oramai altrove: si puo' sposatre il center in diversi modi, per accedervi e' necessario fra apparire il sub menu cliccando sulla linguetta trasform.
Con COG si ottiene il momentaneo center sul baricentro senza doverlo effettivamente spostare.
Prop
e l'interessantissima feature che non vi fara' rimpiangere il LW: se si preme il destro apparira' un menu' in cui specificare il tipo e la forma del falloff, dopo di che selezionando ad esempio un punto di una mesh e premendo il destro su Prop si puo' rototraslare in maniera proporzionale: il peso dell'omotetia viene indicato dal colore dei punti selezionati, che vanno da rossi a neri. Se si usa il prop con lo strumento M (move point) si ottiene praticamente il drag-net. Symmetry purtroppo non funziona come nel LW, ma e' di supporto per le nurbs. Per ottenere la simmetria nella modellazione e' necessario creare un clone speculare, funzione automatizzata nella verisone 3.5, accessibile dal menu edit > duplicate/instantiate > duplicate symmetry
Per comprendere come questa abbondanza di modalita' per eseguire operazioni semplici non sia solo un eccesso di comandi, faccio notare che supplisce la presunta assenza di altri strumenti cari al LW-er: si pensi a extender: esso non e' un tool di XSI perche' NON c'e' bisogno di lui; vi basta selezionari gli edge (e non i punti come in LW) duplicarli con crtl+d e roto-traslarli come piu' vi aggrada seduta stante: se non e' ergonomia questa! ^_^
Come postilla aggiungo che queste tre operazioni hanno sempre disponibile un field per l'immissione diretta dei valori (come il tasto n di LW) che accetta anche espressioni matematiche complesse e autoriferite (ad esempio se si scrive *2 in un field si ottiene il raddoppio dello stesso).
Proseguendo nel MCP abbiamo il menu' snap che serve appunto per snappare ovvero per "discretizzare" le operazioni. Si puo' snappare semplicemente alla griglia, ai punti, alle curve alle facce o ai piani: il tutto e' combinabile, ma non proprio consigliato; per attivare lo snap e' sufficiente premere ctrl
Abbiamo infine Constrain, per i vincoli, con il familare parent che funziona in modo identico al LW.
L'ultimo menu' e' infine edit con il comando group, che serve a raggruppare, ovvero a marcare tanti oggetti o cluster come associati al fine di imporre loro medesime specifiche: caso piu' comune e' il materiale, da far condividere a piu' oggetti. Poi abbiamo Freeze, di cui si e' gia parlato, e infine immed che serve a congelare la storia a ogni passaggio, onde risparmiare risorse.

A tutto questo vorrei aggiungere due parole sull'uso dell'exporer, richiamabile col tasto 8: si tratta di un utilissima finestra floating (bloccabile in una vista se necessario) in cui viene mostrato l'albero di tutta la scena, con tutti gli oggetti, le camere, le luci etc. Ogni oggetto ha tra le sue foglie tutti i vari attributi significativi per XSI: la storia, i cluster (entrambi sotto polygon mesh) il materiale, la visibilita', l'eventale oggetto figlio etc. In questo modo risulta facilissimo selezionare i vari oggetti, nascondergli (premendo h) e creare i raggruppamenti. Questo strumento risulta molto utile per la gestione globale della scena.

Appendice
Il problema numero uno nel passare da un pacchetto a un altro è sempre la preservazione dei dati: in XSI e' possibile imporatre oggetti .obj che anche LW è in grado di salvare, ma questi perdono la maggior parte degli attributi nel passaggio. Vi consiglio di usare un programma come Deep Exploration, che offre una gran quantità di opzioni per operare la transcodifica; in particolare dovrebbe mantenere le superfici che vengono identificate come cluster in XSI.


Il sito e' puramente amatoriale, non si intende infrangere nessun copyright; tutti le opere qui richiamate appartengono ai rispettivi proprietari. Per qualsiasi chiarimento mandatemi una mail