Le plug-in Geometry Script fournit des fonctions Blueprint et Python permettant de créer des outils de modélisation et des flux de travail personnalisés. Dans ce guide, nous vous présentons les principes fondamentaux concernant l'utilisation du plug-in Geometry Script via des blueprints. Dans les étapes ci-dessous, nous vous expliquons comment générer un outil de maillage procédural pour la conception de niveaux, similaire aux outils de géométrie créés pour le projet d'exemple Lyra.
Dans ce guide, nous vous expliquons comment :
- générer une géométrie procédurale pour un blocage de niveau rapide ;
- utiliser des opérations booléennes pour découper un maillage de manière dynamique ;
- créer une fonction de précalcul de maillage statique.
L'outil que vous développez est un exemple de génération de maillage procédural et d'outils que vous pouvez créer avec le plug-in Geometry Script. Pour obtenir un exemple avancé, consultez le framework de génération procédurale de contenu, qui utilise le plug-in Geometry Script comme base. Pour en savoir plus sur cette trousse à outils, consultez la rubrique Présentation de la génération procédurale de contenu.
Outre la génération procédurale, vous pouvez créer d'autres flux de travail, notamment :
- Attribuer plusieurs matériaux aux ressources.
- Appliquer des booléens de maillage avec Python.
- Générer des volumes de blocage basés sur des enveloppes convexes.
Connaissances préalables
Pour comprendre et utiliser le contenu de cette page :
- Vous devez comprendre comment fonctionnent les blueprints.
- Vous devez lire la page de présentation du plug-in Geometry Script, en particulier la section concernant les nouveaux types d'objets introduits.
Dans ce guide, nous utilisons le modèle à la troisième personne. Vous pouvez cependant utiliser n'importe quel autre projet.
Activer le plug-in
Pour utiliser Geometry Script, vous devez activer le plug-in associé.
Pour activer le plug-in ou vous assurer qu'il est activé :
-
Dans la barre de menus, sélectionnez Modifier > Plug-ins.
-
Dans la barre de recherche, saisissez « geometry script ».
- Activez le plug-in Geometry Script et sélectionnez Oui dans la boîte de dialogue contextuelle.
- Redémarrez le moteur.
Créer une classe de blueprint
Pour commencer, vous devez vous assurer que vous disposez de la classe de blueprint appropriée. Étant donné que l'objectif est de créer un maillage procédural pour la conception de niveau, vous devez utiliser la classe GeneratedDynamicMeshActor.
Pour sélectionner une classe de blueprint :
- Dans le navigateur de contenu, faites un clic droit et sélectionnez Classe de blueprint.
-
Recherchez et sélectionnez GeneratedDynamicMeshActor.
- Nommez le blueprint BP_ProceduralGen.
Si la classe GeneratedDynamicMeshActor n'est pas disponible, le plug-in Geometry Script n'est pas activé.
Configurer des événements
Après avoir créé la classe, vous devez configurer l'événement spécifique pour remplir le maillage dynamique qui vous servira à créer votre outil.
Pour créer l'événement :
- Dans le navigateur de contenu, double-cliquez sur la classe de blueprint.
- Ouvrez le graphique d'événements.
-
Faites un clic droit sur le graphique et saisissez « maillage généré » pour filtrer les nœuds disponibles, puis sélectionnez Événement lors de la regénération du maillage généré. Cet événement se déclenche chaque fois que vous mettez à jour les paramètres du maillage dynamique, ce qui entraîne la regénération du maillage.
-
Promouvez la sortie Maillage cible vers une variable locale en faisant un clic droit sur sa broche et en sélectionnant Promouvoir vers la variable.
- Nommez la variable DynamicMesh, définissez le type sur Maillage dynamique et gardez-la privée. Cette variable représente le maillage dynamique que vous modifiez.
Générer une géométrie
Une fois la classe de blueprint et l'événement créés, vous pouvez commencer à ajouter des fonctions de scripts de géométrie. L'objectif de ce guide est de générer des ébauches de formes, que vous pouvez transformer et découper. Pour cela, vous devez commencer par créer le maillage que vous souhaitez modifier.
Pour créer un maillage :
- Faites glisser la broche d'exécution de la variable DynamicMesh, puis recherchez et sélectionnez le nœud Append Box. Une boîte de primitive est ainsi ajoutée au maillage dynamique.
-
Connectez la broche de sortie de la variable DynamicMesh à la broche d'entrée Maillage cible.
Avec ces premiers nœuds, vous avez créé un maillage procédural. Vous pouvez le tester en compilant et en faisant glisser le Blueprint dans votre niveau. Pour découvrir quelles autres formes vous pouvez créer instantanément, consultez la section Générer des primitives du document Référence du plug-in Geometry Script.
Ajouter un widget de transformation
Afin de pouvoir ajuster dynamiquement la transformation de votre maillage, vous pouvez ajouter des contrôles interactifs.
Pour ajouter des contrôles interactifs :
-
Créez une nouvelle variable publique appelée BoxSize et définissez le type sur Vecteur.
-
Dans le panneau Détails de cette variable, activez Instance modifiable et Afficher le widget 3D. Définissez la valeur par défaut sur 200, 200, 200. L'activation du widget 3D crée un manipulateur pour contrôler de manière interactive les transformations X, Y et Z.
- Faites glisser la variable et sélectionnez Obtenir BoxSize.
- Faites un clic droit sur la variable et sélectionnez Diviser la broche de structure. Les valeurs X, Y et Z de la variable déterminent les dimensions de la boîte.
-
Connectez les valeurs X, Y et Z correspondantes aux valeurs de dimension respectives de Append Box.
- Utilisez les fonctions Compiler (Ctrl + Alt) et Enregistrer (Ctrl + S).
Vous pouvez désormais générer un maillage de cube et ajuster dynamiquement les dimensions. Chaque ajustement avec le widget génère un nouveau maillage dynamique de la taille définie par rapport à la mise à l'échelle du maillage.

Pour que le widget apparaisse, vous devez être en mode Sélection.
Effectuer des modifications avec des opérations booléennes
Les opérations booléennes soustraient ou ajoutent des paires de maillages. Elles sont utiles pour ajouter rapidement des détails et des effets de déplacement à votre maillage. Pour créer le deuxième maillage pour la fonction booléenne, vous pouvez allouer un maillage temporaire à partir d'un pool de maillages. Le maillage temporaire évite toute géométrie inutile dans l'éditeur, ce qui réduit la charge de calcul.
Pour créer une opération booléenne :
- Faites un clic droit sur le graphique, puis recherchez et sélectionnez Obtenir un pool de maillage de calcul. Un maillage temporaire est ainsi ajouté pour effectuer une opération booléenne.
- Épinglez la broche d'exécution du nœud Append Box sur Obtenir un pool de maillage de calcul.
-
Faites glisser la broche Valeur de retour, puis recherchez et sélectionnez Request Mesh. Connectez les broches d'exécution.
- Faites glisser la broche Valeur de retour, puis recherchez et sélectionnez Append Cylinder. Ce nœud ajoute un maillage cylindrique que vous utiliserez pour soustraire du maillage de la boîte.
-
Promouvez la sortie Maillage cible vers une variable appelée BoolMesh. Définissez le type sur Maillage dynamique et gardez-le privé.
- Faites glisser la broche d'exécution de BoolMesh, puis recherchez et sélectionnez Apply Mesh Boolean. Vous utiliserez ce nœud pour appliquer l'opération booléenne à votre maillage.
- Faites glisser et connectez la variable DynamicMesh à l'entrée Maillage cible du nœud Apply Mesh Boolean.
-
Connectez BoolMesh à la broche Maillage d'outil du nœud Apply Mesh Boolean. Maillage d'outil représente le maillage avec lequel vous souhaitez effectuer l'opération booléenne. Ce paramètre est la raison pour laquelle vous avez ajouté le nœud Append Cylinder.
- Définissez le type d'opération dans le nœud Apply Mesh Boolean sur Soustraire.
- Après avoir appliqué les opérations nécessaires, vous devez remettre le maillage temporaire dans le pool afin que sa mémoire puisse être réutilisée. Connectez la broche d'exécution du nœud Apply Mesh Boolean pour libérer tous les maillages de calcul. Lorsque l'événement est déclenché, tous les maillages de calcul alloués au pool sont libérés.
- Utilisez les fonctions Compiler (Ctrl + Alt) et Enregistrer (Ctrl + S).
Lorsque vous compilez et affichez le plan dans l'éditeur de niveau, il est possible que vous ne constatiez aucun effet, car le maillage booléen est trop petit. Pour voir l'effet, vous pouvez définir manuellement la taille du maillage booléen ou l'ajuster dynamiquement à l'aide de widgets.
Ajouter des widgets
Tout comme vous avez créé un widget pour la primitive de boîte, vous pouvez faire de même pour le maillage booléen et l'emplacement.
Pour créer un widget :
-
Dans le panneau Variables, créez une variable publique pour l'emplacement du maillage booléen, nommez-la BoolLocation et définissez le type sur Vecteur.
-
Dans le panneau Détails, activez Instance modifiable et Afficher le widget 3D.
-
Faites un clic droit sur la broche Transformer du nœud Append Cylinder, sélectionnez Diviser la broche de structure, puis connectez la variable BoolLocation à Transform Location.
- Créez une autre variable publique, nommez-la BoolSize et définissez le type sur Vecteur. Vous pouvez l'utiliser pour ajuster la taille du maillage booléen.
- Dans le panneau Détails, activez Instance modifiable et Afficher le widget 3D, puis réglez la valeur par défaut sur 1, 1 et 5.
- Faites glisser la variable dans le graphique et sélectionnez Obtenir la taille booléenne.
- Faites un clic droit sur la broche et sélectionnez Diviser la broche de structure.
-
Connectez les broches Taille du booléen aux broches Échelle de transformation correspondantes du nœud Append Cylinder.
- Utilisez les fonctions Compiler (Ctrl + Alt) et Enregistrer (Ctrl + S).
Vous disposez désormais d'un maillage que vous pouvez transformer dynamiquement en différentes formes.

Fonction de précalcul en maillage statique
Maintenant que vous disposez de votre maillage généré dynamiquement, vous pouvez l'appliquer aux maillages statiques existants pour une conception de niveau rapide. Pour ce faire, vous pouvez créer une fonction et l'exposer au panneau Détails de l'éditeur de niveau.
Pour contrôler le moment où les maillages statiques sont mis à jour :
-
Créez une nouvelle fonction appelée Précalculer le maillage statique.
-
Dans le panneau Détails de la fonction, activez Appeler dans l'éditeur pour activer l'événement à partir de l'éditeur de niveau.
- Faites glisser la broche d'exécution de la fonction, puis recherchez et sélectionnez Obtenir un maillage dynamique. Cette fonction extrait le maillage dynamique actuellement utilisé.
-
Faites glisser la broche d'exécution Obtenir un maillage dynamique, puis recherchez et sélectionnez Copie de maillage à maillage statique. Connectez également Valeur de retour à À partir du maillage dynamique. Lorsque la fonction s'exécute, le maillage dynamique est intégré au maillage statique sélectionné.
- Pour sélectionner le maillage statique que vous souhaitez précalculer, vous devez exposer le paramètre à l'éditeur. Créez une variable publique, appelez-la TargetMesh et définissez le type sur Maillage statique.
- Faites glisser la variable dans le graphique et sélectionnez Obtenir TargetMesh.
- Faites un clic droit sur la broche de variable et sélectionnez Convertir en Get validé. Cette conversion configure la fonction pour exécuter le code uniquement si vous avez sélectionné un maillage.
-
Connectez la broche Maillage cible à À la ressource de maillage statique.
Script de précalcul final.
- Compilez et enregistrez.
-
Un bouton Précalculer en maillage statique figure désormais dans le panneau Détails de l'éditeur de niveau. Avant d'utiliser ce bouton, mettez à jour le maillage cible vers le maillage statique que vous souhaitez créer.
Examiner les résultats finaux
Grâce à la fonction Précalculer en maillage statique et au script de maillage procédural, vous pouvez utiliser le maillage dynamique pour mettre à jour en permanence les maillages statiques de votre niveau.
Script de maillage procédural final. Cliquez sur l'image pour agrandir.
À vous de jouer
En vous servant de ce que vous venez d'apprendre, essayez d'effectuer les tâches suivantes :
- Modifiez le maillage de boîte en une sphère.
- Ajoutez un deuxième maillage booléen pour un contrôle de modélisation supplémentaire.
- Utilisez Créer une nouvelle ressource de maillage statique à partir du maillage pour intégrer le maillage dynamique à un nouveau maillage statique au lieu d'un maillage existant.