Le graphique de déformateur vous permettant de créer et de modifier des ressources de graphique de déformateur qui exécutent et personnalisent des déformations de maillage pour n'importe quel maillage surfacé dans l'Unreal Engine. Grâce aux graphiques de déformateur, vous pouvez créer et modifier une logique qui ajuste la géométrie du maillage pour affiner les comportements de déformation ou créer de toutes nouvelles déformations dans le moteur. Les graphiques de déformateur sont souvent utilisés pour affiner les comportements des tenues, des tissus et des structures capillaires en mouvement pour les personnages, ou pour des animations ponctuelles qui sont plus faciles à créer à l'aide de la logique de déformation que des animations créées manuellement.
Voici un exemple de structure capillaire avec déformateur (à gauche) et sans déformateur, qui « redresse » chaque courbe.
![]() |
![]() |
|---|---|
| Structure capillaire avec déformateur. | Structure capillaire sans déformateur « redressant » chaque courbe. |
Graphique de déformateur de structure capillaire
Un graphique de déformateur exprime la déformation appliquée sous la forme d'un graphique dans lequel le nœud du noyau de calcul personnalisé contient le code gérant la déformation. Les données d'entrée de déformation peuvent provenir de diverses sources, notamment les données de scène, les structures capillaires et les guides. La sortie du graphique écrit les valeurs de la structure capillaire, telles que la position et les attributs.
Pour en savoir plus sur le mode d'utilisation du graphique de déformateur et vous familiariser avec son éditeur, consultez la page Graphique de déformateur.
Le graphique de déformateur comporte plusieurs zones clés que vous devez connaître :
- Panneaux Source et Paramètres
- Graphique de déformateur
- Panneau Détails
- Panneau de l'éditeur de texte des shaders
Les éléments clés qui composent un graphique de déformateur sont les suivants :
-
Le nœud Primary fournit une liaison au type de données qu'il spécifie. Il doit être défini sur Composant de structure capillaire.
-
Les nœuds d'entrée Groom et Guides. Ceux-ci donnent accès aux données de structure capillaire et des guides, respectivement.
-
Le nœud Custom Compute Kernel (MyKernel) définit la déformation appliquée à la structure capillaire et aux guides.
-
Le nœud de sortie Write Groom écrit les données de structure capillaire modifiées.
- Ce nœud présente certaines limites :
- Utilisez les sorties Position ou Rayon pour écrire la position et le rayon de la structure capillaire. Utilisez la sortie Position et rayon pour écrire à la fois la position et le rayon.
- Seuls les attributs existants au sein d'une structure capillaire peuvent être écrits. Par exemple, vous ne pouvez écrire que la rugosité et non la couleur si une ressource de structure capillaire possède un attribut Rugosité, mais aucun attribut Couleur.
- Dans l'éditeur de texte des shaders, vous pouvez afficher les déclarations (en lecture seule) du nœud Custom Compute Kernel et ajouter votre code HLSL personnalisé pour définir la déformation de la structure capillaire.
Configurer un graphique de déformateur de structure capillaire
Pour utiliser cette fonctionnalité, vous devez tout d'abord d'activer le plug-in Graphique de déformateur dans le navigateur Plug-ins et redémarrer le moteur pour que les modifications prennent effet.
Pour configurer une structure capillaire avec un graphique de déformateur :
- Créez une ressource Graphique de déformateur dans le navigateur de contenu.
- Dans le panneau Source, définissez le menu déroulant du nœud Primary sur Composant de structure capillaire et faites glisser le nœud dans le graphique.
-
Faites un clic droit sur le graphique et ajoutez les nœuds suivants :
- Un nœud d'interface de données de structure capillaire qui vous donne accès à toutes les propriétés de la structure capillaire principale.
- Un nœud d'interface de données de sortie Write Groom qui vous donne accès à toutes les propriétés inscriptibles de la structure capillaire principale.
- Un nœud Custom Compute Kernel pour définir la logique de déformation de cette structure capillaire.
-
Connectez les nœuds du graphique pour obtenir ce résultat :
- Glissez-déposez un lien de sortie sur la broche Nouvelle entrée du nœud Custom Compute Kernel pour configurer automatiquement l'interface utilisateur du nœud avec le type et la fréquence. Vous pouvez également les configurer manuellement dans le panneau Détails de ce nœud.
-
Sélectionnez le nœud Custom Compute Kernel. Dans le panneau Détails sous Paramètres, définissez le domaine d'exécution sur l'un des éléments suivants :
- Le paramètre Courbe utilise un thread GPU par courbe.
- Le paramètre Points de contrôle utilise un thread GPU par point de contrôle
-
Utilisez l'éditeur de texte de shaders pour saisir votre code HLSL personnalisé pour la logique de déformation de cette structure capillaire.
- Compilez et enregistrez le graphique de déformateur.
Une fois le graphique de déformateur configuré, vous pouvez appliquer un déformateur de structure capillaire à un composant de structure capillaire ajouté à un maillage squelettique. Utilisez la case de sélection Déformateurs de maillage pour appliquer le déformateur de structure capillaire que vous avez créé.
Vous devez prendre en compte des éléments supplémentaires lors de la configuration d'un déformateur de structure capillaire :
- Vous pouvez accéder à des données supplémentaires, notamment des données de scène ou des paramètres d'entrée avec la logique Blueprint.
- Le noyau de calcul définit la logique de déformation. Il consomme des entrées et calcule des sorties. Chaque entrée possède un type spécifique (float, int, float3, etc.) et une fréquence (points de contrôle ou courbes). Vous pouvez faire glisser et connecter les liens d'entrée de l'interface de structure capillaire au noyau de calcul personnalisé pour permettre à l'interface utilisateur de configurer automatiquement le type et la fréquence, ou les configurer manuellement dans le panneau Détails.
- Tous les effets dépendants de temps et de jeu sur une structure capillaire ne sont visibles que lorsque l'éditeur est en cours de lecture ou de simulation.
Exemple de code de shader du graphique de déformateur de structure capillaire
L'exemple suivant illustre un déformateur de structure capillaire appliqué à une pilosité contenant quatre mèches verticales. Le déformateur modifie uniquement la position de la structure capillaire au fil du temps pour créer un effet de « vague ». La structure capillaire de gauche n'a pas de déformateur, celle de droite en a un.
La structure capillaire de gauche n'est pas déformée. La structure capillaire de droite a un déformateur.
Pour obtenir ce type d'effet avec un graphique déformateur, il est nécessaire de lire les propriétés Position au repos et Coordonnée U de la structure capillaire le long de chaque mèche pour calculer un décalage dynamique basé sur le temps.
Le code du noyau pour réaliser une telle déformation est similaire à celui-ci :
if (Index < ReadControlPointCount())
{
const float3 P = ReadInPosition(Index);
const float U = ReadInCoordU(Index);
const float T = abs(sin( U * ReadTime()));
WriteOutPosition(Index, P + T * float3(5,0,0));
}
Le noyau possède une variable implicite Index définissant l'index global du thread de GPU. Ceci est utilisé pour lire les points de contrôle corrects à l'aide de la fonction de lecture d'entrée :
ReadInPosition(Index)
ReadInCoordU(Index)
Vous devez simplement vous assurer que les données non valides ne sont pas accessibles, étant donné que le noyau est réparti en groupes de x threads (où la valeur par défaut est de 64 threads). La condition suivante est ajoutée pour cela :
if (Index < ReadControlPOintCount())
La sortie est écrite à l'aide de la fonction d'interface de sortie WriteOutPosition, comme suit :
WriteOutPosition(Index, MyTransformedPosition)
Éditeur de texte de shaders
L'éditeur de texte de shaders vous permet de modifier la programmation du nœud Custom Compute Kernel à l'aide du langage High-Level Shader Language (HLSL) pour contrôler des comportements de déformation de maillage spécifiques.
Ce panneau se trouve dans l'angle inférieur droit du graphique de déformateur. Il contient deux parties : Déclarations et Texte des shaders. La section Déclarations affiche les fonctions d'entrée et de sortie du noyau et est en lecture seule. Vous saisirez votre code HLSL personnalisé dans la section Texte des shaders.
Le panneau Éditeur de texte des shaders affiche les déclarations et certains codes de déformation personnalisés.
Lorsque vous compilez le graphique de déformateur, utilisez le panneau Sortie du compilateur situé sous le graphique pour rechercher les éventuelles erreurs. Toutes les erreurs détectées lors de la compilation s'affichent ici.
Pour en savoir plus et obtenir des exemples sur la façon d'utiliser l'éditeur de texte des shaders du graphique de déformateur, consultez les pages suivantes :

