파일메쉬 개체는 부모로 지정될 때 텍스처화된 메시를 BasePart에 적용합니다. 속성은 SpecialMesh 개체에 상속됩니다.
파일 메시가 무엇인가요?
파일메쉬는 사용자가 업로드한 메쉬를 BasePart에 적용할 수 있게 합니다.적용된 메시는 FileMesh.MeshId 속성에 의존합니다.텍스처는 FileMesh.TextureId을 사용하여 이 메쉬에 적용할 수도 있습니다.
추상 클래스가 아니며 개발자가 사용할 수 있지만, 모든 FileMesh 속성은 SpecialMesh 개체에 상속됩니다.A SpecialMesh 는 파일메쉬 개체와 동일하게 동작하며, SpecialMesh.MeshType 가 '파일메쉬'로 설정되어 있습니다.두 개체 모두 기능적이지만, SpecialMesh 개체는 공식적으로 지원되는 클래스입니다.
메쉬 사용에 대한 자세한 정보는 SpecialMesh를 참조하십시오.
코드 샘플
In this code sample a BasePart is instanced with a FileMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the FileMesh are then animated using TweenService.
local TweenService = game:GetService("TweenService")
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("FileMesh") -- advised to use SpecialMesh instead
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
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
part.Parent = workspace
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()
요약
속성
MeshId는 표시될 메시의 콘텐츠 ID입니다.
TextureId는 메쉬에 적용할 텍스처의 콘텐츠 ID입니다.
메쉬의 오프셋은 메쉬가 표시될 BasePart.Position 에서 상대 위치를 결정하며, 메쉬가 표시될 BasePart 는 메쉬의 디스플레이 위치입니다.
메쉬의 규모는 메쉬의 원래 크기에 비해 메쉬의 크기를 결정합니다.
메시의 텍스처 색상을 변경하여 FileMesh.TextureId와 함께 사용됩니다.
속성
MeshId
MeshId는 표시될 메시의 콘텐츠 ID입니다.
메쉬에 대한 콘텐츠 ID는 개발자가 Roblox에 메쉬를 업로드할 때 생성됩니다.
코드 샘플
In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.
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
TextureId
TextureId는 메쉬 텍스처에 적용할 이미지의 콘텐츠 ID입니다.TextureId 속성이 빈 문자열로 설정되면 메시에 텍스처가 적용되지 않습니다.
메쉬의 텍스처를 어떻게 변경할 수 있나요?
TextureId 속성을 사용하여 메쉬를 다시 업로드할 필요 없이 메쉬의 텍스처를 변경할 수 있습니다.이를 위해 원하는 텍스처로 Roblox에 새 이미지를 업로드해야 합니다.Roblox Studio의 '내보내기 선택' 옵션을 사용하여 메시를 내보내면 원래 텍스처 이미지 파일을 얻을 수 있습니다.이미지 파일은 내보낸 .obj 파일과 함께 저장됩니다.
새로운 텍스처는 데칼로 Roblox에 다시 업로드할 수 있으며 텍스처Id 속성을 사용하여 메시에 콘텐츠 ID를 적용할 수 있습니다.
텍스처화된 메시를 만드는 방법은 무엇인가요?
메쉬는 UV 맵핑된 경우에만 텍스처링할 수 있습니다.UV 매핑은 메쉬에 텍스처 맵을 프로젝트하는 방법을 말합니다.Roblox Studio를 사용하여 수행할 수 없으며, Blender와 같은 외부 3D 모델링 응용 프로그램을 사용하여 수행해야 합니다.
코드 샘플
In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.
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