SpecialMesh

사용되지 않는 항목 표시

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

개체는 속성 에 따라 메시를 적용합니다. 다양한 옵션이 사용 가능합니다.

  • 벽돌 - 블록 모양, BlockMesh와 동일
  • 실린더 - 실린더와 동일한 실린더, '실린더'의 PartPart.Shape
  • 파일 메쉬 - 사용자가 텍스처를 적용하여 사용할 수 있는 속성을 사용하여 업로드한 메쉬
  • 머리 - 캐릭터 머리 모양
  • 구 - 구형 모양으로, '볼'의 'Ball'과 비슷하지만 모든 축에서 자유롭게 크기를 조정할 수 있음
  • 쐐기 - 쐐기 모양, WedgePart 동일함
  • 몸통 - 경사진 측면이 있는 블록으로, 사용이 중단될 예정

SpecialMesh.MeshType 는 사용 중인 DataModelMesh.Scale 에 따라 서로 다르게 확장되며, 자세한 내용은 DataModelMesh.Scale 페이지에서 확인하십시오.특수 메시 개체는 또한 DataModelMesh.Offset 속성을 노출합니다.

특수 메쉬를 사용할 때 부품의 모양만 변경되는 점을 기억해야 합니다.부품의 충돌 모델은 동일하게 유지됩니다.예를 들어, 캐릭터는 메쉬 지오메트리가 계정않기 때문에 메쉬 위로 올바르게 걸을 수 없습니다.

특수 메쉬 vs 메시 파트

현재 개발자가 만든 메쉬를 사용하는 방법은 두 가지입니다.그들은 SpecialMesh.FileType 에 '파일 메시'로 설정된 특수 메시를 사용하거나 MeshPart 를 사용하여 메시를 사용하고 있습니다.전체적으로 보면, MeshPart 개체가 특수 메쉬를 대체했지만, 개발자들이 알아야 할 몇 가지 차이점이 있습니다.

  • BasePart.MaterialMeshPart 를 사용할 때 메시에 올바르게 표시되지만 특수 메시를 사용할 때는 그렇지 않습니다
  • MeshParts include the MeshPart.CollisionFidelity 속성, 즉 MeshPart 의 충돌 모델이 메쉬의 기하학을 재현하도록 설정될 수 있음을 의미합니다.반대로 특수 메쉬 개체는 부모의 충돌 모델 BaseParts을 사용합니다
  • 스케일은 모든 축에서 속성에 따라 메시가 확장되지만, 특수 메시의 메시는 그렇지 않습니다.
  • 특수 메쉬 개체에는 OffsetScale 속성이 포함되어 있지만 MeshParts 는 포함되지 않습니다
  • MeshId 속성은 런타임 중에 변경될 수 있습니다 SpecialMesh 또는 Script 또는 LocalScript 동안 변경될 수 있습니다.MeshId 속성의 MeshPart 는 사용할 수 없습니다.

코드 샘플

Mesh Offset and Scale

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.Parent = part
-- selection box to show part extents
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
-- parent part to workspace
part.Parent = workspace
-- animate offset and scale with a tween
local tween = TweenService:Create(
mesh,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true, 0),
{ Scale = Vector3.new(1, 1, 1), Offset = Vector3.new(0, 3, 0) }
)
tween:Play()
Mesh VertexColor

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

요약

속성

속성FileMesh에서 상속되었습니다
  • MeshId:ContentId
    병렬 읽기

    MeshId는 표시될 메시의 콘텐츠 ID입니다.

  • TextureId:ContentId
    병렬 읽기

    TextureId는 메쉬에 적용할 텍스처의 콘텐츠 ID입니다.

속성DataModelMesh에서 상속되었습니다
  • 병렬 읽기

    메쉬의 오프셋은 메쉬가 표시될 BasePart.Position 에서 상대 위치를 결정하며, 메쉬가 표시될 BasePart 는 메쉬의 디스플레이 위치입니다.

  • 병렬 읽기

    메쉬의 규모는 메쉬의 원래 크기에 비해 메쉬의 크기를 결정합니다.

  • 병렬 읽기

    메시의 텍스처 색상을 변경하여 FileMesh.TextureId와 함께 사용됩니다.

속성

병렬 읽기

개체가 적용하는 메시는 MeshType 속성에 따라 다릅니다. 다양한 옵션이 사용 가능합니다.

  • 벽돌 - 블록 모양, BlockMesh와 동일
  • 실린더 - 실린더와 동일한 실린더, '실린더'의 PartPart.Shape
  • 파일 메쉬 - 사용자가 텍스처를 적용하여 사용할 수 있는 속성을 사용하여 업로드한 메쉬
  • 머리 - 캐릭터 머리 모양
  • 구 - 구형 모양으로, '볼'의 'Ball'과 비슷하지만 모든 축에서 자유롭게 크기를 조정할 수 있음
  • 쐐기 - 쐐기 모양, WedgePart 동일함
  • 몸통 - 경사진 측면이 있는 블록으로, 사용이 중단될 예정

참고, 각 MeshType은 DataModelMesh.Scale를 사용할 때 서로 다르게 확장되며, 자세한 내용은 DataModelMesh.Scale 페이지를 참조하십시오.

코드 샘플

Mesh VertexColor

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

메서드

이벤트