Animation de scène

Sceneform vous permet d'importer des modèles avec des animations. Vous pouvez utiliser les API Sceneform pour lire et contrôler l'animation, et pour associer des nœuds au squelette d'un modèle.

Par exemple, l'exemple Animation de Sceneform inclut des fichiers utilisés pour créer des modèles d'Andy l'android et un chapeau de base-ball. Le modèle d'Andy contient des données d'animation, tandis que le chapeau de base-ball est un modèle non animé. Lorsque vous exécutez l'échantillon, Andy fait des pauses et lève les bras alors que le chapeau reste attaché à sa tête à l'aide d'un nœud.

Animation de modèle Sceneform et animation de propriété Android

Il est important de faire la différence entre les animations de modèle dans Sceneform et les animations de propriété dans Android.

  • Les animations de modèles sont créées à l'avance par des artistes à l'aide d'un logiciel de modélisation et d'animation. Ils contiennent des données de squelette d'animation. Ces animations doivent être exportées sous forme de fichiers *.fbx, puis importées dans un fichier *.sfb pour être utilisées dans Sceneform.

  • L'animation de propriété est un concept Android de base qui n'est pas spécifique à Sceneform. Ce type d'animation peut modifier toute valeur modifiable sur un objet Java doté d'un getter et d'un setter. Les valeurs animées peuvent être définies de manière dynamique, mais ne peuvent pas être regroupées dans un fichier *.sfb.

    La propriété et l'animation du modèle sont compatibles avec l'API Android Animator. Ils sont tous les deux compatibles avec les écouteurs, la commande de lecture (début/arrêt/fin/pause/annulation), la durée et le délai de démarrage.

    Seule la compatibilité avec la lecture TimeInterpolators est limitée dans les animations du modèle. La lecture inversée n'est pas compatible avec les animations de modèle.

  • Pour voir une modélisation d'animations Sceneform en action, consultez l'exemple Animation.

  • Pour voir l'animation d'une propriété avec Sceneform en action, consultez l'exemple Solar System.

Concepts d'animation du modèle

Avant de commencer à utiliser des modèles animés, nous vous conseillons de comprendre les concepts spécifiques liés à l'animation squelettique, ainsi que les restrictions et les fonctionnalités qui s'appliquent à Sceneform.

  • Des os Un modèle animé contient des os qui sont connectés ensemble, formant ainsi des relations parent-enfant dans une hiérarchie. L'animation modifie la position et l'orientation des os pendant la lecture.

    De la même manière que lorsque vous déplacez un parent Node dans Sceneform, tous les enfants Node bougent également, et le déplacement d'un os parent dans Sceneform entraîne le déplacement des enfants. Les os peuvent être déplacés par animation ou sont accessibles en tant que nœud via la classe SkeletonNode. Lorsque les os sont accessibles en tant que Node, les nouvelles positions sont remplacées par chaque image par une animation si une image est lue.

  • Squelette Le squelette regroupe tous les os, formant ainsi une hiérarchie de relations parent-enfant.

    Par exemple, un modèle de bras humain peut contenir des os tels que l'épaule supérieure gauche, le bras gauche gauche, le coude gauche et l'avant-bras gauche, etc. À partir de l'épaule gauche, qui est le parent de cette hiérarchie, le bras gauche est attribué en tant qu'enfant. Les enfants du haut du bras gauche peuvent être le coude gauche et les os du bas. Lors de la rotation de l'os de l'épaule, le haut du bras, l'avant-bras, le coude et tous les os situés en dessous se déplacent en tandem.

    Sceneform ne dispose pas d'une API permettant de modifier les relations parent-enfant entre les os du squelette. Cette opération doit être effectuée à l'avance dans un package externe de modélisation et d'animation.

    Même les modèles représentant des objets inorganiques peuvent utiliser des squelettes pour faciliter le réalisme. Par exemple, un modèle de canapé peut avoir des os et un squelette.

  • Peau La thème correspond à une pondération appliquée au maillage de surface dessiné par le modèle. La position et la forme du maillage de la peau sont calculées à partir des os situés à proximité. Cette connexion osseuse à la peau correspond à la façon dont le modèle se déforme, offrant ainsi un mouvement plus réaliste.

    L'habillage doit être préparé à l'avance à l'aide d'un package de modélisation et d'animation. Sceneform peut modifier la matière du maillage pour changer l'apparence d'un modèle.