EditableMesh

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

만들 수 없음

EditableMesh 는 Studio 와 경험 모두에서 메쉬를 쿼리하고 수정할 수 있는 메쉬 적용 메쉬를 변경합니다.

Class.MeshPart 또는 Content의 메쉬 ID를 사용하여 메쉬 개체를 생성하거나 메��

Class.MeshPart 는 새로운 MeshPart 를 참조하는 링크가 있을 때 표시됩니다. AssetService:CreateMeshPartAsync() 는 기존 1>Class.MeshPart1> 를 참조하는 링크를

Class.AssetService:CreateMeshPartAsync()를 호출하면 충돌 및 액체 기하구조를 재계산하고 모든 편집을 업데이트하고 대상의 MeshPart를 업데이트합니다. 일반적으로 이 작업을 마감 편집 작업의 끝에 수행하는 것이 좋습

안정적인 벡스/페이스 ID

많은 EditableMesh 메서드는 버스 ,

ID가 순서대로 있는지 보장하지는 않지만 숫자 순서가 잘못 되었을 수 있으므로 직접 통과하는 경우 GetVertices() 또는 GetFaces()를 통해 테이블을 반환하거나 Class.EditableMesh:GetEditableMesh() 를 호출해야

분할 벡스 특성

얼굴의 모서리는 얼굴의 모서리이며 토폴로지적으로 얼굴을 연결합니다. 얼굴에는 몇 가지 특성이 있습니다. 위치, 일반, 자외선 좌표, 색 및 투명도입니다.

모든 얼굴에 동일한 특성 값을 사용하려면 항상 편집기에서 동일한 특성 값을 사용할 수 있지만, 때로는 특정 얼굴에서 다른 특성 값을 사용하는 것이 좋습니다. 예를 들어, 부드러운 캐리어에서 각 얼굴에 대해 하나

얼굴을 생성할 때 각 속성의 하나가 기본적으로 하나씩 있습니다. 일반적인 하나의 픽셀, 하나의 자외선 좌표 및 하나의 색/투명도입니다. 섬을 만들려면 새 속성을 만들고 얼굴에 설정해야 합니다. 예를 들어, 이 코드는 날카로운 큐브를 생성합니다:


local AssetService = game:GetService("AssetService")
-- 주어진 4개의 벡터 ID를 사용하여 새로운 일반 및 2개의 삼각형을 추가하여 밝은 쿼드를 만듭니다.
local function addSharpQuad(eMesh, vid0, vid1, vid2, vid3)
local nid = eMesh:AddNormal() -- 이렇게 하면 자동으로 생성되는 일반 ID가 생성됩니다
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
-- 6 면 사이의 크기가 큰 쿠브를 만듭니다.Makes a cube with creased edges between the 6 sides
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) -- 앞
addSharpQuad(eMesh, v1, v3, v4, v2) -- 뒤로
addSharpQuad(eMesh, v1, v5, v7, v3) -- 왼쪽
addSharpQuad(eMesh, v2, v4, v8, v6) -- 오른쪽
addSharpQuad(eMesh, v1, v2, v6, v5) -- 바닥
addSharpQuad(eMesh, v3, v7, v8, v4) -- 위로
eMesh:RemoveUnused()
return eMesh
end

종료

메쉬 얼굴은 앞면과 뒷면이 있습니다. 메쉬를 그리는 경우 메쉬의 앞면만 기본적으로 그려지지만, DoubleSided 속성을 true로 설정하면 메쉬의 뒷면도 그려집니다.

얼굴 주변의 버텍스트 순서는 앞을 보는지 아니면 뒤로보는지를 결정합니다. 얼굴의 앞쪽이 버텍스트가 반대 방향으로 순환할 때 표시됩니다.

Order of the vertices around the face

제한

EditableMesh 현재 60,000개의 범위 및 20,000개의 삼각형 제한이 있습니다. 너무 많은 삼각형을 추가하려면 오류가 발생합니다.

요약

속성

메서드

속성

FixedSize

읽기 전용
복제되지 않음
병렬 읽기
Roblox 보안

SkinningEnabled

병렬 읽기

메서드

AddColor

기하구조에 새 색을 추가하고 안정적인 색 ID를 반환합니다.

매개 변수

color: Color3

새로운 색.

alpha: number

색상 알파(투명도).


반환

새 색상의 안정된 색 ID.

AddNormal

기하구조에 새로운 일반을 추가하고 안정적인 일반 ID를 반환합니다. 일반 값이 지정되지 않으면 일반이 자동으로 계산됩니다.

매개 변수

normal: Vector3

일반 벡터입니다. 일반 값이 지정되지 않으면 일반이 자동으로 계산됩니다.


반환

새로운 일반의 안정적인 ID.

AddTriangle

메쉬에 새로운 삼각형을 추가하고 안정적인 얼굴 ID를 반환합니다.

매개 변수

vertexId0: number

삼각형의 첫 번째 버킷의 ID.

vertexId1: number

삼각형의 두 번째 벡터 ID.

vertexId2: number

삼각형의 세 번째 벡터 ID.


반환

새 얼굴의 안정적인 얼굴 ID.

AddUV

새로운 UV를 기하에 추가하고 안정적인 UV ID를 반환합니다.

매개 변수

새로운 UV 좌표.


반환

새로운 자외선의 안정적인 UV 아이디.

AddVertex

기하구조에 새 버스트를 추가하고 안정적인 버스트 ID를 반환합니다.

매개 변수

메쉬의 로컬 개체 공간에 위치.


반환

새 범위의 안정된 버스 ID.

Destroy

void

반환

void

FindClosestPointOnSurface

메쉬의 표면에서 가장 가까운 점을 찾습니다. 얼굴 ID를 반환하고, 로컬 개체 공간의 메쉬에 포인트를 지정하고, 얼굴 내의 위치에 대한 바리센트릭 좌표를 나타냅니다. 얼굴 내의 위치에 대한 자세한 내용은 RaycastLocal()

매개 변수

point: Vector3

메쉬의 로컬 개체 공간에서 포인트 위치.


반환

얼굴 ID의 튜플, 로컬 개체 공간의 메쉬에 대한 포인트 및 얼굴 내의 위치에 대한 가변 중심 좌표입니다.

FindClosestVertex

특정 공간의 가장 가까운 벡터를 찾고 안정적인 벡터 ID를 반환합니다.Finds the closest vertex to a specific point in space and returns a stable vertex ID.

매개 변수

toThisPoint: Vector3

메쉬의 로컬 개체 공간에서 포인트 위치.


반환

공간에서 지정된 위치의 가장 가까운 안정 버전 ID입니다.

FindVerticesWithinSphere

특정 섬 내의 모든 면을 찾고 안정된 면 ID 목록을 반환합니다.

매개 변수

center: Vector3

메쉬의 로컬 개체 공간의 중심입니다.

radius: number

구의 반경.


반환

요청된 구에 있는 안정된 벡터 ID 목록.

GetAdjacentFaces

안정적인 얼굴 ID를 제공하면 인접 얼굴 목록을 반환합니다.

Adjacent faces indicated around requested face

매개 변수

faceId: number

반환

지정된 얼굴에 이웃 있는 페이스 ID 목록.

GetAdjacentVertices

안정적인 벡서 ID를 제공하면 인접 벡서의 목록을 반환합니다.

Adjacent vertices indicated around requested vertex

매개 변수

vertexId: number

접촉 면을 얻을 위한 텍스트 ID 주위.


반환

지정된 버스 ID 주위의 접근 버스 ID 목록.

GetCenter


반환

EditableMesh의 바인딩 박스 중심.

GetColor

지정된 색상 ID에 대한 색을 반환합니다.

매개 변수

colorId: number

색을 가져올 색 ID.


반환

요청된 안정적인 색상 ID에 색상을 지정합니다.

GetColorAlpha

지정된 안정된 색 ID에 색상 알파(투명도)를 반환합니다.

매개 변수

colorId: number

알파를 얻을 색 ID입니다.


반환

요청 안정 색상 ID에 알파 색상을 지정합니다.

GetColors

메쉬의 모든 색을 안정된 색 ID 목록으로 반환합니다.


반환

안정적인 색 ID 목록.

GetFaceColors

얼굴의 색상 ID를 반환합니다.

매개 변수

faceId: number

색 아이디를 가져오는 페이스 ID.


반환

지정된 얼굴의 벡터에 사용된 색상 ID 목록.

GetFaceNormals

얼굴의 벡터에 대한 얼굴의 일반 ID를 반환합니다.

매개 변수

faceId: number

일반 ID를 얻을 페이스 ID.


반환

지정된 얼굴의 벡터에 사용되는 일반 ID 목록.

GetFaceUVs

얼굴의 버텍스트에 대한 얼굴의 UV ID를 반환합니다.

매개 변수

faceId: number

UV 아이디를 얻을 페이스 ID.


반환

지정된 얼굴의 벡터에 사용되는 UV 아이디 목록.

GetFaceVertices

얼굴의 벡터 ID를 반환합니다.

매개 변수

faceId: number

반환

지정된 얼굴 주위의 버스 아이디 목록.

GetFaces

메쉬의 모든 얼굴을 안정된 얼굴 ID 목록으로 반환합니다.


반환

안정적인 얼굴 ID 목록.

GetFacesWithAttribute

지정된 버스트 ID, 일반 ID, UV ID 또는 색상 ID를 사용하는 얼굴 목록을 반환합니다.

매개 변수

id: number

사용자가 사용하는 얼굴을 찾을 수 있는 특성 ID입니다.


반환

지정된 특성 ID를 사용하는 얼굴 ID 목록.

GetNormal

지정된 일반 ID에 대한 일반 벡터를 반환합니다.

매개 변수

normalId: number

일반적인 벡터를 얻을 수 있는 일반 ID입니다.


반환

요청된 일반 ID에 대한 일반 벡터.

GetNormals

메쉬의 모든 정상을 안정적인 정상 ID 목록으로 반환합니다.


반환

안정적인 일반 ID 목록.

GetPosition

메쉬의 로컬 개체 공간에 있는 버스의 위치를 가져옵니다.

매개 변수

vertexId: number

위치를 가져올 스테이블 베이스 ID.


반환

메쉬의 로컬 개체 공간에서 버텍스트의 위치.

GetSize


반환

크기의 EditableMesh .

GetUV

지정된 UV ID에서 UV 좌표를 반환합니다.

매개 변수

uvId: number

UV 좌표를 얻는 대상.


반환

요청된 UV ID에 대한 UV 좌표.

GetUVs

메쉬의 모든 UV를 안정된 UV ID 목록으로 반환합니다.


반환

안정적인 UV 아이디 목록.

GetVertices

모든 면을 안정된 버스 ID 목록으로 반환합니다.


반환

안정 버전 ID 목록.

GetVerticesWithAttribute

지정된 얼굴 ID, 일반 ID, UV ID 또는 색상 ID를 사용하는 모든 면의 목록을 반환합니다.

매개 변수

id: number

사용하는 모든 버텍트를 찾기 위한 특성 ID입니다.


반환

지정된 특성 ID를 사용하는 버스트 ID 목록.

IdDebugString

f17 또는 v12와 같은 디버깅 목적으로 유용한 안정적 ID를 설명하는 문자열을 반환합니다.

매개 변수

id: number

디버깅 정보 문자열을 반환할 ID입니다.


반환

인간이 읽을 수 있는 ID를 설명하는 문자열입니다.

MergeVertices

Map

함께 터치하는 두 개의 벡터를 병합하여 단일 벡터 ID를 사용하지만 다른 원래 특성 ID를 유지합니다.

매개 변수

mergeTolerance: number

각 쌍을 서로 만질 때의 거리.


반환

Map

병합된 垂直에 대해 이전 벡터 ID를 새 벡터 ID로 맵핑합니다.A mapping of old vertex ID to new vertex ID for垂直 that have been merged.

RaycastLocal

광선을 캐스트하고 교차점, 얼굴 ID 및 가변 위치 좌표를 반환합니다. 이 메서드의 입력 및 출력은 메쉬의 로컬 개체 공간에 있습니다.

얼굴의 3개의 모서리 중 하나를 무게 순으로 결합한 점을 지정하는 방법입니다. barycentric coordinate 는 일반적인 방식으로 얼굴 특성을 혼합하는 데 유용합니다. 이 메서드의 코드 샘플을 참조하십시오.

매개 변수

origin: Vector3

메쉬의 로컬 개체 공간에서 레이의 원본.

direction: Vector3

레이의 방향.


반환

교차점, 얼굴 ID 및 중심 좌표의 튜플.

코드 샘플

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

안정적인 얼굴 ID를 사용하여 얼굴을 제거합니다.

매개 변수

faceId: number

반환

void

RemoveUnused

얼굴에서 사용되지 않는 모든 면, 투명, UV 및 색을 제거하고 제거된 ID를 반환합니다.


반환

모든 제거된 안정적 ID.

ResetNormal

void

이 일반 ID를 메쉬 모양에 따라 자동으로 계산하도록 재설정하십시오.

매개 변수

normalId: number

재설정할 안정적인 ID입니다.


반환

void

SetColor

void

색 ID에 대한 색을 설정합니다.

매개 변수

colorId: number

색을 설정할 수 있는 안정적인 색 ID.

color: Color3

설정할 색.


반환

void

SetColorAlpha

void

색 ID에 대한 색상 알파(투명도)를 설정합니다.

매개 변수

colorId: number

색상 알파를 설정할 안정된 색 ID.

alpha: number

알파를 설정합니다.


반환

void

SetFaceColors

void

얼굴의 벡터 색상을 새로운 색 ID로 설정합니다.

매개 변수

faceId: number

버스 색을 업데이트할 페이스 ID.

ids: Array

지정된 얼굴의 모서리에 사용할 새로운 안정적인 색상 ID 목록.


반환

void

SetFaceNormals

void

얼굴의 벡터 정상을 새로운 벡터 ID로 설정합니다.

매개 변수

faceId: number

정규화된 복셀을 업데이트할 페이스 ID.

ids: Array

지정된 얼굴의 벡터에 사용할 새로운 안정적인 ID 목록.


반환

void

SetFaceUVs

void

얼굴의 베르시티 유비를 새로운 UV ID로 설정합니다.

매개 변수

faceId: number

버스 썬더 업데이트를 위한 얼굴 ID.

ids: Array

지정된 얼굴의 측면에 사용할 새로운 안정적인 UV 아이디 목록.


반환

void

SetFaceVertices

void

얼굴의 벡터를 새로운 벡터 ID로 설정합니다.

매개 변수

faceId: number

업데이트할 면에 대한 얼굴 ID.

ids: Array

지정된 얼굴에 사용할 새로운 안정적 벡터 ID 목록.


반환

void

SetNormal

void

일반적인 ID에 대해 일반을 설정합니다. 이렇게 하면 일반 ID를 사용하는 모든 얼굴 벡터에 대해 일반 값이 변경됩니다.

매개 변수

normalId: number

정규화된 벡터를 설정할 안정적인 ID.

normal: Vector3

설정할 일반 벡터.


반환

void

SetPosition

void

메쉬의 로컬 개체 공간에 버스 위치를 설정합니다.

매개 변수

vertexId: number

버텍스의 안정된 벡터 ID.

메쉬의 로컬 개체 공간에 위치.


반환

void

SetUV

void

UV ID에 대한 UV 좌표를 설정합니다.

매개 변수

uvId: number

UV ID를 설정하는 데 사용할 수 있는 유일한 UV입니다.

UV 좌표.


반환

void

Triangulate

void

메쉬에서 모든 얼굴을 삼각형으로 나눔으로써 트라이앵ル을 만듭니다. 현재 이 메서드는 삼각형만 만들 수 있기 때문에 작동하지 않지만, 코드에서 삼각형을 기반으로 하는 경우 메쉬를 만들기 전에 AssetService:CreateEditableMeshAsync() 를 호출하는 것이 좋습니다.


반환

void

이벤트