SpecialMesh

사용되지 않는 항목 표시

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

Class.SpecialMesh 개체는 메쉬를 BasePart에 적용하는 메쉬 유형입니다. 몇 가지 옵션이 있습니다.

  • 벽돌 - 벽돌 모양, BlockMesh와 동일
  • 실린더 - 실린더, Part와 같이 Part.Shape 의 '실린더'
  • FileMesh - 사용자가 업로드한 Mesh, 텍스처를 적용할 수 있는 대상에 해당하는 FileMesh 그리고 FileMesh.TextureId 속성
  • 머리 - 캐릭터 머리 모양
  • 구체 - 구체 모양, PartPart.Shape 의 공 크기를 가진 유사한 구체 모양의 모든 축에서 자유롭게 크기를 조정할 수 있습니다.
  • 쐐기 - 쐐기 모양, WedgePart와 동일
  • 몸통 - 옆으로 살짝 경사한 블록, 앞으로 살짝 경사한 블록 때문에 지원되지 않습니다.

참고, 각 SpecialMesh.MeshTypeDataModelMesh.Scale 를 사용할 때 크기를 조정하는 방법이 다릅니다. 자세한 내용은 DataModelMesh.Scale 페이지를 참조하십시오. 2>Class.DataModelMesh.Scale2> 개체에는 5>Class.DataModelMesh.Offset5>

SpecialMesh를 사용할 때 부품의 모양만 변경되는 경우가 많이 발생합니다. 부품의 콜리셔ン 모델은 여전히 동일합니다. 예를 들어, 부품의 콜리셔는 메쉬 지오메트리가 계정않기 때문에 올바르게 걸을 수 없습니다.

SpecialMesh vs MeshPart

현재 개발자가 생성한 메쉬를 사용하는 두 가지 방법이 있습니다. 그들은 SpecialMesh.FileTypeMeshPart 로 설정한 특수 메쉬를 사용하거나, MeshPart 를 사용하여 메쉬를 생성합니다. 그러나 메��

  • BasePart.Material 은 특수 메쉬 부품을 사용할 때 메쉬에 올바르게 표시되지만 특수 메쉬 부품을 사용하지 않을 때는 잘못 표시됩니다.
  • MeshParts 에는 MeshPart.CollisionFidelity 속성이 포함되어 있으므로 메쉬 파트의 충돌 모델이 메쉬 파트의 지오메트리와 유사하게 설정될 수 있습니다. 반면 MeshPart 에는 부모
  • Class.MeshPart의 메쉬는 모든 축에 따라 크기를 조정하지만, Size의 메쉬는 특수 메쉬의 크기에 따라 크기를 조정하지 않습니다.
  • SpecialMesh 개체에는 OffsetScale 속성이 포함되어 있지만 MeshParts는 포함되지 않습니다.
  • Class.FileMesh.MeshId|MeshId 속성은 SpecialMesh 또는 Script 동안 런타임에 변경될 수 있습니다. 1>Class.MeshPart.MeshId|MeshId1> 속성은 4>Class.MeshPart4> 속성을 변경할 수

코드 샘플

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
    병렬 읽기

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

  • TextureId:ContentId
    병렬 읽기

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

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

    메쉬의 오프셋은 메쉬가 표시될 BasePart.Position 의 상대 위치를 결정합니다.

  • 병렬 읽기

    메쉬의 크기는 메쉬의 원래 크기와 비례됩니다.

  • 병렬 읽기

    Class.FileMesh.TextureId 와 함께 사용되는 메쉬의 텍스처 색상을 변경합니다.

속성

병렬 읽기

Class.SpecialMesh 개체가 적용된 메쉬는 메쉬 유형 속성에 따라 BasePart에 달라집니다. 몇 가지 옵션이 있습니다.

  • 벽돌 - 벽돌 모양, BlockMesh와 동일
  • 실린더 - 실린더, Part와 같이 Part.Shape 의 '실린더'
  • FileMesh - 사용자가 업로드한 Mesh, 텍스처를 적용할 수 있는 대상에 해당하는 FileMesh 그리고 FileMesh.TextureId 속성
  • 머리 - 캐릭터 머리 모양
  • 구체 - 구체 모양, PartPart.Shape 의 공 크기를 가진 유사한 구체 모양의 모든 축에서 자유롭게 크기를 조정할 수 있습니다.
  • 쐐기 - 쐐기 모양, 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

메서드

이벤트