SpecialMesh

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

L'objet SpecialMesh applique un maillage à un BasePart en fonction de la propriété MeshType. Un certain nombre d'options sont disponibles.

  • Brique - Une forme de bloc, équivalente à un BlockMesh
  • Cylindre - Un cylindre, identique à un Part avec un Part.Shape de 'Cylindre'
  • FileMesh - Un utilisateur a téléchargé un maillage, équivalent à FileMesh que une texture peut être appliquée en utilisant la propriété FileMesh.TextureId
  • Tête - Une forme de tête de personnage
  • Sphère - Une forme de sphère, similaire à une Part avec une Part.Shape de 'Ball' mais peut être redimensionnée librement sur tous les axes
  • Cale - Une forme de coin identique à un WedgePart
  • Torso - Un bloc avec des côtés inclinés, qui devrait être obsolète

Remarque, chaque SpecialMesh.MeshType va évoluer différemment lors de l'utilisation de DataModelMesh.Scale, pour plus d'informations à ce sujet, voir la page sur DataModelMesh.Scale.L'objet SpecialMesh expose également la propriété DataModelMesh.Offset.

Il est important de se rappeler que lors de l'utilisation d'un SpecialMesh, seul l'apparence d'une partie change.Le modèle de collision de la partie reste le même.Par exemple, un personnage ne pourra pas marcher correctement sur un maillage car la géométrie du maillage n'est pas prise en compte.

SpécialMesh vs MeshPart

Il existe actuellement deux façons d'utiliser un maillage créé par un développeur.Ils utilisent un maillage spécial avec le SpecialMesh.FileType défini sur 'FileMesh', ou en utilisant un MeshPart.Bien que, dans l'ensemble, l'objet MeshPart ait suppléé le spécial Mesh, il y a quelques différences auxquelles les développeurs devraient faire attention.

Échantillons de code

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the SpecialMesh are then animated using TweenService.

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()

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

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

Résumé

Propriétés

Propriétés hérités de FileMesh
  • MeshId:ContentId
    Lecture parallèle

    L'ID de maillage est l'ID du contenu du maillage qui doit être affiché.

  • TextureId:ContentId
    Lecture parallèle

    L'ID de texture est l'ID du contenu de la texture qui doit être appliquée au maillage.

Propriétés hérités de DataModelMesh

Propriétés

Lecture parallèle

Le maillage auquel l'objet SpecialMesh s'applique à la BasePart dépend de la propriété MeshType. Un certain nombre d'options sont disponibles.

  • Brique - Une forme de bloc, équivalente à un BlockMesh
  • Cylindre - Un cylindre, identique à un Part avec un Part.Shape de 'Cylindre'
  • FileMesh - Un utilisateur a téléchargé un maillage, équivalent à FileMesh que une texture peut être appliquée en utilisant la propriété FileMesh.TextureId
  • Tête - Une forme de tête de personnage
  • Sphère - Une forme de sphère, similaire à une Part avec une Part.Shape de 'Ball' mais peut être redimensionnée librement sur tous les axes
  • Cale - Une forme de coin identique à un WedgePart
  • Torso - Un bloc avec des côtés inclinés, qui devrait être obsolète

Remarque, chaque type de maillage s'échelonnera différemment lors de l'utilisation de DataModelMesh.Scale, pour plus d'informations à ce sujet, voir la page sur DataModelMesh.Scale.

Échantillons de code

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

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

Méthodes

Évènements