Le format de fichier Alembic (ABC) est un framework Interchange de graphismes libre qui distille des scènes complexes et animées dans un ensemble de résultats géométriques précalculés non procéduraux et indépendants des applications. Unreal Engine 4 (UE4) vous permet d'importer vos fichiers Alembic via Alembic Importer. Cela vous permet de créer librement des animations complexes en externe, puis de les importer dans UE4 pour le rendu en temps réel.
Importez des fichiers Alembic de la même manière que bon nombre d’autres formulaires d'[importation de contenu] (working-with-content) dans UE4.
Vous pouvez également regarder la branche en direct d'Unreal Engine sur les sujets d'animation qui traitent de l'importateur de fichiers Alembic (Alembic File Importer) :
Exporter des caches Alembic
Pour exporter un cache Alembic depuis Autodesk Maya :
-
Dans le menu File (Fichier) sous Cache et Alembic Cache (Cache Alembic), sélectionnez Export All to Alembic… (Tout exporter vers Alembic…) [ou sélectionnez l’option Selection (Sélection)] en fonction de vos besoins.
-
Dans la fenêtre Export (Exporter) sous Advanced Options (Options avancées), activez les options UV Write (Écriture des UV) et Write Face Sets (Écrire des ensembles de faces), puis cliquez sur Export.
Vous devrez activer l’option Write Face Sets si vous prévoyez de créer des matériaux lors de l'importation dans Unreal Engine 4, car les matériaux sont créés en fonction des noms d'ensembles de faces trouvés.
Importer des fichiers Alembic
Pour importer un fichier Alembic dans Unreal Engine 4 :
-
Dans le navigateur de contenu, cliquez sur le bouton Import (Importer) et sélectionnez votre fichier .abc.
-
La fenêtre Alembic Cache Import Options (Options d'importation du cache Alembic) apparaîtra. Vous pourrez y définir la méthode ou les options d'importation. Cette fenêtre affiche le nom du fichier et l'emplacement source de l'importation. Vous verrez également des options de case à cocher pour les ressources de votre fichier que vous pouvez inclure ou exclure du processus d'importation (vous pouvez également utiliser la case à cocher de niveau supérieur pour inclure ou exclure toutes les pistes).
Actuellement, Unreal Engine ne prend en charge que les maillages contenant des polygones à trois et quatre côtés. Vos données Alembic ne pourront pas être chargées si votre géométrie contient des polygones avec plus de quatre côtés, ou si votre géométrie est constituée de surfaces NURBS ou SubDiv.
Importer en tant que maillage statique
Pendant le processus d'importation, vous pouvez définir comment importer votre contenu. Par défaut, le Type d'importation Alembic est défini sur Maillage statique.

L'importation d'un cache Alembic en tant que maillage statique n’importe qu’une seule image, spécifiée par la valeur Frame Start (début de l’image) dans la section Sampling (échantillonnage), sous la forme d'un ou de plusieurs maillages statiques. L'animation Alembic à partir de cette image sera importée en tant que ressource de maillage statique et sans animation. Les paramètres suivants sont également disponibles :
Options de maillage statique
Paramètre | Description |
---|---|
Fusionner les maillages | Cette option permet de fusionner les maillages statiques lors de l'importation (cela peut entraîner des problèmes avec les ensembles d’UV qui se chevauchent). |
Propager les transformations de matrice | Activer cette option pour appliquer des transformations de matrice aux maillages avant de les fusionner. (Voir Propager les transformations de matrice.) |
Générer des UV de texture de lumière | Activer cette option pour créer des UV de texture de lumière lors de l'importation. |
Lors de l'importation d'un fichier Alembic en tant que maillage statique, si vos données contiennent plusieurs maillages, vous pouvez utiliser l’option Fusionner les maillages pour créer un seul maillage statique dans Unreal Engine. Si vous désactivez cette option, chaque maillage de votre fichier Alembic sera importé dans UE4 en tant que maillage statique individuel.
Propager les transformations de matrice
Lorsque vous activez l’option Fusionner les maillages, indiquez s'il faut ou non Propager les transformations de matrice avant de fusionner les maillages. Cette opération prend les données de transformation contenues dans le fichier Alembic et les propage aux maillages lors de la fusion, de sorte qu'ils conservent leurs données de transformation.
Considérez l’exemple de scène créé ci-dessous que nous exportons sous forme de cache Alembic.

Lorsque nous importons le fichier dans UE4 en tant que maillage statique avec l’option Fusionner les maillages et Propager les transformations de matrice, nous obtenons ce qui suit :

Si nous choisissons l’option Fusionner les maillages, mais que nous décochons l'option Propager les transformations de matrice, nous obtenons le résultat suivant :

Chacun des maillages est fusionné à l’origine 0,0,0.
Options d'échantillonnage

Paramètre | Description |
---|---|
Type d'échantillonnage | Le type d’échantillonnage effectué lors de l’importation de l’animation.
|
Début de l'image | Index de départ auquel démarrer l'échantillonnage de l'animation. |
Fin de l'image | Index de fin auquel arrêter l'échantillonnage de l'animation. |
Ignorer les images vides au début de la séquence Alembic | Ignorer les images vides (pré-roulis) où il n'y a pas de géométrie et commencer l'importation à l'image qui contient des données réelles. |
Options de calcul de normales

Paramètre | Description |
---|---|
Forcer un groupe de lissage par objet | Cette option permet de forcer les normales lissées pour chaque objet individuel au lieu de calculer les groupes de lissage. |
Seuil d'angle d’arête vive | Valeur seuil qui détermine si un angle entre deux normales doit être considéré comme vif (plus la valeur est proche de 0 et plus le lissage est prononcé). |
Recalculer les normales | Activer cette option pour forcer le recalcul des normales. |
Ignorer les triangles dégénérés | Activer cette option pour ignorer les triangles dégénérés lors du calcul des tangentes et des normales. |
Méthode de calcul des normales
Vous trouverez ci-dessous un aperçu détaillé de la méthode de calcul des normales en fonction du Type d’importation et de la manière dont les normales sont utilisées dans le fichier à importer.
- Lors de l'importation d'un fichier contenant des normales pour toutes les images :
-
Pour les maillages statiques ou le cache de géométrie : le moteur utilise les normales existantes.
-
Pour les maillages squelettiques : les normales de la première image déterminent les groupes de lissage, qui sont utilisés pour calculer les normales de l'image moyenne et toutes les bases et cibles de morphose (nous faisons cela dans tous les cas).
-
- Lors de l'importation d'un fichier contenant des normales uniquement pour les premières images :
-
Pour les maillages statiques : Si vous utilisez l’image 0, le moteur utilise les normales existantes. Sinon, il calcule les groupes de lissage et les normales pour l'image demandée.
-
Pour le cache de géométrie : le moteur calcule les groupes de lissage et les normales résultantes pour toutes les images.
-
- Lors de l'importation d'un fichier qui ne contient aucune normale :
- Le moteur calcule les normales non lisses, génère des groupes de lissage en fonction des normales calculées et recalcule les normales dans les groupes de lissage.
Lors de l'activation de l’option Recalculer les normales, le chemin spécifié ci-dessus est utilisé (lorsqu’il n’y a pas de normale).
Lors de l'importation en tant que maillage squelettique, si votre animation présente un delta de normale important, vous risquez d’avoir du mal à obtenir des normales correctes. Il s'agit d'un problème connu causé par la façon dont les cibles de morphose peuvent modifier les normales de face et de vertex. Pour contourner ce problème, vous pouvez utiliser la fonctionnalité de cache de tenue (expérimentale).
Vous pouvez activer cette fonctionnalité dans vos Paramètres de projet à l'aide des options Prendre en charge le calcul du cache de tenue et Forcer tous les maillages surfacés à recalculer les tangentes.
Cela devrait recompiler les shaders au prochain démarrage de l'éditeur. Lorsque vous ouvrez la ressource Skeletal Mesh (Maillage squelettique), vous devriez pouvoir activer l'option Recalculer la tangente pour chaque matériau ou section.
Méthode de calcul des groupes de lissage
Si les maillages que vous importez ont des arêtes vives, vous pouvez examiner le Seuil d'angle d'arête vive et la manière dont le calcul du groupe de lissage est effectué.


Pour calculer les groupes de lissage, les normales des vertex et des faces sont d'abord calculées, puis utilisées pour examiner toutes les faces qui se connectent à une face particulière. En calculant l'angle entre les normales, nous pouvons déterminer si une arête est vive ou estompée (similaire à l'outil Soft/Hard Edges dans Maya). Ci-dessous, l'image de gauche serait considérée comme une arête estompée et l'image de droite comme une arête vive. Cela s’explique par le fait que l'angle entre les deux normales dans l'image de gauche est plus petit que celui de l'angle des deux normales dans l'image de droite.

Sachant cela, nous utilisons un produit scalaire pour générer une plage de 0 à 1 comme seuil pour définir quand une arête doit être vive ou estompée. Par exemple, une valeur proche de 1 indique un angle plus grand, ce qui donne une arête vive, tandis qu'une valeur plus proche de 0 indique une arête estompée. Ces informations sont ensuite utilisées pour générer des groupes de normales partageant des arêtes estompées. Pour chacun de ces groupes, nous lissons les normales sur les faces, créant ainsi des faces lisses.
Le fait de forcer un groupe de lissage par objet rend chaque objet individuel complètement lisse (toutes les arêtes sont estompées).
Importer sous forme de cache de géométrie
L'importation en tant que cache de géométrie crée un nouveau type de ressource d'animation qui permet la lecture de séquences à vertex variables.

L'animation Alembic importée sera lue sous forme de folioscope d'images et les performances seront mises à l’échelle en fonction de la complexité de votre maillage.
Le cache de géométrie (Geometry Cache) inclut les mêmes paramètres Échantillonnage et Calcul de normale que l'option d'importation Maillage statique, tout en ajoutant une prise en charge supplémentaire pour les matériaux et les vecteurs de mouvement. Cette méthode d'importation a la capacité de créer des matériaux en fonction des noms d'ensembles de faces trouvés (cela ne fonctionnera pas sans ensembles de faces définis dans votre application externe et exportés dans le cadre du cache Alembic). Vous pouvez modifier l’option Vecteurs de mouvement trouvée dans la catégorie Cache de géométrie de l’importateur pour activer l'importation de vecteurs de mouvement :

Cliquez sur la petite flèche vers le bas en bas de la section Cache de géométrie pour voir ces options.
Paramètre | Description |
---|---|
Aucun vecteur de mouvement | Aucun vecteur de mouvement ne sera présent dans le cache de géométrie. Cette option est activée par défaut. Le choix de cette option n'entraîne aucun flou de mouvement. |
Importer les vitesses ABC comme vecteurs de mouvement | Importer les vitesses du fichier Alembic et les convertir en vecteurs de mouvement. Le stockage des vecteurs de mouvement sur le disque augmentera la taille du fichier. Si votre cache de géométrie contient une topologie changeante (le nombre de vertex change pendant l'animation), assurez-vous d'exporter les vitesses des vertex depuis votre application 3D et d'utiliser cette option. |
Calculer les vecteurs de mouvement pendant l'importation | Forcer le calcul des vecteurs de mouvement lors de l'importation. Le stockage des vecteurs de mouvement sur le disque augmentera la taille du fichier. Si votre cache de géométrie ne contient pas de topologie changeante (le nombre de vertex change pendant l'animation), utilisez cette option. |
Incluez des vecteurs de mouvement pour calculer les vitesses des vertex de votre modèle et utilisez-les pour calculer le flou de mouvement.
Actuellement, les ressources du cache de géométrie ne prennent pas en charge le tampon de contiguïté, qui est requis pour la configuration de la tessellation. Pour contourner ce problème, vous pouvez importer une animation en tant que Maillage squelettique avec des cibles de morphose (ce qui est une méthode d’importation plus compressée), car elle prendra en charge la tessellation.
Importer en tant que squelette
Cette méthode importe le fichier Alembic en tant que maillage squelettique contenant des poses de base comme cibles de morphose et une fusion entre elles pour obtenir l'image d'animation correcte. L'importation en tant que maillage squelettique est le moyen le plus efficace de lire une animation Alembic, à condition que le nombre de vertex ne change pas.

Lors de l'importation, votre séquence d'animation sera compressée à l'aide d'un schéma d'analyse en composantes principales (ACP), où des poses communes (bases) sont extraites et pondérées pour reconstituer l'animation d'origine pendant le temps de lecture. Lors de l'importation en tant que maillage squelettique, en plus des options Échantillon, Calcul de normale et Créer des matériaux, vous pouvez également définir le pourcentage (ou le nombre fixe de bases utilisées) pour ajuster le niveau de compression.
Options de compression
Paramètre | Description |
---|---|
Fusionner les maillages | Cette option permet de fusionner les maillages individuels à des fins de compression. |
Précalculer l'animation de matrice | Cette option permet de précalculer l'animation de matrice uniquement en tant qu'animation de vertex. |
Type de calcul de base | Déterminer comment le nombre final de bases stockées en tant que cibles de morphose est calculé.
|
Pourcentage (nombre maximal) du nombre total de bases | Générer le pourcentage donné ou le nombre fixe de bases comme cibles de morphose. Il s'agit de l’un des aspects les plus importants du niveau de compression. La saisie d'une faible quantité de bases compresse davantage l'animation, mais des détails fins de l'animation peuvent être perdus. À l’inverse, la saisie d’un nombre élevé de bases entraîne une compression moindre, mais conserve plus de détails d’animation. |
Pourcentage minimum d'influence du nombre de vertex | Définir le pourcentage minimum de vertex influencés requis pour qu'une cible de morphose soit valide. Ce paramètre vous permet de déterminer quand une base ou une cible de morphose est importée en fonction de votre pourcentage d'influence défini. Par exemple, dans le cas d’un modèle avec 1000 |
Les animations contenant un déplacement de vertex important par rapport à l'origine peuvent provoquer une distorsion du maillage squelettique. Vous pouvez atténuer ce problème en choisissant l’option Aucune compression pour le type de calcul de base et en activant l’option Fusionner les maillages.