EditableMesh

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible

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.

Order of the vertices around the face

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é

Propriétés

Méthodes

Propriétés

FixedSize

Lecture uniquement
Non répliqué
Lecture parallèle
Sécurité Roblox

SkinningEnabled

Lecture parallèle

Méthodes

AddColor

Ajoute une nouvelle couleur à la géométrie et renvoie un ID de couleur stable.

Paramètres

color: Color3

La nouvelle couleur.

alpha: number

La couleur alpha (transparence).


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

normal: Vector3

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

vertexId0: number

ID du premier véritable du triangle.

vertexId1: number

ID du deuxième véritable du triangle.

vertexId2: number

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

void

Retours

void

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

point: Vector3

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

toThisPoint: Vector3

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

center: Vector3

Centre de l'espace local de l'objet dans le maillage.

radius: number

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.

Adjacent faces indicated around requested face

Paramètres

faceId: number

Retours

GetAdjacentVertices

Donné un ID de vertex stable, renvoie une liste de vertices adjacents.

Adjacent vertices indicated around requested vertex

Paramètres

vertexId: number

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é.

GetCenter


Retours

GetColor

Renvoie la couleur pour l'ID de couleur donné.

Paramètres

colorId: number

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

colorId: number

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

faceId: number

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

faceId: number

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

faceId: number

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é.

GetFaceVertices

Paramètres

faceId: number

Retours

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: number

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

normalId: number

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

vertexId: number

ID stable du véritable pour obtenir la position.


Retours

Position d'un véritable dans l'espace local d'objet du maillage.

GetSize


Retours

GetUV

Renvoie les coordonnées UV à l'ID UV donné.

Paramètres

uvId: number

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: number

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: number

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

Map

Fusionne les angles qui se touchent, pour utiliser un seul ID d'angle, mais garder les autres ID d'attributs originaux.

Paramètres

mergeTolerance: number

La distance à laquelle les sommets sont censés se toucher les uns aux autres.


Retours

Map

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

origin: Vector3

Origine du rayon dans l'espace local de l'objet du maillage.

direction: Vector3

Direction du rayon.


Retours

Tpul de l'intersection point, ID de visage et coordonnées barycentriques.

Échantillons de code

EditableMesh:RaycastLocal()

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

void

Supprime un visage en utilisant son ID de visage stable.

Paramètres

faceId: number

Retours

void

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

void

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

normalId: number

ID stable normal à réinitialiser.


Retours

void

SetColor

void

Définit la couleur pour un ID de couleur.

Paramètres

colorId: number

ID de couleur stable pour laquelle définir la couleur.

color: Color3

Couleur à configurer.


Retours

void

SetColorAlpha

void

Définit la couleur alpha (transparence) pour un ID de couleur.

Paramètres

colorId: number

ID de couleur stable pour lequel définir l'Alpha de la couleur.

alpha: number

Alpha à configurer.


Retours

void

SetFaceColors

void

Définit les couleurs de vertice du visage sur les nouveaux ID de couleur.

Paramètres

faceId: number

ID de visage pour lequel mettre à jour les couleurs des vérités.

ids: Array

Liste de nouveaux ID de couleurs stables à utiliser pour les vérités des visages donnés.


Retours

void

SetFaceNormals

void

Définit les normales du vertex du visage sur de nouveaux ID de normales.

Paramètres

faceId: number

ID de visage pour lequel mettre à jour les normales du véritable.

ids: Array

Liste de nouveaux identifiants normaux stables à utiliser pour les vérités du visage donné.


Retours

void

SetFaceUVs

void

Définit les UV du vertex du visage sur de nouveaux ID d'UV.

Paramètres

faceId: number

ID de visage pour lequel mettre à jour les UV du vertex.

ids: Array

Liste de nouveaux ID d'UV stables à utiliser pour les vérités du visage donné.


Retours

void

SetFaceVertices

void

Définit les valeurs des coins du visage sur les ID de nouveau véritable.

Paramètres

faceId: number

ID de visage pour lequel mettre à jour les vérités.

ids: Array

Liste de nouvelles ID de vertige stables à utiliser pour le visage donné.


Retours

void

SetNormal

void

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

normalId: number

ID stable normal pour lequel définir le force vectoriellenormal.

normal: Vector3

Vecteur normal à configurer.


Retours

void

SetPosition

void

Définit une position de vérité dans l'espace local de l'objet.

Paramètres

vertexId: number

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

void

SetUV

void

Définit des coordonnées UV pour un ID UV.

Paramètres

uvId: number

ID UV pour lequel définir les coordonnées UV.

Coordonnées UV.


Retours

void

Triangulate

void

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() .


Retours

void

Évènements