FileMesh
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
O objeto FileMesh aplica uma malha texturizada a um BasePart quando parentada a ele. Suas propriedades são herdadas pelo ObjetoSpecialMesh.
O que é um FileMesh?
FileMeshes permitem que malhas carregadas pelo usuário sejam aplicadas a um BasePart .A malha que é aplicada depende da propriedade FileMesh.MeshId.Uma textura também pode ser aplicada a essa malha usando FileMesh.TextureId .
Embora não seja uma classe abstrata, e possa ser usada por desenvolvedores, todas as propriedades FileMesh são herdadas pelo ObjetoSpecialMesh.Um SpecialMesh se comporta de forma idêntica ao objeto FileMesh quando seu SpecialMesh.MeshType é definido como "FileMesh".Embora ambos os objetos sejam funcionais, o objeto SpecialMesh é a classe oficial suportada oficialmente.
Para mais informações sobre o uso de malhas, consulte a página SpecialMesh .
Amostras de código
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()
Resumo
Propriedades
O MeshId é o ID de conteúdo do mesh que deve ser exibido.
O TextureId é o ID de conteúdo da textura que deve ser aplicada à malha.
O deslocamento de uma malha determina a posição relativa a partir do BasePart.Position de uma BasePart que a malha será exibida.
A escala de um mesh determina o tamanho do mesh em relação às suas dimensões originais.
Muda a tonalidade da textura de uma malha, usada com FileMesh.TextureId.
Propriedades
MeshId
O MeshId é o ID de conteúdo do mesh que deve ser exibido.
O ID de conteúdo para uma malha é gerado quando um desenvolvedor carrega uma malha no Roblox.
Amostras de código
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
O ID da textura é o ID do conteúdo da imagem que deve ser aplicado para usar a textura das malhas.Quando a propriedade TextureId é definida para uma string / cadeia / textovazia, nenhuma textura será aplicada à malha.
Como posso alterar a textura de uma malha?
Usando a propriedade TextureId, a textura de uma malha pode ser alterada sem ter que reenviar a malha.Para fazer isso, uma nova imagem precisará ser carregada no Roblox com a textura desejada.O arquivo de imagem de textura original pode ser obtido ao exportar a malha usando a opção 'Exportar Seleção' no Roblox Studio.O arquivo de imagem será salvo ao lado do arquivo .obj exportado.
A nova textura pode então ser re-carregada no Roblox como uma Imagem e seu ID de conteúdo pode ser aplicado ao modelo usando a propriedade TextureId.
Como posso fazer uma malha texturizada?
Uma malha só pode ser texturizada se a malha tiver sido mapeada em UV.Mapeamento UV refere-se à prática de projetar um mapa de textura em uma malha.Isso não pode ser feito usando o Roblox Studio e tem que ser feito usando um aplicativo de modelagem 3D externo, como Blender.
Amostras de código
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