Sceneform ti consente di importare modelli con animazione. Puoi utilizzare le API Sceneform per riprodurre e controllare l'animazione e collegare i nodi allo scheletro di un modello.
Ad esempio, il campione Animation di Sceneform include file utilizzati per creare modelli di Android e il cappello da baseball. Il modello Andy contiene dati di animazione, mentre il cappello da baseball è un modello non animato. Quando esegui il campione, Andy si rompe e agita le braccia mentre il cappello rimane fisso sulla sua testa usando un nodo.
Animazione del modello Sceneform rispetto all'animazione delle proprietà Android
È importante fare una distinzione tra animazione del modello in Sceneform e animazione della proprietà in Android.
Le animazioni dei modelli vengono create in anticipo dagli artisti utilizzando software di modellazione e animazione. Contengono dati di animazione scheletri. Queste animazioni devono essere esportate come file
*.fbx
, quindi importate in un file*.sfb
da utilizzare in Sceneform.L'animazione delle proprietà è un concetto fondamentale di Android e non è specifico per Sceneform. Questo tipo di animazione può modificare qualsiasi valore modificabile su un oggetto Java che ha un getter e un setter. I valori animati possono essere impostati in modo dinamico, ma non possono essere pacchettizzati in un file
*.sfb
.L'animazione delle proprietà e del modello supporta l'API Animator di Android. Entrambi supportano ascoltatori, controllo della riproduzione (avvio/interruzione/fine/pausa/annullamento), durata e ritardo all'avvio.
Nelle animazioni dei modelli è disponibile solo un supporto limitato per la riproduzione di
TimeInterpolators
. La riproduzione inversa non è supportata nelle animazioni dei modelli.Per vedere come funziona la modellazione dell'animazione di Sceneform, esamina l'esempio Animation.
Per vedere l'animazione della proprietà utilizzando Sceneform in azione, esamina l'esempio del Solar System.
Concetti dell'animazione dei modelli
Prima di iniziare a lavorare con i modelli animati, è consigliabile comprendere concetti specifici relativi all'animazione scheletrica, nonché le relative restrizioni e funzionalità che si applicano a Sceneform.
Ossi. Un modello animato contiene ossa collegate tra loro, formando relazioni padre-figlio in una gerarchia. L'animazione modifica la posizione e l'orientamento delle ossa durante la riproduzione.
Nello stesso modo in cui lo spostamento di un genitore
Node
in Sceneform comporta lo spostamento di tutti iNode
minori, lo spostamento di un osso genitore in Sceneform sposta i bambini. Gli ossa sono spostabili tramite animazione o accessibili come nodo tramite la classeSkeletonNode
. Quando si accede a ossa comeNode
, le nuove posizioni vengono sovrascritte ogni frame dall'animazione se una è in riproduzione.Scheletro. Lo scheletro comprende tutte le ossa, formando una gerarchia di relazioni padre-figlio.
Ad esempio, un modello di braccio umano può contenere ossa come "spalla sinistra" e "braccio superiore sinistro", "gomito sinistro" e "avambraccio sinistro" e così via. A partire dalla spalla sinistra, in quanto genitore di questa gerarchia, verrà assegnato come bambino. I bambini di "braccia superiore sinistra" potrebbero essere il gomito sinistro e le ossa inferiori. Quando l'osso della spalla viene ruotato, la parte superiore del braccio, l'avambraccio, il gomito e le ossa sottostanti si muovono in tandem.
Sceneform non dispone di un'API per modificare le relazioni padre-figlio tra le ossa nello scheletro. Questa operazione deve essere eseguita in anticipo in un pacchetto di animazione e modellazione esterna.
Anche i modelli che mostrano oggetti inorganici possono utilizzare gli scheletri per facilitare il realismo. Ad esempio, un modello di divano potrebbe avere ossa e uno scheletro.
Scuotere la pelle. Lo skin è una ponderazione applicata al mesh di superficie disegnato del modello. La posizione e la forma del mesh della pelle sono calcolate dalle ossa vicine. Questo legame con l'osso riflette le modalità di deformazione del modello, offrendo un movimento più realistico.
La pelle deve essere preparata in anticipo utilizzando un pacchetto di modellazione e animazione. Il modello scenografico può modificare il materiale del mesh della pelle per cambiare l'aspetto di un modello.