SpecialMesh
*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
- 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.
- BasePart.Material s'affiche correctement sur le maillage lors de l'utilisation d'un MeshPart et non lors de l'utilisation d'un SpecialMesh
- MeshParts inclut la propriété MeshPart.CollisionFidelity, ce qui signifie que le modèle de collision d'un MeshPart peut être défini pour ressembler à la géométrie du maillage.L'objet SpecialMesh, en revanche, utilise le modèlisationde collision parent BaseParts
- La propriété MeshId d'un SpecialMesh peut être modifiée par un Script ou LocalScript pendant l'exécution.La propriété MeshId de un MeshPart ne peut pas.
É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.
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.
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
Détermine le type de maillage qui sera appliqué au BasePart le SpecialMesh est parenté à.
L'ID de maillage est l'ID du contenu du maillage qui doit être affiché.
L'ID de texture est l'ID du contenu de la texture qui doit être appliquée au maillage.
Le décalage d'un maillage détermine la position relative à partir du BasePart.Position d'un BasePart auquel le maillage sera affiché.
L'échelle d'un maillage détermine la taille du maillage par rapport à ses dimensions originales.
Change la teinte de la texture d'un maillage, utilisée avec FileMesh.TextureId .
Propriétés
MeshType
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
- 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.
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