Un pò a "tempo perso" ho iniziato oggi a studiare le varie tecniche e tool x l'animazione in XSI, via via pubblicherò i miei appunti sperando che siano di interesse :) se ci sono delle imprecisioni o qualcosa di poco chiaro non esitate a scriverlo ;)

In XSI tutto ciò che compone una scena è rappresentato attraverso dei valori che possono essere modificati nel tempo per creare delle animazioni; si può animare lo spostamento (e rotazione) di un oggetto, li cambiamenti e le "deformazioni di un oggetto e anche il suo aspetto (materiale, texture, visibilità, trasparenza…).
  Le tecniche e gli strumenti di animazione sono diversi e adatti a diverse situazioni, nei vari progetti solitamente si usano combinazioni di varie tecniche per raggiungere al meglio il proprio scopo.

  Keying: si potrebbe definire come il "metodo base": a degli specifici frame vengono settati dei parametri e le relative keys, i valori intermedi verranno calcolati tramite un'interpolazione dando luogo a una funzione curva (fcurve) modificabile nel "fcurve editor".

  Animation Relationships: esistono diversi strumenti che consentono di creare delle relazioni di animazione attraverso vincoli, percorsi, linked parameters, espressioni, operatori e script.

  Animating along Paths and Trajectories: l'oggetto nel suo spostamento segue il percorso definito dalla path, per creare una path animation ci sono diversi metodi:
  Setting objects on paths: impostando una curva già esistente come percorso l'oggetto sarà animato su di essa per tutta la lunghezza, il metodo + veloce è con il comando "Set Path" in cui bisognerà impostare il frame di partenza/frame di fine/selezionare la curva. L'opzione "linear" imposta la velocità costante, l'opzione "tangent" mantiene l'oggetto parallelo al percorso (di default in riferimento all'asse X dell'oggetto)

A01

scelta la path curve si apre la finestra delle proprietà "PathCns" in cui è possibile settare: il "Path % age" (controlla in percentuale il vincolo tra il percorso e l'oggetto), le opzioni di tangenza…

A02

  Constraining an object to a curve (Path):  è possibile vincolare un oggetto a una curva e animare la sua posizione su di essa, si usa il comando "Constrain -> Curve (Path)" che applica lo stesso PathCns del comando "Set Path", ma in questo caso il "Path Percentage" va settato manualmente: selezionate l'oggetto, dal "Main Command Panel" selezionate il tool "Constrain -> Curve (Path)" e selezionate il percorso, posizionate il cursore della timeline al frame desiderato, nella finestra "PathCns" attraverso lo slider "Path %age" posizionate l'oggetto sul percorso e cliccate sul "animation icon" (il tasto verde a SX dello slider), continuate a spostare i 2 cursori e aggiungere i vari keyframe che vi servono.

A03

A04

  Setting object on Trajectories: è simile alla Path perché ambedue controllano la traslazione di un oggetto, ma la "Trajectory" usa i knot come indicatori di posizione x ogni frame. Questo metodo non richiede keys perché l'oggetto passa da un knot al successivo x ogni frame.

A05

  Creating a path from path keys: è possibile definire una path animation spostando un oggetto e salvando i path keys a differenti frame ("save key on path" setta le keys in percentuale, mentre "Save locked key on path" setta le keys in specifici punti della curva), la curva verrà creata in automatico.

  Converting an object's traslatino to a path: il comando "Create -> Path -> Convert Position fcurves to path" converte (in parte o completamente) una animazione di traslazione già esistente in una path animation.

  Modify: una volta creata una path animation è possibile modificarne il timing attraverso il comando "Path retime" (è possibile modificare il range iniziale, finale e fare il reverse), oppure settando delle keys per il path %age nel PathCns o nel TrajectoryCns, oppure modificando il %age nell'animation editor. È possibile modificare la path editando la curva oppure spostando l'oggetto. Con il comando "Edit -> operator â€" Substitute input" è possibile assegnare una nuova curva a un oggetto già animato su una path. Con il comando "Constrain -> Remove Constrain" si toglie una path (o un Trajectory) animation dall'oggetto.

    Animating with Constraints: con questo metodo si vincolano proprietà diverse (direzione, posizione…) a un altro oggetto, in questo modo animando l'oggetto vincolante vengono animate le proprietà dell'oggetto (o degli oggetti) vincolati: selezionate l'oggetto da vincolare, selezionate un Constraint Command  nel "Constraint menù"

   A06

  selezionate l'oggetto vincolante e si aprirà la finestra con i vari settaggi.

A07

  È possibile applicare contemporaneamente + vincoli a un oggetto, l'ultimo vincolo applicato avrà la priorità sugli altri.
  Se togliete un constraint a un oggetto questo non tornerà nella sua posizione originaria, se invece annullate un constraint con il comando "Undo" (Ctrl+Z) l'oggetto tornerà nella sua posizione.
  Per selezionare solamente gli oggetti che hanno dei Constraint c'è un filtro di selezione.

A08

  Poi ci sono i comandi per selezionare gli oggetti vincolanti o vincolati a un altro oggetto che sono rispettivamente: "Constraint -> Select Constraining Obj" e "Constraint -> Select Constrained Obj".
  In qualsiasi viewport si può scegliere l'opzione "relation" per visualizzare i Constrain dell'oggetto selezionato, selezionando il "link" bianco e premendo Invio si accede al Property Editor del Constraint

A09

  Dal pannello "Visibility options" potete scegliere di visualizzare le "Relation" e le "Relation information" anche per gli oggetti non selezionati.

A10

  Naturalmente è possibile visualizzare graficamente i Constraint anche nello "Schematic View" e dall'Explorer

A11

A12

  Infine anche dallo Spreadsheet (Alt+3) selezionando uno (o +) constraint e scegliendo "Query -> Constraint".

A13

  Position Constraint: vincola la posizione di un oggetto (o +) a un qualsiasi oggetto in scena che abbia un centro, per mantenere la distanza selezionate l'opzione Constrain -> CnsComp" (Constraint compensation) prima di applicare il position Constraint.
  Orientation (Rotation) Constrain: vincola il valore di rotazione di un oggetto (o +) a quello di un altro oggetto
  Direction Constraint: vincola un asse (di default l'asse X) di un oggetto (o +) alla posizione di un oggetto.
  Distance Constraint: vincola la distanza di un oggetto (o +) al centro di un altro oggetto, per mantenere la distanza selezionate l'opzione Constrain -> CnsComp" (Constraint compensation) prima di applicare il Distance Constraint.
  Scale Constraint: vincola il valore di scala (di uno o + assi) di un oggetto (o +) a quello di un altro oggetto
  Pose Constraint (o parent constraint): vincola tutte e 3 i tipi di trasformazione (scala, posizione, rotazione) in un unico constraint, nel property editor è possibile selezionare ogni combinazione o una singola trasformazione.
  Symmetry Constraint: specchia le 3 trasformazioni (Scala, ruota, sposta) a 2 oggetti vincolati a un altro.
  Constraints between Points (2, 3, N): vincola la posizione di un oggetto a 2 (o 3) oggetti: nel caso di 2 oggetti di default l'asse X viene orientato lungo il vettore che li congiunge, mentre nel caso di 3 oggetti di default l'asse Y viene orientato lungo la normale al piano definito dai 3 oggetti, con N oggetti la posizione verrebbe vincolata al centro.
  Object to Cluster Constraints: vincola la posizione di un oggetto al centro di un cluster.
  Constraining to a Surface (NURBS)/to a curve: vincola lo spostamento della base di un oggetto da una superficie NURBS (nelle coordinate UV) o da una curva (nelle coordinate U), una volta applicato questo tipo di constraint (selezionate l'opzione "normal" per il "Surface) potete animarlo usando lo slider "U/V Location" (per il "Curve" solo "U Location")

A14

  Bounding Volume and Bounding Plane Constraints: il primo limita la posizione di un oggetto (o +) esternamente, o internamente, o sulla superficie di un oggetto; il secondo confina l'oggetto vincolato nel lato della scena definito dal piano dell'oggetto vincolante.

  X alcuni Constraint è possibile aggiungere l'opzione Tangency (Surface, 3-Point, Curve, and Object to Cluster) e Up-Vector (Direction, Position, Surface, 2-Point, 3-Point, Curve) che determinano le proprietà di direzione dell'oggetto vincolato.
  In alcuni Constraint è possibile settare l'offset x ogni asse dal "Constraint's property editor", l'opzione "coupling" determina il tipo di connessione: Soft o Rigid.
  Il valore "Blend Weight" (che è animabile) in caso di Constraint multipli x uno stesso oggetto determina l'influenza di ogni singolo constraint, inoltre questo valore ha effetto anche nel caso si applichi un (o + ) constraint a un oggetto animato in maniera locale (con la fcurve).
  È possibile attivare o disattivare i vari Constraint dal property editor (spunta sull'opzione "active") o con il tasto destro dall'explorer, per rimuovere completamente un (o +) Constraint selezionate "Constraint -> remove Constraint"

Linking Parameters
: con un "link parameter" è possibile collegare l'animazione di un parametro a quella di un altro parametro (a determinate modifiche del parametro A, corrisponde una modifica del parametro B ) ; questo permette di creare relazioni tra le animazioni di vari parametri senza dover elaborare complicate espressioni (ad esempio per creare un pannello di controllo di un rig attraverso degli slider), in fin dei conti i 2 metodi non sono molto diversi (viene creata infatti un particolare tipo di espressione dettata da una funzione di una curva piuttosto che da una formula matematica).
I link parameter si possono creare e modificare dal "Parameter Connection Editor" (menù "View -> Animation"), oppure selezionando il parametro dall'explorer e con il tasto destro scegliere uno dei 3 diversi "link".

A15

      Ci sono 3 metodi di base x linkare un parametro:
Linking to a single driving Parameter: è un semplice link con un "parametro guida" a un altro parametro (o +), una semplice relazione x cui il valore del parametro linkato dipende dal valore del parametro guida. Ad esempio abbiamo un'animazione di un auto e vogliamo che quando si avvicina al semaforo questo diventi rosso (nelle immagini di esempio per comodità ho usato una sfera e un cubo ;) ) , selezionante il semaforo e nel  "Parameter Connection Editor" selezionate i parametri del diffuse nella colonna "Driven target", poi selezionate l'auto (che nell'animazione si avvicina al semaforo) e nel "Parameter Connection Editor" selezionate il parametro "Posx" nella colonna "Driving Source", cliccate sul tasto "Link" in basso (con settato "Link with")

A16

      A questo punto il link è stato creato e è regolato da una funzione curva, a questo punto dovrete settare i "relative values": posizionatevi al frame in cui l'auto è nelle prossimità del semaforo e cliccate su "set relative Values", posizionatevi al frame in cui l'auto ha appena superato il semaforo e settate una key per questo valore, modificate il diffuse del semaforo fino a farlo diventare rosso e cliccate di nuovo su "set relative Values"… a questo punto facendo partire l'animazione dell'auto quando sarà in prossimità del semaforo il colore cambierà da verde a rosso nell'intervallo di frame in cui avete settato i "relative values".
Linking to a multiple driving Parameter: in questo caso il parametro è linkato a + parametri guida e il valore risultante è calcolato da "un'interpolazione" dei valori dei parametri guida; la procedura è simile alla precedente, ma nel menù a discesa della finestra "Parameter Connection Editor" va selezionata l'opzione "Link with Multi". Nell'esempio dell'immagine, che non è il + azzeccato perchè poteva bastare un "link to  a  single..." :P , i parametri di scala (in tutti e 3 gli assi) della sfera vanno a influire sullo spostamento lungo l'asse Y del cubo.

A17

    Una volta settati i valori relativi in questo caso non c'è una funzione curva da editare, ma il falloff dell'interpolazione che determina in quali punti i valori dei parametri guida influiscono sul parametro linkato. Lo slider del falloff si raggiunge dall'explorer.

A18

    Linking to an object's orientation: il parametro viene linkato alla rotazione di un oggetto, in pratica è un caso molto simile al precedente sia per quanto riguarda i valori relativi che per l'editing del falloff dell'interpolazione.

    Animating with Expression: su questo argomento non mi dilungherò molto perché non sono molto portato x queste cose… l'espressioni sono formule matematiche in grado di controllare qualsiasi parametro animabile (da semplici relazioni a molto complesse), una volta acquisita una certa pratica sarà possibile attraverso questi potenti strumenti creare qualsiasi tipo di setup (character rig, animation control system, simulation…) in maniera diretta; un'espressione è una stringa di caratteri che può includere nomi di oggetti/parametri, operatori matematici, costanti, funzioni… per le espressioni + semplici non c'è bisogno di avere approfondite conoscenze matematiche. Una volta applicata un'espressione a un parametro, questo sarà modificabile solamente in maniera interattiva; ad esempio applicata un'espressione alla posizione locale in X di un oggetto non potrete + utilizzare il tool "Translate" per muovere quell'oggetto sull'asse X.

  È possibile identificare gli oggetti a cui sono state applicate delle espressioni sia nelle view 3D (icona con l'occhio -> Relation) che nello schematic view (Show –> Expression Link).

  A19

  A20

  Nel "Filter menù" del pannello "Select" trovate il filtro "Obj w Expression" per selezionare gli oggetti animati attraverso l'espressioni.

  L'expression editor è il principale tool per scrivere e modificare le espressioni, ci sono diversi modi per visualizzarlo e ognuno x fare qualcosa di diverso:

  A20B

  Per visualizzarlo senza un target o setting di default andate su "View -> Animation -> Expression Editor", x aprirlo in una finestra mobile selezionate un oggetto e digitate "Alt+9", aprite l'animation editor e scegliete "Editor -> Expression editor", oppure come negli esempi di seguito…

  Riporto alcuni semplici esempi della guida di XSI: create una sfera, digitate Ctrl+k per aprire il property editor delle trasformazioni locali, cliccate con il tasto destro sull'animation icon del parametro Position Y e scegliete "Set expression" nel menù a discesa.

  A21

  Nell'Expression editor settate il valore a 5 e cliccate su "Apply", la lettera "C" che appare nell'animation icon indica che è una "costant expression" (il valore è un numero); questo è il tipo + semplice di espressione, la sfera ora è fissa a 5 unità sull'asse Y e sarà possibile utilizzare il tool "Translate" solamente sull'asse X e Z. il valore di 5 unità poteva essere settato anche prima di scegliere "Set expression".

  A22

  Per creare una semplice "Equivalency Expression" (A=B ) potete seguire questa procedura: create una sfera e accanto un Null, aprite i 2 property editor e trascinate l'animation icon del Position X del Null sul corrispondente della sfera.

  A23

  A24

  Per testare l'efficacia dell'espressione provate a spostare il Null sull'asse X.

  Oltre che i metodi visti nei precedenti esempi è possibile scrivere l'espressioni nell'expression editor, selezionando un target parameter, utilizzando l'expression sintax, convalidando e applicando l'espressione.
  È possibile modificare, attivare/disattivare, salvare/caricare, copiare (come le animazioni) e rimuovere (come le animazioni) un'espressione.
  È possibile utilizzare le espressioni in combinazione a altri tipi di animazioni x lo stesso oggetto/parametro:
  Expression e Constraint: l'espressione sarà valutata prima del Constraint applicato allo stesso oggetto.
  Expression e Fcurve: non è possibile applicarle insieme allo stesso parametro, anche se ci sono alcuni "trucchi" per poterlo fare.

Seconda Parte >>

---
Questo articolo è stato importato automaticamente dal forum il 31/lug/2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui