Dernières actualités
Simulation de foule dans Houdini : guide pour organiser les agentsNettoyer des splines et générer des Spline Mesh avec Unreal Engine PCGCréer des images d’architecture avec Gemini : prompts et retouches d’intérieurMetaRoCE présenté à l’OCP Summit 2026 avec une approche RDMA ouverteRéglages de caméra dans Blender : perspective, profondeur de champ et panoramaGuide des composants dynamiques SketchUp : créez des éléments répétitifs avec des formulesGuide V-Ray Enmesh : appliquer correctement des motifs avec les UVW dans 3ds MaxPremières photos du package Intel Xeon 7 Diamond Rapids à 256 cœursBlender Geometry Nodes Simulation Zone : guide d’utilisation étape par étapeComment examiner une animation dans Blender avec Motion Paths et Graph Editor ?
TutorielsUnreal Engine

Nettoyer des splines et générer des Spline Mesh avec Unreal Engine PCG

Ce guide explique comment réduire les points de contrôle superflus d’une spline et régler la génération de mesh sur ses segments dans Unreal Engine PCG. Les exemples s’appuient sur des documentations officielles de l’API Python correspondant à différentes versions.

Éléments de bordure modulaires disposés le long d’une spline sinueuse dans un modèle de terrain architecturalImage IA
Image d’illustration générée par IA.Image : 3dsınıfı / FCA AI

En bref

  1. PCGCleanSplineSettings propose des paramètres pour supprimer les points de contrôle superposés ou inutiles dans les segments linéaires.
  2. PCGSpawnSplineMeshSettings crée un Spline Mesh Component pour chaque segment de la spline.
  3. La documentation sur le nettoyage concerne l’API Python expérimentale d’Unreal Engine 5.7, tandis que celle sur la génération de mesh concerne la version 5.5.
  4. Les remplacements de propriétés des paramètres de mesh sont pris en charge à l’échelle des données ; les remplacements par point de contrôle ne le sont pas.

Ce que vous allez apprendre dans ce guide

Ce guide présente les options permettant de modifier les données de spline et de générer des meshes le long d’une spline avec les outils Procedural Content Generation (PCG) d’Unreal Engine. Dans la première partie, nous examinerons les paramètres de PCGCleanSplineSettings, qui servent à nettoyer les points de contrôle superflus, qu’ils soient superposés ou alignés. Nous expliquerons ensuite comment la classe PCGSpawnSplineMeshSettings crée des composants de mesh sur les segments d’une spline.

L’objectif n’est pas de produire pas à pas un modèle architectural précis, mais de comprendre le rôle de ces deux groupes de paramètres et les choix qu’ils influencent dans un processus de production. La documentation décrit les propriétés des classes, mais ne fournit ni script Python complet ni chemin d’accès dans les menus de l’éditeur pour créer un graphe PCG particulier. Les étapes ci-dessous proposent donc un ordre de travail fondé sur les propriétés documentées.

Prérequis et remarque sur les versions

Les deux pages d’API utilisées comme sources concernent des versions différentes d’Unreal Engine : la classe de nettoyage des splines figure dans la documentation expérimentale de l’API Python d’Unreal Engine 5.7, tandis que la classe de génération de Spline Mesh apparaît dans la documentation expérimentale de l’API Python de la version 5.5. Cela ne signifie pas que les fonctionnalités sont disponibles de la même façon dans une seule et même version, ni que les deux classes ont été testées ensemble. Consultez également la documentation de l’API correspondant à la version utilisée dans votre projet.

Les deux classes sont définies dans le module PCG. La classe de nettoyage hérite de PCGSettings ; les paramètres de génération de mesh utilisent également cette classe de base. La documentation ne mentionne aucune exigence de compte ou de licence. Si vous prévoyez d’utiliser les paramètres PCG via Python, consultez la documentation de l’API Python de la version choisie. En l’absence d’exemple de script prêt à l’emploi dans la documentation, aucun code exécutable n’est fourni ici.

Étapes de mise en œuvre

  1. Définissez les données de spline et l’objectif. Commencez par déterminer quelle fonction géométrique remplit la spline et quel type de mesh doit être généré le long de celle-ci. Une limite paysagère, un bord de route ou un élément architectural linéaire peuvent, par exemple, être représentés par une spline ; toutefois, le mesh à utiliser et l’organisation du projet ne sont pas précisés dans ces documents. À cette étape, il s’agit d’évaluer quels points ou segments influencent réellement la forme avant de modifier la spline.

  2. Choisissez le comportement de nettoyage. PCGCleanSplineSettings traite deux cas principaux pour supprimer les points de contrôle superflus le long d’une spline : les points situés au même endroit et ceux placés sur un segment linéaire entre les points précédent et suivant. remove_collinear_control_points contrôle la suppression des points situés sur des segments linéaires qui n’influencent pas le calcul final de la spline. fuse_colocated_control_points permet de fusionner les points qui se trouvent dans la limite de distance définie dans l’espace monde.

  3. Réglez les seuils avec précaution. colocation_distance_threshold définit la distance à partir de laquelle deux points de contrôle sont considérés comme étant au même endroit. collinear_angle_threshold est le seuil angulaire utilisé pour déterminer si un point est aligné sur le segment entre les points précédent et suivant. La documentation décrit le type et le rôle de ces propriétés, mais ne recommande aucune valeur pour un projet donné. Il faut donc tester les seuils sur les données de la scène afin de préserver la forme de la spline.

  4. Vérifiez l’espace de mesure et l’unité angulaire. use_spline_local_space permet d’utiliser l’espace local de la spline plutôt que l’espace monde pour le calcul des distances. Lorsque use_radians est activé, le seuil angulaire est directement exprimé en radians ; si cette propriété change, la valeur existante de CollinearAngleThreshold est automatiquement convertie. Tenez compte de ce changement d’unité lorsque vous saisissez les valeurs manuellement.

  5. Évaluez la génération de mesh le long de la spline nettoyée. PCGSpawnSplineMeshSettings crée un Spline Mesh Component pour chaque segment de la spline fournie. Si le nettoyage vise à supprimer les points sans effet sur la géométrie, sans en modifier la forme, il est préférable d’évaluer les paramètres de nettoyage avant la génération du mesh. Les documents sources n’indiquent pas comment relier ces deux classes dans un graphe particulier : cet ordre est donc une recommandation de mise en œuvre, et non un schéma de connexion prêt à l’emploi.

  6. Vérifiez les propriétés du mesh et son chargement. spline_mesh_descriptor fournit le descripteur du composant de mesh, tandis que spline_mesh_params expose les paramètres du Spline Mesh. Lorsque synchronous_load est activé, le chargement synchrone des meshes et des matériaux est forcé. Évaluez l’incidence de cette option sur le comportement de chargement du projet ; la documentation ne précise ni les résultats en matière de performances ni les cas où il est préférable de l’utiliser.

  7. Tenez compte des limites des remplacements et du post-traitement. spline_mesh_override_descriptions spécifie les remplacements du descripteur du Spline Mesh. La documentation indique explicitement que, pour l’instant, seuls les attributs à l’échelle des données sont pris en charge et que les remplacements par point de contrôle ne fonctionnent pas. post_process_function_names reçoit la liste des fonctions à appeler sur l’acteur cible après la création du mesh. Ces fonctions doivent être sans paramètre et porter le marqueur CallInEditor.

Erreurs fréquentes

  • Interpréter les documentations 5.5 et 5.7 comme une garantie pour une seule version : les deux classes sont documentées pour des versions différentes. Vérifiez séparément les propriétés disponibles dans la version utilisée.

  • Augmenter les seuils sans précaution : les seuils de distance et d’angle influencent le nettoyage. Les sources ne donnent aucune valeur idéale universelle ; vérifiez que la forme de la spline est préservée.

  • S’attendre à des remplacements par point de contrôle : la description des remplacements de mesh indique que ce cas n’est pas pris en charge. Tenez compte de cette limite des données à l’échelle globale lors de la conception.

  • Oublier le changement de use_radians : l’unité angulaire change et le seuil existant est converti automatiquement. Lorsque vous transférez une valeur depuis un autre paramètre ou processus, vérifiez l’unité utilisée.

  • Présumer de démarches dans l’éditeur qui ne sont pas documentées : ces sources décrivent les classes et leurs propriétés ; elles ne proposent ni disposition de nœuds particulière ni exemple Python exécutable.

Quels avantages pour les workflows d’architecture, d’architecture d’intérieur et d’archviz ?

Les équipes qui créent à partir de splines des routes, bordures, éléments linéaires de type garde-corps ou limites paysagères peuvent tirer parti du nettoyage des points de contrôle sans effet et de la génération de meshes le long des segments. Les paramètres de nettoyage doivent servir à préserver la forme de la géométrie ; pour la génération de mesh, il faut également évaluer dans le projet le descripteur choisi, les paramètres et le comportement de chargement. La compatibilité de l’API ne doit pas être négligée, en particulier dans les équipes qui utilisent plusieurs versions d’Unreal Engine.

Ces documents ne précisent ni les exigences matérielles, ni les gains de performances, ni les conditions de licence. Il n’est donc pas possible d’en déduire les performances du nettoyage des splines ou du chargement synchrone sur une machine donnée. Pour les scènes de grande envergure, l’approche la plus prudente consiste à tester les paramètres dans le projet réel et avec la version cible, puis à vérifier la compatibilité des fonctionnalités de l’API Python expérimentale avant de les intégrer au processus de production.

Étapes suivantes

Commencez par consulter la documentation de l’API Python PCG de la version d’Unreal Engine choisie et comparez-y les propriétés des deux classes. Modifiez ensuite les paramètres de nettoyage des points de contrôle sur une petite spline de test et observez leur effet sur la forme. Pour la génération de mesh, vérifiez le descripteur, les paramètres et les limites des remplacements à l’échelle des données. Avant de passer à une scène de production, confirmez que les fonctions sont disponibles dans la version utilisée par l’équipe et qu’elles produisent le résultat attendu.

Sources et licence

Ce guide a été adapté en français à partir de la description de PCGCleanSplineSettings dans la documentation expérimentale de l’API Python d’Unreal Engine 5.7 et de celle de PCGSpawnSplineMeshSettings dans la documentation expérimentale de l’API Python d’Unreal Engine 5.5. Les deux sources sont des documentations officielles et leurs fiches indiquent une licence libre.

Sources

2 sources
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/python-api/class/PCGCleanSplineSettings
Résumé
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/python-api/class/PCGSpawnSplineMeshSettings
Résumé

Les textes sources ne sont pas republiés ; les courtes citations sont signalées, le reste est notre propre résumé et commentaire.

L’avis de 3dsınıfı
3dL’analyse de la rédaction

Évaluer le nettoyage des splines et la génération de meshes par segment dans un même pipeline de production peut faciliter la gestion des éléments linéaires répétitifs. Pour les équipes d’architecture et d’archviz, l’essentiel est de tester les paramètres en fonction de la scène et du rôle de la spline ; la documentation ne fournit ni seuils prêts à l’emploi ni mesures de performances.

Il est impossible de tirer de ces sources une conclusion sur le coût de démarrage pour les bureaux et les étudiants en Turquie ; les conditions de licence et les exigences matérielles ne sont pas non plus précisées. Avant de prendre une décision de production, il faut tenir compte des différences de version : les documentations 5.5 et 5.7 portent sur des classes distinctes, répertoriées dans la documentation expérimentale de l’API Python.

Questions fréquentes

À quoi sert Unreal Engine PCGCleanSplineSettings ?

Cette classe propose des paramètres pour nettoyer les points de contrôle situés au même endroit ou devenus superflus dans des segments linéaires. Les seuils de distance et d’angle déterminent quels points sont concernés.

Comment PCGSpawnSplineMeshSettings génère-t-il des meshes le long d’une spline ?

Il crée un Spline Mesh Component pour chaque segment de la spline fournie. La documentation décrit le descripteur de mesh, les paramètres du Spline Mesh et le chargement synchrone, entre autres réglages.

Les remplacements de Spline Mesh peuvent-ils s’appliquer à chaque point de contrôle ?

D’après la documentation, les remplacements ne prennent actuellement en charge que les attributs à l’échelle des données ; les remplacements par point de contrôle ne fonctionnent pas.

Les commentaires et le forum sont en turc.Rejoindre la discussion
+

À lire aussi