EditableMesh
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
EditableMesh change le maillage visuel appliqué lorsqu'il est lié à un MeshPart, ce qui permet de rechercher et de modifier le maillage dans le studio et dans l'expérience.
Un EditableMesh peut être créé à partir d'un existant Content d'un MeshPart ou d'un ID de
Un EditableMesh est affiché lorsqu'il est lié à un nouveau MeshPart , via AssetService:CreateMeshPartAsync(). Vous pouvez créer plus de 2>Class.MeshPart2> d'instances qui référent le même 5>EditableMesh
En appelant AssetService:CreateMeshPartAsync(), vous récalculerez la géométrie de collision et la géométrie fluide avec n'importe quelle modification et mettre à jour la géométrie existante MeshPart . Il est généralement recommandé de le faire au terme d'une opération d'édition conceptuelle. MeshPart:ApplyMesh() mettra à jour
ID de véritable/visage stable
Beaucoup de méthodes EditableMesh prennent vérte
Remarquez que les ID ne sont pas garantis d'être en ordre et il peut y avoir des trous dans le numérotage, donc lorsque vous itérez à travers les vérités ou les visages, vous devez itérez à travers la table renvoyée par GetVertices() ou GetFaces() .
Attributs de vérité partiel
Un vertex est un coin d'un visage, et connecte les visages ensemble. Les tétrices peuvent avoir plusieurs attributs : position, normale, coordonnée UV, couleur et transparence.
Parfois, il est utile pour tous les visages qui touchent un vertex d'utiliser les mêmes valeurs d'attribut, mais parfois, vous voudrez que différents visages utilisent différentes valeurs d'attribut sur le même vertex. Par exemple, sur une sphère lisse, chaque vertex n'aura qu'un seul normal. Au lieu de cela, dans le coin d'un cube, le vertex aura 3 normaux différents (un pour chaque visage adjacent). Vous pouvez également avoir des jointures dans
Lors de la création des visages, chaque véritable aura par défaut un des éléments suivants : un normal, unUV coordonnée, et une couleur/transparence. Si vous voulez créer un joint, vous devez créer de nouveaux éléments et les définir sur le visage. Par exemple, ce code va créer un cube pointu :
local AssetService = game:GetService("AssetService")
-- Donné 4 ID de vérité, ajoute un nouveau triangle normal et 2 ID de vérité, ce qui fait un quadruple aiguisé
local function addSharpQuad(eMesh, vid0, vid1, vid2, vid3)
local nid = eMesh:AddNormal() -- Cela crée un ID normal qui est automatiquement calculé
local fid1 = eMesh:AddTriangle(vid0, vid1, vid2)
eMesh:SetFaceNormals(fid1, {nid, nid, nid})
local fid2 = eMesh:AddTriangle(vid0, vid2, vid3)
eMesh:SetFaceNormals(fid2, {nid, nid, nid})
end
-- Fait un cube avec des bords creusés entre les 6 côtés
local function makeSharpCube()
local eMesh = AssetService:CreateEditableMesh()
local v1 = eMesh:AddVertex(Vector3.new(0, 0, 0))
local v2 = eMesh:AddVertex(Vector3.new(1, 0, 0))
local v3 = eMesh:AddVertex(Vector3.new(0, 1, 0))
local v4 = eMesh:AddVertex(Vector3.new(1, 1, 0))
local v5 = eMesh:AddVertex(Vector3.new(0, 0, 1))
local v6 = eMesh:AddVertex(Vector3.new(1, 0, 1))
local v7 = eMesh:AddVertex(Vector3.new(0, 1, 1))
local v8 = eMesh:AddVertex(Vector3.new(1, 1, 1))
addSharpQuad(eMesh, v5, v6, v8, v7) -- Avant
addSharpQuad(eMesh, v1, v3, v4, v2) -- Retour
addSharpQuad(eMesh, v1, v5, v7, v3) -- Gauche
addSharpQuad(eMesh, v2, v4, v8, v6) -- Droit
addSharpQuad(eMesh, v1, v2, v6, v5) -- En bas
addSharpQuad(eMesh, v3, v7, v8, v4) -- Haut
eMesh:RemoveUnused()
return eMesh
end
Étirement
Les visages de maillage ont une face avant et une face arrière. Lorsque vous dessinez des visages de maillage, seule la face avant des visages est dessinée par défaut, bien que vous puissiez le modifier en définissant la propriété DoubleSided du maillage à true.
L'ordre des verticaux autour du visage détermine si vous regardez le front ou le retour. Le front du visage est visible lorsque les verticaux vont à l'envers autour de lui.
Limites
EditableMesh a actuellement une limite de 60 000 vérités et 20 000 triangles. Tenter d'ajouter trop de vérités ou de triangles causera une erreur.
Résumé
Méthodes
Ajoute une nouvelle couleur à la géométrie et renvoie un ID de couleur stable.
Ajoute un nouveau normal à la géométrie et renvoie un ID de normale stable.
Ajoute un nouveau triangle au maillage et renvoie un ID de visage stable.
Ajoute un nouveau UV à la géométrie et renvoie un ID UV stable.
Ajoute un nouveau vertex à la géométrie et renvoie un ID de vertex stable.
Trouve le point le plus proche sur la surface du maillage.
Trouve le véritable point de fusion à un point spécifique dans l'espace.
Trouve tous les vérants dans une sphère spécifique.
Renvoie une liste de visages adjacents à un visage donné.
Renvoie une liste de vérités adjacentes à un vérité donnée.
Renvoie la couleur pour l'ID de couleur donné.
Renvoie la couleur alpha (transparence) à l'ID de couleur donné.
Renvoie toutes les couleurs du maillage.
Renvoie les ID de couleur du visage pour les vérités sur le visage.
Renvoie les ID normaux du visage pour les vérités sur le visage.
Renvoie les ID de l'UV du visage pour les vérités sur le visage.
Renvoie tous les visages du maillage.
Renvoie une liste de visages qui utilisent un ID de属ri donné.
Renvoie le vécteur normal pour l'ID normal donné.
Renvoie tous les normaux du maillage.
Obtient la position d'un véritable.
Renvoie les coordonnées UV à l'ID UV donné.
Renvoie tous les UV de la maillage.
Renvoie tous les angles comme une liste d'identifiants de angles stables.
Renvoie une liste de vérités qui utilisent un ID de属性 donné.
Renvoie une chaîne décrivant un ID stable, utile pour les fins de débogage.
Fusionne les points qui touchent ensemble.
Supprime un visage en utilisant son ID de visage stable.
Supprime tous les angles inutilisés, les normales, les UV et les couleurs, et renvoie les ID supprimés.
Réinitialisez cette ID normale pour être automatiquement calculé.
Définit la couleur pour un ID de couleur.
Définit la couleur alpha (transparence) pour un ID de couleur.
Définit les couleurs de vertice du visage sur les nouveaux ID de couleur.
Définit les normales du vertex du visage sur de nouveaux ID de normales.
Définit les UV du vertex du visage sur de nouveaux ID d'UV.
Définit les valeurs des coins du visage sur les ID de nouveau véritable.
Définir la normale pour un ID normal.
Définit une position de vérité dans l'espace local de l'objet.
Définit des coordonnées UV pour un ID UV.
Divise tous les visages sur le maillage pour être des triangles.
Évènements
Propriétés
Méthodes
AddColor
Ajoute une nouvelle couleur à la géométrie et renvoie un ID de couleur stable.
Paramètres
Retours
ID de couleur stable de la nouvelle couleur.
AddNormal
Ajoute un nouveau normal à la géométrie et renvoie un ID de normale stable. Si la valeur normale n'est pas spécifiée, la normale sera automatiquement calculée.
Paramètres
Le force vectoriellenormal. Si la valeur normale n'est pas spécifiée, le vécteur normal sera automatiquement calculé.
Retours
ID stable normal de la nouvelle normale.
AddTriangle
Ajoute un nouveau triangle au maillage et renvoie un ID de visage stable.
Paramètres
ID du premier véritable du triangle.
ID du deuxième véritable du triangle.
ID du troisième véritable du triangle.
Retours
AddUV
Ajoute un nouveau UV à la géométrie et renvoie un ID UV stable.
Paramètres
La nouvelle coordonnée UV.
Retours
ID stable de l'ID de l'uv nouveau.
AddVertex
Ajoute un nouveau vertex à la géométrie et renvoie un ID de vertex stable.
Paramètres
Position dans l'espace local de lmaillageobjet.
Retours
ID stable du nouveau véritable.
Destroy
Retours
FindClosestPointOnSurface
Trouve le point le plus proche sur la surface du maillage. Renvoie l'identifiant du visage, le point sur le maillage dans l'espace local d'objet et la coordonnée barycentrique de la position dans le visage. Voir RaycastLocal() pour plus d'informations sur les coordonnées barycentriques.
Paramètres
Position de point dans l'espace local de l'objet.
Retours
Tpulé de l'ID du visage, point sur le maillage dans l'espace d'objet local et la coordonnée barycentrique de la position dans le visage.
FindClosestVertex
Trouve le plus proche des véritables dans un espace spécifique et renvoie un ID de véritable stable.
Paramètres
Position de point dans l'espace local de l'objet.
Retours
ID de vérité stable le plus proche du point spécifié dans l'espace.
FindVerticesWithinSphere
Trouve tous les angles dans une sphère spécifique et renvoie une liste d'identifiants de角 stable.
Paramètres
Centre de l'espace local de l'objet dans le maillage.
Rayon de la sphère.
Retours
Liste des ID de véritable vertuels dans la sphère demandée.
GetAdjacentFaces
Donné un ID de visage stable, renvoie une liste de visages adjacents.
Paramètres
Retours
GetAdjacentVertices
Donné un ID de vertex stable, renvoie une liste de vertices adjacents.
Paramètres
ID de vérité autour duquel obtenir des verticaux adjacents.
Retours
Liste des ID des angles adjacents autour de l'ID de chaque angle donné.
GetColor
Renvoie la couleur pour l'ID de couleur donné.
Paramètres
ID de couleur pour laquelle obtenir la couleur.
Retours
Couleur pour l'ID de couleur stable demandé.
GetColorAlpha
Renvoie la couleur alpha (transparence) à l'ID de couleur stable donné.
Paramètres
ID de couleur pour laquelle obtenir l'Alpha.
Retours
Couleur alpha à l'ID de couleur stable requis.
GetColors
Renvoie toutes les couleurs du maillage comme une liste d'identifiants de couleur statiques.
Retours
Liste des ID de couleur stables.
GetFaceColors
Renvoie les ID de couleur du visage pour les vérités sur le visage.
Paramètres
ID de visage pour obtenir les ID de couleur.
Retours
Liste des ID de couleur utilisés pour les vérités sur le visage donné.
GetFaceNormals
Renvoie les ID normaux du visage pour les vérités sur le visage.
Paramètres
ID de visage pour obtenir les ID normaux.
Retours
Liste des ID normaux utilisés pour les vérités sur le visage donné.
GetFaceUVs
Renvoie les ID de l'UV du visage pour les vérités sur le visage.
Paramètres
ID de visage pour lequel obtenir les ID UV.
Retours
Liste des ID UV utilisés pour les vérités sur le visage donné.
GetFaces
Renvoie tous les visages du maillage comme une liste d'identifiants de visage statiques.
Retours
GetFacesWithAttribute
Renvoie une liste de visages qui utilisent un ID de vertex donné, un ID normal, un ID UV ou un ID de couleur.
Paramètres
ID d'attribut pour lequel il faut trouver des visages qui l'utilisent.
Retours
Liste des ID de visage qui utilisent l'attribut ID donné.
GetNormal
Renvoie le vécteur normal pour l'ID normal donné.
Paramètres
ID normal pour lequel obtenir le force vectoriellenormal.
Retours
Vecteur normal à l'ID de normale demandé.
GetNormals
Renvoie tous les normaux du maillage en tant que liste d'identifiants normaux stables.
Retours
Liste des identifiants normaux stables.
GetPosition
Obtient la position d'un véritable dans l'espace local de l'objet.
Paramètres
ID stable du véritable pour obtenir la position.
Retours
Position d'un véritable dans l'espace local d'objet du maillage.
GetUV
Renvoie les coordonnées UV à l'ID UV donné.
Paramètres
ID UV pour obtenir la coordonnée UV.
Retours
Coordonnées UV à l'ID UV demandé.
GetUVs
Renvoie tous les UV du maillage en tant que liste d'identifiants d'UV statiques.
Retours
Liste d'identifiants de l'UV stable.
GetVertices
Renvoie tous les angles comme une liste d'identifiants de angles stables.
Retours
Liste des ID de véritable вершины.
GetVerticesWithAttribute
Renvoie une liste de vérités qui utilisent un ID de visage donné, un ID normal, un ID UV ou un ID de couleur.
Paramètres
ID d'attribut pour lequel il faut trouver des vérités qui l'utilisent.
Retours
Liste des ID de vérité qui utilisent l'attribut ID donné.
IdDebugString
Retourne une chaîne décrivant un ID stable, utile pour les fins de débogage, comme f17 ou v12, contenant le taper, le numéro d'identifiant et la version.
Paramètres
ID pour lequel renvoyer une chaîne d'informations de débogage.
Retours
Chaîne qui décrit l'ID au format humainement lisible.
MergeVertices
Fusionne les angles qui se touchent, pour utiliser un seul ID d'angle, mais garder les autres ID d'attributs originaux.
Paramètres
La distance à laquelle les sommets sont censés se toucher les uns aux autres.
Retours
Une carte de l'ancien ID de vertex à un nouveau ID de vertex pour les vérités qui ont été fusionnées.
RaycastLocal
Définit un rayon et renvoie un point d'intersection, l'ID du visage et les coordonnées barycentriques. Les entrées et les sorties de cette méthode sont dans l'espace local de la maillage.
Un barycentrique de coordonnée est un moyen de spécifier un point dans un visage en tant que combinaison pondérée des 3 vertus du visage. Ceci est utile comme une façon générale de mélanger les attributs des vertus. Voir l'exemple de code de ce méthode comme une illustration.
Paramètres
Origine du rayon dans l'espace local de l'objet du maillage.
Direction du rayon.
Retours
Tpul de l'intersection point, ID de visage et coordonnées barycentriques.
Échantillons de code
local AssetService = game:GetService("AssetService")
-- Initialize EditableMesh in space
local success, editableMesh = pcall(function()
return AssetService:CreateEditableMeshAsync(Content.fromUri("rbxassetid://ASSET_ID"))
end)
local meshPart = nil
if success then
local initialSize = Vector3.new(1, 1, 1)
meshPart = editableMesh:CreateMeshPartAsync(initialSize)
meshPart.Parent = workspace
end
local function castRayFromCamera(position)
if not meshPart then return end
-- Create ray from camera along the direction of a clicked point
local camera = workspace.CurrentCamera
local ray = camera:ScreenPointToRay(position.X, position.Y)
-- Convert to object space to use with RaycastLocal()
local relativeOrigin = meshPart.CFrame:PointToObjectSpace(ray.Origin)
local relativeDirection = meshPart.CFrame:VectorToObjectSpace(ray.Direction)
local triangleId, point, barycentricCoordinate
triangleId, point, barycentricCoordinate = editableMesh:RaycastLocal(relativeOrigin, relativeDirection * 100)
if not triangleId then
-- Didn't hit any triangles
return
end
-- Interpolate UVs within the triangle
local vert1, vert2, vert3 = editableMesh:GetTriangleVertices(triangleId)
local uv0 = editableMesh:GetUV(vert1)
local uv1 = editableMesh:GetUV(vert2)
local uv2 = editableMesh:GetUV(vert3)
local u = (barycentricCoordinate.x * uv0.x) + (barycentricCoordinate.y * uv1.x) + (barycentricCoordinate.z * uv2.x)
local v = (barycentricCoordinate.x * uv0.y) + (barycentricCoordinate.y * uv1.y) + (barycentricCoordinate.z * uv2.y)
return Vector2.new(u, v)
end
RemoveFace
Supprime un visage en utilisant son ID de visage stable.
Paramètres
Retours
RemoveUnused
Supprime tous les vérités, normaux, UVs et couleurs qui ne sont pas utilisés dans n'importe quel visage, et renvoie les ID supprimés.
Retours
Tous les ID de version instables supprimés.
ResetNormal
Réinitialisez cette ID normale pour être automatiquement calculée en fonction de la forme du maillage, au lieu d'être manuellement configurer.
Paramètres
ID stable normal à réinitialiser.
Retours
SetColor
Définit la couleur pour un ID de couleur.
Paramètres
ID de couleur stable pour laquelle définir la couleur.
Couleur à configurer.
Retours
SetColorAlpha
Définit la couleur alpha (transparence) pour un ID de couleur.
Paramètres
ID de couleur stable pour lequel définir l'Alpha de la couleur.
Alpha à configurer.
Retours
SetFaceColors
Définit les couleurs de vertice du visage sur les nouveaux ID de couleur.
Paramètres
ID de visage pour lequel mettre à jour les couleurs des vérités.
Liste de nouveaux ID de couleurs stables à utiliser pour les vérités des visages donnés.
Retours
SetFaceNormals
Définit les normales du vertex du visage sur de nouveaux ID de normales.
Paramètres
ID de visage pour lequel mettre à jour les normales du véritable.
Liste de nouveaux identifiants normaux stables à utiliser pour les vérités du visage donné.
Retours
SetFaceUVs
Définit les UV du vertex du visage sur de nouveaux ID d'UV.
Paramètres
ID de visage pour lequel mettre à jour les UV du vertex.
Liste de nouveaux ID d'UV stables à utiliser pour les vérités du visage donné.
Retours
SetFaceVertices
Définit les valeurs des coins du visage sur les ID de nouveau véritable.
Paramètres
ID de visage pour lequel mettre à jour les vérités.
Liste de nouvelles ID de vertige stables à utiliser pour le visage donné.
Retours
SetNormal
Définir la normale pour un ID normal. Cela changera la valeur normale pour chaque vérité de visage qui utilise l'ID normal.
Paramètres
ID stable normal pour lequel définir le force vectoriellenormal.
Vecteur normal à configurer.
Retours
SetPosition
Définit une position de vérité dans l'espace local de l'objet.
Paramètres
ID stable du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du véritable véritable ID du vérit
Position dans l'espace local de lmaillageobjet.
Retours
SetUV
Définit des coordonnées UV pour un ID UV.
Paramètres
Retours
Triangulate
Divise tout les visages sur le maillage pour être des triangles. Ceci ne fait rien actuellement, car seuls les triangles peuvent être créés, mais si votre code dépend de triangles, il est recommandé d'appeler cette méthode après avoir appelé AssetService:CreateEditableMeshAsync() .