FileMesh

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Das FileMesh-Objekt wendet ein strukturiertes Netz auf ein BasePart an, wenn es damit verbunden wird. Seine Eigenschaften werden vom SpecialMesh-Objekt geerbt.

Was ist ein FileMesh?

FileMeshes ermöglichen es dem Benutzer, hochgeladene Meshes auf ein BasePart anzuwenden.Das verwendete Netz hängt von der FileMesh.MeshId Eigenschaftenab.Eine Textur kann auch auf dieses Netz angewendet werden, indem FileMesh.TextureId verwendet wird.

Obwohl es keine abstrakte Klasse ist und von Entwicklern verwendet werden kann, werden alle FileMesh Eigenschaften vom SpecialMesh Objekt erbt.Ein SpecialMesh verhält sich identisch zum FileMesh-Objekt, wenn sein SpecialMesh.MeshType auf "FileMesh" festgelegt ist.Obwohl beide Objekte funktionsfähig sind, ist das SpecialMesh Objekt die offiziell unterstützte Klasse.

Für weitere Informationen zur Verwendung von Meshes sehen Sie bitte die SpecialMesh.

Code-Beispiele

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.

FileMesh Offset and Scale

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

Zusammenfassung

Eigenschaften

  • MeshId:ContentId
    Parallel lesen

    Die MeshId ist die Inhalts-ID des Mesh, das angezeigt werden soll.

  • TextureId:ContentId
    Parallel lesen

    Die TextureId ist die Inhalts-ID der Textur, die auf das Meshangewendet werden soll.

Eigenschaften von DataModelMesh übernommen

Eigenschaften

MeshId

ContentId
Parallel lesen

Die MeshId ist die Inhalts-ID des Mesh, das angezeigt werden soll.

Die Inhalts-ID für ein Mesh wird generiert, wenn ein Entwickler ein Mesh auf Roblox hochlädt.

Code-Beispiele

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

TextureId

ContentId
Parallel lesen

Die TextureId ist die Inhalts-ID des Bildes, das für die Meshtextur angewendet werden soll.Wenn die Eigenschaft TextureId auf eine leere Stringgesetzt wird, wird keine Textur auf das Netz angewendet.

Wie kann ich die Textur eines Meshes ändern?

Mit der Eigenschaftenkann die Textur eines Meshes geändert werden, ohne dass das Meshes neu hochgeladen werden muss.Um dies zu tun, muss ein neues Bild mit der gewünschten Textur auf Roblox hochgeladen werden.Die ursprüngliche Texturbilddatei kann durch die Exportoption "Auswahl exportieren" in Roblox Studio erhalten werden.Die Bilddatei wird neben der exportierten .obj-Datei gespeichert.

Die neue Textur kann dann erneut auf Roblox als Decal hochgeladen werden, und ihre Inhalts-ID kann mit der Eigenschaftenauf das Netz angewendet werden.

Wie kann ich ein Mesherstellen?

Ein Netz kann nur texturiert werden, wenn das Netz UV gemappt wurde.UV-Kartierung bezieht sich auf die Praxis, eine Texturkarte auf ein Meshzu projizieren.Dies kann nicht mit Roblox Studio erledigt werden und muss mit einer externen 3D-Modellierungsanwendung wie Blender erledigt werden.

Code-Beispiele

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

Methoden

Ereignisse