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

ในการสร้าง skybox:
เลือกวัตถุ Sky ใหม่ จากนั้นในหน้าต่าง Properties ให้กำหนดพื้นผิวสำหรับคุณสมบัติท้องฟ้าต่อไปนี้:
- SkyboxBk — สี่เหลี่ยม ด้านหลัง ของ skybox
- SkyboxDn — สี่เหลี่ยม ด้านล่าง ของ skybox
- SkyboxFt — สี่เหลี่ยม ด้านหน้า ของ skybox
- SkyboxLf — สี่เหลี่ยม ด้านซ้าย ของ skybox
- SkyboxRt — สี่เหลี่ยม ด้านขวา ของ skybox
- SkyboxUp — สี่เหลี่ยม ด้านบน ของ skybox

ดวงดาว
ตามค่าเริ่มต้น วัตถุ Sky จะรวมถึงดวงดาว เช่น ดวงอาทิตย์ ดวงจันทร์ และดวงดาว ดวงดาวเหล่านี้จะปรากฏขึ้น มีขึ้น และตกตามค่าของ TimeOfDay หรือ ClockTime
คุณสามารถปรับแต่งดวงดาวได้โดยการใช้คุณสมบัติต่อไปนี้:
- SunTextureId — ตั้งค่าพื้นผิวของดวงอาทิตย์
- SunAngularSize — ตั้งค่าขนาดสัมพัทธ์ของดวงอาทิตย์เป็นองศา
- MoonTextureId — ตั้งค่าพื้นผิวของดวงจันทร์
- MoonAngularSize — ตั้งค่าขนาดสัมพัทธ์ของดวงจันทร์เป็นองศา
- StarCount — ตั้งค่าจำนวนดวงดาวใน skybox
การจัดแนว
คุณสมบัติ SkyboxOrientation จะเปลี่ยนการจัดแนวของพื้นผิวของ skybox คุณสมบัตินี้ใช้ Vector3 ของค่าองศาในลำดับ XYZ ปกติ แต่การหมุนจะถูก นำไปใช้ ก่อนที่จะแกน Y จากนั้นจึงเป็น X และจากนั้น Z เพื่อให้สามารถควบคุมการเคลื่อนที่ซับซ้อนอย่างคาดเดาได้
วิธีง่าย ๆ ในการสคริปต์การเคลื่อนไหวการจัดแนว คือการหมุนโดยรอบแกน Y (โดยยังคงระดับขอบฟ้า) จากนั้นไ tilt แกนนี้โดยการตั้งค่า 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)
โปรดทราบว่าการจัดแนว skybox เป็นฟีเจอร์ที่มีค่าใช้จ่ายต่ำซึ่งทำงานได้อย่างราบรื่นข้ามทุกแพลตฟอร์มและระดับคุณภาพการมองเห็น ดังนั้นข้อยกเว้นที่ตั้งใจไว้บางประการ ได้แก่:
- ถ้าท้องฟ้ามองเห็นได้ในภาพสะท้อนในร่ม เช่น ในพื้นผิวกระจกผ่านหน้าต่างที่เปิดอยู่ การสะท้อนเฉพาะจุดนั้นจะไม่ถูกหมุน การบรรลุผลนี้จะต้องใช้การเรนเดอร์ใหม่ที่มีค่าใช้จ่ายสูงและการรวบรวม cubemaps ซึ่งจะส่งผลกระทบต่อประสิทธิภาพการทำงานและความสามารถในการเข้าถึงอย่างมาก
- เฉพาะพื้นผิวของ skybox เท่านั้นที่จะหมุน; ดวงดาว จะไม่ได้รับผลกระทบจากคุณสมบัตินี้
- ถ้าคุณใช้ Sky ภายใน ViewportFrame มันจะสะท้อนค่าของ SkyboxOrientation ทั่วไป คุณไม่สามารถปรับมุมต่อ ViewportFrame
- ฟีเจอร์ เมฆพลศาสตร์ ใน Terrain จะไม่ได้รับผลกระทบ
