
Système d’animation par morphing
Introduction
Dans cette nouvelle release, Evergine prend en charge l’animation par morphing dans ses assets de modèles. Elle utilise également les compute shaders sur les plateformes de rendu compatibles, ce qui s’est révélé 4 fois plus rapide que le morphing sur CPU, grâce à des performances parallèles exceptionnelles.
Comprendre l’animation par morphing
L’animation par morphing repose sur les morph targets, également appelées blend shapes ou shape keys. Il s’agit d’une technique utilisée en infographie 3D pour créer des expressions faciales et des animations réalistes. Ce sont essentiellement une série de modèles 3D prédéfinis qui représentent différentes expressions du visage ou du corps. Chaque morph target définit les déplacements de ses sommets par rapport à la pose de base (généralement une pose neutre). Il est ainsi possible de combiner plusieurs expressions, chacune avec un poids différent, pour que le visage ou le corps d’un personnage passe en douceur d’une forme à une autre. Ce processus d’interpolation permet des mouvements complexes et réalistes, ce qui fait des morph targets un outil précieux pour l’animation de personnages.

Compute shader
Réaliser le morphing via des compute shaders plutôt que sur le CPU permet de tirer parti du parallélisme massif et de la scalabilité du GPU. Cela contribue aussi à réduire la charge du CPU. Toutefois, Evergine bascule automatiquement en mode CPU lorsque l’API de rendu de l’application ne prend pas en charge les compute shaders ou lorsque l’application impose l’utilisation du CPU (en désactivant la propriété UseComputeSkinning ).
Utiliser les morph targets dans Evergine Studio.
Importez votre modèle 3D.
Importez votre modèle 3D. Pour utiliser des morph targets, vous avez besoin d’un modèle 3D qui en contient. Importez votre modèle 3D dans Evergine comme d’habitude, en le glissant-déposant dans le dossier de votre choix. Pour l’instant, les morph targets sont prises en charge dans les fichiers GLTF, FBX et Collada.
Ouvrez votre modèle 3D.
Ouvrez votre modèle 3D importé pour afficher son Model Viewer. Si votre asset contient des morph targets, elles sont listées dans le panneau Morph Targets sur la droite, qui indique aussi le poids par défaut de chaque pose.

Modifiez les poses dans votre scène.
Si vous instanciez le modèle dans votre scène (en le glissant-déposant dans le visualiseur de scène), la hiérarchie habituelle d’entités du modèle est créée. Si vous sélectionnez une entité dotée de morph targets, un nouveau panneau apparaît dans le composant SkinnedMeshRenderer. Ce panneau vous permet de contrôler toutes les morph targets directement dans l’éditeur.
Recherchez la pose que vous souhaitez modifier et ajustez son curseur.
Les poids de toutes les morph targets du modèle seront ainsi enregistrés.
Utiliser les morph targets depuis le code.
Dans votre projet C# Evergine, vous pouvez contrôler le morphing d’un mesh en pilotant les poids de ses morph targets, comme dans la section précédente. Vous pouvez les modifier dans le composant SkinnedMeshRenderer, à l’aide de la propriété suivante :
- float[] MorphTargetWeights. Si cette propriété est null ou vide, le mesh ne possède aucune morph target. Sinon, ce tableau contient une valeur float par morph target, dans le même ordre que celui affiché dans le Model Viewer et dans le panneau d’éditeur du SkinnedMeshRenderer.
