FileMesh
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
วัตถุ FileMesh ใช้เมชที่มีพื้นผิวกับ BasePart เมื่อถูกผูกกับมัน คุณสมบัติของมันจะได้รับการสืบทอดจากวัตถุ SpecialMesh
FileMesh คืออะไร?
FileMeshes ช่วยให้ผู้ใช้สามารถอัปโหลดเมชที่ถูกใช้ไปยัง BasePart ได้เมชที่ใช้ขึ้นอยู่กับคุณสมบัติ FileMesh.MeshIdเทกเจอร์ยังสามารถใช้กับเมชนี้โดยใช้ FileMesh.TextureId ได้
แม้ว่ามันจะไม่ใช่คลาสที่เป็นนามธรรมและสามารถใช้โดยนักพัฒนาได้ แต่คุณสมบัติทั้งหมด FileMesh จะได้รับการถ่ายทอดจากวัตถุ SpecialMeshA SpecialMesh มีพฤติกรรมเหมือนกับวัตถุ FileMesh เมื่อตั้งค่า SpecialMesh.MeshType เป็น 'FileMesh'แม้ว่าทั้งสองวัตถุจะทำงานได้ แต่วัตถุ SpecialMesh เป็นคลาสที่สนับสนุนอย่างเป็นทางการ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้เมช โปรดดูที่หน้า SpecialMesh
ตัวอย่างโค้ด
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()
สรุป
คุณสมบัติ
MeshId เป็นรหัสเนื้อหาของเมชที่จะแสดง
TextureId เป็นรหัสเนื้อหาของเทกเจอร์ที่จะถูกใช้กับเมช
ค่าส่วนลบของเมชจะกำหนดตำแหน่งที่สัมพันธ์จาก BasePart.Position ของเมชที่จะแสดงที่ BasePart ซึ่งเมชจะแสดงที่
ขนาดของเมชจะกำหนดขนาดของเมชเมื่อเทียบกับขนาดเดิมของมัน
เปลี่ยนสีของเทกเจอร์ของเมชที่ใช้กับ FileMesh.TextureId
คุณสมบัติ
MeshId
MeshId เป็นรหัสเนื้อหาของเมชที่จะแสดง
ID เนื้อหาสำหรับเมชจะถูกสร้างเมื่อนักพัฒนาอัปโหลดเมชไปยัง Roblox
ตัวอย่างโค้ด
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 เป็นรหัสเนื้อหาของภาพที่จะใช้สำหรับเทกเจอร์เมชเมื่อคุณสร้างคุณสมบัติ TextureId เป็นสตริงว่างเปล่า จะไม่มีเทกเจอร์ถูกนำไปใช้กับเมช
ฉันจะเปลี่ยนเทกเจอร์ของเมชได้อย่างไร?
โดยใช้คุณสมบัติ TextureId เทกเจอร์ของเมชจะสามารถเปลี่ยนได้โดยไม่ต้องรีอัพโหลดเมชเพื่อทำเช่นนี้ จะต้องอัปโหลดภาพใหม่ไปยัง Roblox ด้วยเทกเจอร์ที่ต้องการไฟล์ภาพเทกเจอร์เดิมสามารถได้รับโดยส่งออกเมชที่ใช้ตัวเลือก 'ส่งส่วนที่เลือก' ใน Roblox Studioไฟล์ภาพจะถูกบันทึกไว้พร้อมกับไฟล์ .obj ที่ส่งออก
เทกเจอร์ใหม่สามารถอัปโหลดใหม่ไปยัง Roblox ในฐานะ Decal และรหัสเนื้อหาสามารถใช้กับเมชโดยใช้คุณสมบัติ TextureId ได้
ฉันจะสร้างเมชที่มีพื้นผิวได้อย่างไร?
เมชจะถูกทำให้เป็นพื้นผิวได้เฉพาะถ้าเมชถูกแมพด้วย UVการแผนที่ UV หมายถึงการปฏิบัติในการโปรเจคแผนที่เทกเจอร์บนเมชไม่สามารถทำได้โดยใช้ Roblox Studio และต้องทำโดยใช้แอปพลิเคชันจําลอง 3D ภายนอกเช่น Blender
ตัวอย่างโค้ด
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