Le système de validation UGC est le mécanisme technique de Roblox qui vérifie si les actifs d'avatar répondent aux spécifications de la plateforme avant que vous puissiez les télécharger et les publier sur le Marketplace. Ce processus garantit que les corps d'avatar, les cosmétiques, les vêtements et les accessoires se comportent de manière cohérente sur la plateforme.
Le système de validation UGC s'exécute chaque fois que vous :
- Essayez de télécharger un actif d'avatar sur le Marketplace via Studio.
- Appelez les API AvatarCreationService pour la création d'actifs d'avatar dans l'expérience.
Au cours de ce processus, le système de validation UGC examine votre actif pour voir s'il répond aux exigences des catégories de validation spécifiques à son type d'actif. Pour une liste complète de ces exigences, consultez Spécifications des corps, Spécifications des têtes dynamiques, Spécifications du maquillage, Spécifications des accessoires rigides et Spécifications des accessoires empilés.
Lorsque un actif d'avatar passe la validation, vous pouvez poursuivre le processus de téléchargement dans Studio en payant les frais de téléchargement, en soumettant l'actif pour modération, et en le vendant sur le Marketplace, ou le joueur peut procéder à l'achat de l'actif d'avatar qu'il a créé au sein d'une expérience.

Lorsque un actif d'avatar échoue à la validation, vous ou le joueur recevez des messages d'erreur avec des informations sur les raisons pour lesquelles l'actif d'avatar n'a pas réussi la validation. Pour une assistance au dépannage, le système de validation UGC dispose d'outils de visualisation avec des contrôles qui fournissent des guides visuels spécifiques à l'actif sur comment corriger ou améliorer votre actif afin qu'il puisse passer la validation.

Catégories de validation
Le système de validation UGC organise la validation en plusieurs catégories de haut niveau. Pour plus d'informations sur ces catégories et certains domaines qu'elles valident, consultez le tableau suivant.
| Catégorie | Ce qu'elle valide |
|---|---|
| Schéma |
|
| Géométrie du maillage |
|
| Textures / matériaux |
|
| Rigging / skinning |
|
| Cages intérieures et extérieures |
|
| Attaches |
|
| Tête dynamique |
|
| Sécurité / modération |
|
Vérifications de visualisation
Le système de validation UGC comprend des outils de visualisation optionnels avec des contrôles pour vous aider à identifier, comprendre, diagnostiquer et corriger les actifs d'avatar qui ne sont pas encore prêts à être sur le Marketplace. Lorsqu'elles sont activées, les vérifications de visualisation fournissent des informations sur les erreurs de validation pour les actifs non conformes, et des évaluations de qualité pour les actifs conformes qui pourraient être améliorés.


Pour accéder aux outils de visualisation du système de validation UGC, vous devez d'abord activer la fonctionnalité bêta. Pour activer et utiliser les vérifications de visualisation optionnelles :
Dans Studio, accédez à Fichier > Fonctionnalités bêta.
Activez Visualiser la validation UGC.
Redémarrez Studio, puis dans le mezzanine, cliquez sur l'icône plus pour ajouter un onglet personnalisé. Un nouvel onglet s'affiche.

Dans votre onglet personnalisé, cliquez sur le bouton Ajouter des outils. La fenêtre contextuelle Ajouter des outils s'affiche.

Activez Validation UGC pour l'ajouter à votre barre d'outils, puis fermez la fenêtre.
Revenez à votre onglet personnalisé et sélectionnez le bouton Validation UGC pour exécuter le plugin. Une fenêtre Validation UGC s'affiche.
Dans la fenêtre Explorateur, sélectionnez un corps de personnage, une tête dynamique, un accessoire rigide ou un accessoire empilé, puis revenez à la fenêtre Validation UGC et cliquez sur le bouton Exécuter la validation. Une fenêtre contextuelle s'affiche.
Dans la fenêtre contextuelle :
Confirmez le type d'actif de l'actif d'avatar que vous avez sélectionné. Par exemple, si vous avez sélectionné un accessoire empilé de type Enum.AccessoryType.Pants, utilisez le menu déroulant pour sélectionner PantsAccessory.

Cliquez sur le bouton Exécuter la validation.
Le service de validation s'exécutera en arrière-plan et rapportera les résultats dans la fenêtre Validation UGC sous forme d'une combinaison d'erreurs et/ou d'avertissements en fonction de l'état de votre actif. Pour des informations sur chaque vérification visuelle de validation, consultez les sous-sections suivantes.
Measure_Cage_Distance_Head
Measure_Cage_Distance_Head est une vérification de validation qui évalue à quel point la cage extérieure de la tête d'avatar épouse étroitement le maillage de la tête, vérifiant que la cage ne flotte ni trop loin du maillage ni ne s'enfonce à l'intérieur.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité ne peut pas être correctement calculé en raison de données d'entrée incorrectes ou incomplètes. Veuillez vérifier votre modèle ou signaler un bug. | Bloque la validation |
| La cage de la tête intersecte le maillage de la tête. {negativeSDFPercent}% des sommets de la cage de tête sont à l'intérieur du maillage de la tête. | Bloque la validation |
| La cage de la tête est trop loin du maillage de la tête. La distance maximale entre la cage de tête et le maillage est {max_sdf}, ce qui dépasse le seuil autorisé {max_sdf_threshold} | Bloque la validation |
| Avertissement de qualité de l'actif : le score de distance de la cage de tête est {score}. La distance maximale entre la cage de tête et le maillage est {max_distance}, {negative_sdf_percent}% des sommets de la cage de tête sont à l'intérieur du maillage de la tête. | Avertissement |
Measure_Cage_Mesh_Distance
Measure_Cage_Mesh_Distance est une vérification de validation qui évalue à quel point la cage extérieure des vêtements empilés suit le maillage rendu, signalant lorsqu'une cage s'éloigne trop ou s'enfonce dans le maillage.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité ne peut pas être correctement calculé en raison de données d'entrée incorrectes ou incomplètes. Veuillez vérifier votre modèle ou signaler un bug. | Bloque la validation |
| La cage extérieure intersecte le maillage rendu. {negativeSDFPercent}% des sommets de la cage extérieure sont à l'intérieur du maillage rendu. | Bloque la validation |
| La cage extérieure est trop loin du maillage rendu. La distance maximale entre la cage extérieure et le maillage est {max_sdf}, ce qui dépasse le seuil autorisé {max_sdf_threshold}. | Bloque la validation |
| Avertissement de qualité de l'actif : le score de distance cage-maillage est {score}. La distance maximale entre la cage extérieure et le maillage est {max_distance}, {negative_sdf_percent}% des sommets de la cage extérieure sont à l'intérieur du maillage rendu. | Avertissement |
Measure_Cage_Mesh_Distance_Avatar
Measure_Cage_Mesh_Distance_Avatar est une vérification de validation qui évalue à quel point la cage extérieure complète du corps suit le maillage du corps, signalant lorsqu'une cage flotte trop loin de la surface ou l'intersecte.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité ne peut pas être correctement calculé en raison de données d'entrée incorrectes ou incomplètes. Veuillez vérifier votre modèle ou signaler un bug. | Bloque la validation |
| La cage du corps intersecte le maillage du corps. {negativeSDFPercent}% des sommets de la cage du corps sont à l'intérieur du maillage du corps. | Bloque la validation |
| La cage du corps est trop loin du maillage du corps. La distance maximale entre la cage du corps et le maillage est {max_sdf}, ce qui dépasse le seuil autorisé {max_sdf_threshold}. | Bloque la validation |
| Avertissement de qualité de l'actif : le score de distance de la cage du corps est {score}. La distance maximale entre la cage du corps et le maillage est {max_distance}, {negative_sdf_percent}% des sommets de la cage du corps sont à l'intérieur du maillage du corps. | Avertissement |
Measure_Cage_Relevancy
Measure_Cage_Relevancy est une vérification de validation qui évalue dans quelle mesure une partie de la cage extérieure que vous avez déplacée se situe réellement au-dessus de l'accessoire, de sorte que les modifications de la cage restent là où le vêtement en a besoin.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité ne peut pas être correctement calculé en raison de données d'entrée incorrectes ou incomplètes. Veuillez vérifier votre modèle ou signaler un bug. | Bloque la validation |
| {outer_cage_face_irrelevant_percent}% des sommets de la cage extérieure modifiée ne couvrent pas l'accessoire. Assurez-vous de ne déplacer la cage extérieure que là où cela est nécessaire. | Bloque la validation |
| Avertissement de qualité de l'actif : le score de pertinence de la cage est {score}. {irrelevant_percent}% des sommets de la cage extérieure modifiée ne couvrent pas l'accessoire. | Avertissement |
Measure_Cage_UV
Measure_Cage_UV est une vérification de validation qui vérifie si les UVs de la cage intérieure et extérieure correspondent au modèle des vêtements empilés ; des UV qui ne correspondent pas au modèle de vêtements empilés perturbent la manière dont l'actif se drape sur le corps.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité ne peut pas être correctement calculé en raison de données d'entrée incorrectes ou incomplètes. Veuillez vérifier votre modèle ou signaler un bug. | Bloque la validation |
| Il y a {incorrect_uv_count} valeurs UV dans la cage {cage_name} qui sont incorrectes ou ne correspondent pas au modèle. Veuillez corriger les UV de la cage. | Bloque la validation |
| Avertissement de qualité de l'actif : le score UV de la cage est {score} pour {cage_name}. Nombre de valeurs UV incorrectes : {incorrect_uv_count}. | Avertissement |
Measure_Cage_UV_Avatar
Measure_Cage_UV_Avatar est une vérification de validation qui vérifie que chaque partie du corps a une cage qui maintient ses UV sur le modèle standard ; des UV de cage incorrects perturbent la manière dont les vêtements empilés se drapent sur le corps.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité ne peut pas être correctement calculé en raison de données d'entrée incorrectes ou incomplètes. Veuillez vérifier votre modèle ou signaler un bug. | Bloque la validation |
| Il y a {incorrect_uv_count} valeurs UV dans la cage {cage_name} qui sont incorrectes ou ne correspondent pas au modèle. Veuillez corriger les UV de la cage. | Bloque la validation |
| Avertissement de qualité de l'actif : le score UV de la cage est {score} pour {cage_name}. Nombre de valeurs UV incorrectes : {incorrect_uv_count}. | Avertissement |
Measure_Degen_Triangles
Measure_Degen_Triangles est une vérification de validation qui évalue chaque partie de maillage pour des triangles dégénérés (faces ayant une surface nulle ou presque nulle) ; les triangles dégénérés n'ajoutent aucune surface et peuvent casser le rendu.
| Code d'erreur | Gravité |
|---|---|
| Qualité de l'actif : {partName} a {degenerate_triangle_percent}% de triangles dégénérés (score : {score}). | Avertissement |
| Le score de qualité de l'actif pour {measureName} n'a pas pu être calculé car les données d'entrée étaient incomplètes ou invalides. Cela ne bloque pas votre téléchargement. | Avertissement |
Measure_Dynamic_Head
Measure_Dynamic_Head est une vérification de validation qui vérifie si une tête dynamique est animable. Les têtes dynamiques qui sont animables ont une cage de tête, des données FACS, des points de repère alignés, et peuvent fermer les yeux, ouvrir la bouche, et exprimer des émotions.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité ne peut pas être correctement calculé en raison de données d'entrée incorrectes ou incomplètes. Veuillez vérifier votre modèle ou signaler un bug. | Bloque la validation |
| Les têtes dynamiques sur le Marketplace doivent être correctement caged pour que les sommets des yeux et de la bouche sur la cage soient alignés avec les sommets du maillage. Veuillez améliorer votre cage et son alignement avec le maillage. | Bloque la validation |
| Impossible de détecter l'expression souriante pour la tête dynamique. Veuillez ajuster les points de repère de la cage pour la bouche afin de correspondre à l'endroit où se trouve la bouche sur la tête et assurez-vous qu'elle peut afficher une expression souriante. | Bloque la validation |
| Impossible de détecter l'expression de l'œil gauche fermé pour la tête dynamique. Veuillez ajuster les points de repère de la cage pour l'œil gauche afin de correspondre à l'endroit où se trouve l'œil gauche sur la tête et assurez-vous qu'il peut être fermé. | Bloque la validation |
| Les têtes dynamiques sur le Marketplace n'ont pas de cages de tête. Veuillez créer une cage de tête pour la tête dynamique. | Bloque la validation |
| Impossible de détecter l'expression de la bouche ouverte pour la tête dynamique. Veuillez ajuster les points de repère de la cage pour la bouche afin de correspondre à l'endroit où se trouve la bouche sur la tête et assurez-vous qu'elle peut s'ouvrir. | Bloque la validation |
| Les têtes dynamiques sur le Marketplace doivent être animées, mais cette tête n'a pas de données FACS. | Bloque la validation |
| Impossible de détecter l'expression de l'œil droit fermé pour la tête dynamique. Veuillez ajuster les points de repère de la cage pour l'œil droit afin de correspondre à l'endroit où se trouve l'œil droit sur la tête et assurez-vous qu'il peut être fermé. | Bloque la validation |
| Impossible de détecter l'expression de froncement de sourcils pour la tête dynamique. Veuillez ajuster les points de repère de la cage pour la bouche afin de correspondre à l'endroit où se trouve la bouche sur la tête et assurez-vous qu'elle peut afficher une expression de froncement de sourcils. | Bloque la validation |
| Avertissement de qualité de l'actif : le score d'expression de la tête dynamique est {score}. | Avertissement |
Measure_Joint_Number
Measure_Joint_Number est une vérification de validation qui évalue la configuration des joints du corps par rapport à la configuration attendue. La configuration des joints du corps inclut les comptes de joints dans les mains gauche et droite pour les rigs de plus haute fidélité.
| Code d'erreur | Gravité |
|---|---|
| Qualité de l'actif : configuration des joints notée {score} (joints : {joint_number}, main gauche : {left_hand_joint_number}, main droite : {right_hand_joint_number}). | Avertissement |
| Le score de qualité de l'actif pour {measureName} n'a pas pu être calculé car les données d'entrée étaient incomplètes ou invalides. Cela ne bloque pas votre téléchargement. | Avertissement |
Measure_Mesh_Manifold
Measure_Mesh_Manifold est une vérification de validation qui évalue chaque partie de maillage pour l'intégrité du maillage, capturant des trous, des arêtes non-manifold, et des problèmes topologiques similaires dans la géométrie.
| Code d'erreur | Gravité |
|---|---|
| Qualité de l'actif : {partName} a des problèmes de maillage manifold (score : {score}). | Avertissement |
| Le score de qualité de l'actif pour {measureName} n'a pas pu être calculé car les données d'entrée étaient incomplètes ou invalides. Cela ne bloque pas votre téléchargement. | Avertissement |
Measure_Mesh_Outside_OuterCage
Measure_Mesh_Outside_OuterCage est une vérification de validation qui évalue combien de maillage rendu d'un accessoire reste entre ses cages ; un maillage qui dépasse la cage extérieure se déforme mal lorsqu'il est porté.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité ne peut pas être correctement calculé en raison de données d'entrée incorrectes ou incomplètes. Veuillez vérifier votre modèle ou signaler un bug. | Bloque la validation |
| {mesh_outside_outer_cage_percent}% des sommets de maillage pour l'accessoire sont à l'extérieur de sa cage extérieure. Faites des ajustements pour que plus de l'accessoire soit placé entre les cages. | Bloque la validation |
| Avertissement de qualité de l'actif : le score de confinement de maillage est {score}. {mesh_outside_outer_cage_percent}% des sommets de maillage sont à l'extérieur de la cage extérieure. | Avertissement |
Measure_Texture_Complexity
Measure_Texture_Complexity est une vérification de validation qui évalue chaque texture pour sa complexité visuelle, signalant les textures plates ou presque vides qui ajoutent peu de détails à l'actif.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité de l'actif pour {measureName} n'a pas pu être calculé car les données d'entrée étaient incomplètes ou invalides. Cela ne bloque pas votre téléchargement. | Avertissement |
| Qualité de l'actif : texture {textureName} présente une faible complexité (score : {score}). | Avertissement |
Measure_Texture_Resolution
Measure_Texture_Resolution est une vérification de validation qui évalue chaque texture par ses dimensions en pixels, récompensant une résolution suffisamment élevée pour maintenir la netteté de l'actif sur le corps.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité de l'actif pour {measureName} n'a pas pu être calculé car les données d'entrée étaient incomplètes ou invalides. Cela ne bloque pas votre téléchargement. | Avertissement |
| Qualité de l'actif : texture {textureName} a une résolution {texture_width}x{texture_height} (score : {score}). | Avertissement |
Measure_Triangle_Intersection
Measure_Triangle_Intersection est une vérification de validation qui évalue chaque partie de maillage pour les triangles auto-intersectants dans lesquels les faces se croisent et créent une géométrie désordonnée et superposée.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité de l'actif pour {measureName} n'a pas pu être calculé car les données d'entrée étaient incomplètes ou invalides. Cela ne bloque pas votre téléchargement. | Avertissement |
| Qualité de l'actif : {partName} a {intersecting_tri_face_percent}% de faces de triangle intersectantes (score : {score}). | Avertissement |
Measure_UV_Bound
Measure_UV_Bound est une vérification de validation qui mesure combien de sommets UV d'un maillage tombent en dehors de l'espace de texture 0-1 ; elle rapporte un score mais ne bloque jamais le téléchargement.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité de l'actif pour {measureName} n'a pas pu être calculé car les données d'entrée étaient incomplètes ou invalides. Cela ne bloque pas votre téléchargement. | Avertissement |
| Qualité de l'actif : {partName} a {uv_outside_bound_vert_percent}% de sommets UV en dehors des limites (score : {score}). | Avertissement |
Measure_Vertex_Similarity
Measure_Vertex_Similarity est une vérification de validation qui mesure la proportion de sommets presque dupliqués dans un maillage ; elle rapporte un score mais ne bloque jamais le téléchargement.
| Code d'erreur | Gravité |
|---|---|
| Le score de qualité de l'actif pour {measureName} n'a pas pu être calculé car les données d'entrée étaient incomplètes ou invalides. Cela ne bloque pas votre téléchargement. | Avertissement |
| Qualité de l'actif : {partName} a {similar_vertex_percent}% de sommets similaires (score : {score}). | Avertissement |