場景可讓您使用動畫匯入模型您可以使用 Sceneform API 播放及控制動畫,並將節點附加至模型的架構。
例如,場景 動畫 範例包含用於建構 Android 和 Android 模型,以及棒球帽的檔案。安迪模型包含動畫資料,而棒球帽是非動畫模型。執行該範例時,Andy 破裂並揮手手臂,使用帽子將帽子固定在頭部。
場景模型動畫與 Android 屬性動畫
請務必區分「場景」中的「模型動畫」和 Android 中的「屬性動畫」。
模型動畫是由藝術家使用模型和動畫軟體預先建立。當中包含架構動畫資料。這些動畫必須匯出為
*.fbx
檔案,然後匯入到*.sfb
檔案中,並用於場景。屬性動畫是基本的 Android 概念,不是特定的場景。這類動畫可以透過具備 getter 和 setter 的 Java 物件來變更任何可變動值。動畫值可以動態設定,但無法封裝於
*.sfb
檔案中。屬性和模型動畫都支援 Android's Animator API。兩者都支援監聽器、播放控制項 (開始/停止/結束/暫停/取消)、持續時間和開始延遲。
模型動畫僅支援
TimeInterpolators
播放的有限支援。模型動畫不支援反向播放。如要查看場景場景動畫模型的操作範例,請參閱「動畫」範例。
如要查看使用場景的場景動畫屬性,請參閱 太陽能系統範例。
模型動畫概念
開始使用動畫模型之前,建議瞭解架構動畫的相關特定概念,以及適用於場景的相關限制和功能。
骨骼動畫模型包含相互連結的骨骼,在階層中形成父項與子項關係。動畫會在播放期間變更骨骼的位置和方向。
就像在場景中移動父項
Node
的方式一樣,所有子項Node
也都會移動,在場景中移動父項骨也會移動子項。透過動畫移動,或可透過SkeletonNode
類別作為節點存取。存取Node
時,如果播放的是動畫,每個頁框的新動畫都會以動畫形式覆寫。空架雪車。空架圖內含所有骨骼,形成父子關係的階層。
舉例來說,人體模型可能包含骨骼 (例如「左肩」)、「左上臂」、「左肘」和「左前側」等骨骼。從「左肩」設為這個階層的父項,「左上臂」會指派為子項。「左上臂」的子項可能是「左手肘」和「下骨」。旋轉肩骨時,上臂、前臂、肘部及下列骨骼都會同步移動。
場景沒有 API 變更架構中的骨子之間關係的 API。您必須在外部模型和動畫套件中事先完成這項操作。
即使是描述無機物件的模型,也可以利用基本架構來協助實際寫實。舉例來說,沙發模型就是骨骼和骨骼。
穿戴式裝置外觀是指套用至模型繪製表面網格的權重。皮膚網格的位置和形狀是從鄰近的骨骼計算而來。此骨骼皮膚連接就會對應至模型的變形方式,以便提供更真實的動作。
必須事先使用模型和動畫套件準備皮膚。場景可以變更外觀網格的材質,以變更模型的外觀。