Sceneform pozwala importować modele z animacją. Za pomocą interfejsów Sceneform API można odtwarzać animację i nią sterować, a także dołączać węzły do szkieletu modelu.
Na przykład próbka scenografii Animacja obejmuje pliki do stworzenia modeli Androida i czapki baseballowej Andy'ego. Model Andy'ego zawiera dane animacji, a czapka z daszkiem jest modelem nieanimowanym. Gdy uruchomisz przykład, Andy wygrywa i faluje rękami, a kapelusz pozostaje przy głowie zawsze za pomocą węzła.
Animacja modelu sceny a animacja właściwości Androida
Ważne jest, aby odróżniać animacje modeli w Sceneform od animacji właściwości na Androidzie.
Animacje modelu są tworzone z wyprzedzeniem przez artystów przy użyciu oprogramowania do modelowania i animacji. Zawierają dane animacji szkieletu. Animacje muszą być wyeksportowane jako pliki
*.fbx
, a następnie zaimportowane do pliku*.sfb
, aby można ich było użyć w narzędziu Sceneform.Animacja właściwości to podstawowa koncepcja Androida, która nie dotyczy Sceneform. Ten rodzaj animacji może zmienić dowolną wartość zmiennej w obiekcie Java, który zawiera metodę getter i seter. Animowane wartości można ustawiać dynamicznie, ale nie można ich spakować w pliku
*.sfb
.Zarówno właściwość, jak i animacja modelu obsługują interfejs Animator API na Androida. Oba programy obsługują słuchacze, czas rozpoczęcia i zakończenia oraz czas rozpoczęcia i opóźnienie.
animację modelu obsługuje tylko ograniczone odtwarzanie w przypadku
TimeInterpolators
; Odtwarzanie wsteczne nie jest obsługiwane w animacjach modeli.Aby zobaczyć, jak działa modelowanie sceny, zobacz przykład animacji.
Aby zobaczyć animację właściwości przy użyciu funkcji Sceneform, zapoznaj się z przykładem dotyczącym Układu Słonecznego.
Koncepcje animacji modeli
Zanim zaczniesz korzystać z animowanych modeli, warto zapoznać się z konkretnymi pojęciami dotyczącymi animacji szkieletowej, a także z powiązanymi ograniczeniami i funkcjami związanymi z sceną.
Kość. Animowany model zawiera połączone ze sobą kości, tworząc w hierarchii relacje między reklamodawcami nadrzędnymi a podrzędnymi. Animacja zmienia położenie i orientację kości podczas odtwarzania.
Zgodnie z tym, że przenoszenie elementu nadrzędnego
Node
w Sceneform powoduje przesunięcie wszystkich dzieciNode
w Sceneform, powoduje też przeniesienie dzieci. Kości można przenosić za pomocą animacji lub otwierać jako węzeł za pomocą klasySkeletonNode
. Kiedy kości są dostępne jakoNode
, nowe pozycje są zastępowane każdą animacją, jeśli pozwala ona na odtwarzanie.Szkicownik. Szkicownik składa się z wszystkich kości, tworząc hierarchię relacji między rodzicami a podmiotami.
Model modelu ludzkiej ręki może zawierać kości, takie jak &&tt;lewe ramię", "lewe ramię" "lewe łokcie" &"lewe ramię" itd. Począwszy od &ramienia po lewej stronie, jako element nadrzędny tej hierarchii, lewy górny róg zostanie przypisany jako element podrzędny. Elementy podrzędne „lewego górnego ramienia” to „" lewa część łokcia” i niższe kości. Gdy kości barka będą obracane, ramię, ramię, łokcie i inne kości poniżej zostaną przesunięte w tandemie.
Sceneform nie używa interfejsu API do zmiany relacji nadrzędna-podrzędna między kościami w szkieletie. Należy to zrobić z wyprzedzeniem w zewnętrznym pakiecie do modelowania i animacji.
Nawet modele przedstawiające obiekty nieorganiczne mogą wykorzystywać szkielety, aby ułatwić realizm. Na przykład model kanapy może mieć kości i szkielet.
Skóra. Skóra to masa stosowana do rysowanej siatki modelu. Położenie i kształt siatki są obliczane na podstawie pobliskich kości. To połączenie kości i skóry odzwierciedla sposób odwzorowania modelu, zapewniając bardziej realistyczny ruch.
Skóra musi być przygotowana z wyprzedzeniem za pomocą pakietu modelowania i animacji. Scena może zmieniać materiał siatki, aby zmienić wygląd modelu.