FileMesh
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Objek FileMesh menerapkan mesh bertekstur ke BasePart ketika diberikan kepadanya. Propertinya diwarisi oleh objek SpecialMesh .
Apa itu FileMesh?
FileMeshes memungkinkan meshes yang diunggah pengguna diterapkan ke BasePart .Mesh yang diterapkan tergantung pada properti FileMesh.MeshId.Sebuah teksur juga dapat diterapkan ke mesh ini menggunakan FileMesh.TextureId .
Meskipun bukan kelas abstrak, dan dapat digunakan oleh pengembang, semua properti FileMesh dapat diwarisi oleh objek SpecialMesh.Sebuah SpecialMesh berperilaku identik dengan objek FileMesh ketika SpecialMesh.MeshType diatur ke 'FileMesh'.Meskipun kedua objek berfungsi, objek SpecialMesh adalah kelas resmi yang didukung.
Untuk informasi lebih lanjut tentang penggunaan meshes, silakan lihat halaman SpecialMesh.
Contoh Kode
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()
Rangkuman
Properti
MeshId adalah ID konten dari mesh yang akan ditampilkan.
TextureId adalah ID konten dari tekstur yang akan diterapkan ke mesh.
Offset dari sebuah meshes menentukan posisi relatif dari BasePart.Position dari sebuah BasePart yang meshes akan ditampilkan di.
Skala dari mesh menentukan ukuran mesh relatif terhadap dimensi aslinya.
Mengubah nuansa tekstur mesh, digunakan dengan FileMesh.TextureId .
Properti
MeshId
MeshId adalah ID konten dari mesh yang akan ditampilkan.
ID konten untuk mesh dihasilkan saat pengembang mengunggah mesh ke Roblox.
Contoh Kode
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 adalah ID konten dari gambar yang akan diterapkan untuk digunakan untuk tekstur meshes.Ketika properti TextureId diatur ke string kosong, tidak ada teksur yang akan diterapkan ke mesh.
Bagaimana saya bisa mengubah tekstur meshes?
Menggunakan properti TextureId, tekstur dari mesh dapat diubah tanpa harus mengunggah ulang mesh.Untuk melakukan ini, gambar baru harus diunggah ke Roblox dengan tekstur yang diinginkan.File gambar tekstur asli dapat diperoleh dengan mengekspor mesh menggunakan opsi 'Ekspor Pilihan' di Roblox Studio.File gambar akan disimpan bersama dengan file .obj yang diekspor.
Tekstur baru kemudian dapat diunggah kembali ke Roblox sebagai Decal dan ID kontennya dapat diterapkan ke mesh menggunakan properti TextureId.
Bagaimana saya bisa membuat mesh bertekstur?
Mesh hanya dapat diberi tekstur jika mesh telah dipeta UV.Pemetaan UV merujuk pada praktik memproyeksikan peta tekstur ke mesh.Ini tidak dapat dilakukan menggunakan Roblox Studio dan harus dilakukan menggunakan aplikasi pemodelan 3D eksternal seperti Blender.
Contoh Kode
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