กล่องฟ้า เป็นกล่องที่ประกอบด้วยภาพเดี่ยวหกภาพที่สร้างพื้นหลังท้องฟ้าที่สมจริงในประสบการณ์ เมื่อภาพถูกออกแบบมาให้สอดคล้องกันอย่างสมบูรณ์ กล่องท้องฟ้าดูเหมือนจะเป็นภาพกว้างโดยไม่มีความประทับใจว่าอยู่ภายในลูกบาศก์สิ่งนี้ทำให้ประสบการณ์รู้สึกใหญ่กว่าที่เป็นจริงและเพิ่มความลึกให้กับบรรยากาศของคุณ เช่น จำลองพื้นที่ลึกหรือสภาพแวดล้อมใต้น้ำ
นอกจากนี้ วัตถุ Sky รวมถึงร่างกายทางจักรวาลเช่นดวงอาทิตย์ ดวงจันทร์ และดาวซึ่งปรากฏได้อย่างไดนามิก เพิ่มขึ้น และตั้งตาม TimeOfDay หรือ ClockTime .
ในที่สุดวัตถุ Sky สามารถใช้เป็นแผนที่ลูกบาศก์สำหรับการสะท้อนใน ViewportFrames สำหรับรายละเอียด ดูที่ กรอบมุมมอง
การสร้าง Skybox
หากคุณสร้างภาพกล่องฟ้าของคุณเองคุณต้องนำมา นำเข้า พวกเขาไปยัง Roblox ก่อนที่คุณจะสามารถใช้งานในกล่องฟ้าได้แต่ละภาพต้องไร้รอยต่อตาม ทุกขอบ ของภาพข้างเคียงเมื่อ "พับ" เป็นลูกบาศก์

เพื่อสร้างกล่องฟ้า:
เลือกวัตถุใหม่ Sky จากนั้นในหน้าต่าง คุณสมบัติ ให้กำหนดเทกเจอร์ให้แต่ละคุณสมบัติท้องฟ้าต่อไปนี้:
- SkyboxBk — สี่เหลี่ยมด้านหลังของ skybox
- SkyboxDn — สกายบ็อกซ์ดาวน์ของสกายบ็อกซ์ สแควร์ * SkyboxFt — สกายบ็อกซ์ด้านหน้าของสกายบ็อกซ์ ที่สี่ * SkyboxLf — สี่เหลี่ยมด้านซ้ายของ skybox
- SkyboxRt — สี่เหลี่ยมด้านขวาของสกายบ็อกซ์
- SkyboxUp — พื้นที่สี่เหลี่ยมของสกายบ็อกซ์ที่สูงขึ้น
ร่างกายท้องฟ้า
โดยค่าเริ่มต้น วัตถุ Sky รวมถึงวัตถุท้องฟ้าเช่นดวงอาทิตย์ ดวงจันทร์ และดาวร่างกายเหล่านี้ปรากฏและเพิ่มขึ้นอย่างไดนามิกตามค่าคุณสมบัติ TimeOfDay หรือ ClockTime
คุณสามารถปรับแต่งร่างกายท้องฟ้าผ่านคุณสมบัติต่อไปนี้:
- SunTextureId — ตั้งเทกเจอร์ของดวงอาทิตย์
- SunAngularSize — ตั้งขนาดสัมพันธ์ของดวงอาทิตย์ในองศา
- MoonTextureId — ตั้งเทกเจอร์ของดวงจันทร์
- MoonAngularSize — ตั้งขนาดสัมพันธ์ของดวงจันทร์ในองศา
- StarCount — ตั้งจํานวนดาวในกล่องท้องฟ้า
การจัดทิศทาง
คุณสมบัติ SkyboxOrientation เปลี่ยนทิศทางของพื้นผิวสกายบ็อกซ์คุณสมบัติใช้ Vector3 ของค่าองศาในคำสั่ง XYZ ทั่วไป แต่การหมุนจะ ใช้ ก่อนรอบแกน Y จากนั้น X และจากนั้น Z เพื่ออนุญาตการควบคุมที่คาดการณ์ได้สำหรับการเคลื่อนไหวที่ซับซ้อน
วิธีที่ง่ายในการสคริปต์แอนิเมชั่นการจัดตำแหน่งคือการหมุนรอบแกน Y (รักษาระดับขอบฟ้า) จากนั้นเอียงแกนนี้โดยการตั้ง X และ Z เป็นค่าคงที่สคริปต์ต่อไปนี้ ตัวอย่างเช่น แอนิเมชั่นแกน Y สำหรับการหมุนในขณะที่รักษาการเอียงสม่ำเสมอ 30° บนแกน X
local Lighting = game:GetService("Lighting")
local RunService = game:GetService("RunService")
local sky = Lighting:FindFirstChild("Sky")
local ROTATION_SPEED = 5 -- ในองศาต่อวินาที
RunService.Heartbeat:Connect(function(deltaTime)
sky.SkyboxOrientation = Vector3.new(
30,
(sky.SkyboxOrientation.Y + ROTATION_SPEED * deltaTime) % 360,
0
)
end)
โปรดทราบว่าการจัดเรียงกล่องท้องฟ้าเป็นคุณลักษณะราคาถูกที่ทำงานได้อย่างราบรื่นในทุกแพลตฟอร์มและระดับคุณภาพภาพผลที่ตามมาคือบางข้อยกเว้นตั้งใจรวมถึง:
- หากท้องฟ้าสามารถมองเห็นได้ในการสะท้อนภายในเช่นพื้นผิวกระจกผ่านหน้าต่างที่เปิดอยู่การมุมมองที่สะท้อนเฉพาะนั้นจะไม่หมุนการบรรลุนี้จะต้องใช้การเรนเดอร์รูปลักษณ์ที่แพงและซับซ้อนของแผนที่ลูกบาศก์ซึ่งจะมีผลกระทบต่อประสิทธิภาพและความพร้อมใช้งานอย่างมาก
- เฉพาะพื้นผิวกล่องท้องฟ้าหมุนเท่านั้น; ร่างกายท้องฟ้า ไม่ได้รับผลกระทบจากคุณสมบัตินี้
- หากคุณใช้ Sky ภายใน ViewportFrame จะสะท้อนมูลค่า SkyboxOrientation ระดับโลก คุณไม่สามารถปรับแต่งมุมต่อ ViewportFrame ได้
- คุณสมบัติ เมฆไดนามิก ภายใต้ Terrain ไม่ได้รับผลกระทบ