Una caja de cielo es un cubo compuesto por seis imágenes individuales que crean un fondo de cielo inmersivo en un juego. Cuando las imágenes están diseñadas para alinearse perfectamente entre sí, la caja de cielo parece ser panorámica sin la impresión de estar dentro de un cubo. Esto hace que los juegos se sientan más grandes de lo que realmente son, y añade profundidad a tu atmósfera, como simular el espacio profundo o entornos submarinos.
Además, el objeto Sky incluye cuerpos celestes como un sol, una luna y estrellas que aparecen, ascienden y se ponen dinámicamente según el TimeOfDay o ClockTime.
Finalmente, el objeto Sky se puede utilizar como un cubemap para reflejos en ViewportFrames. Para más detalles, consulta marcos de vista.
Construcción de la caja de cielo
Si has creado tus propias imágenes de caja de cielo, primero debes importarlas a Roblox antes de poder usarlas en una caja de cielo. Cada imagen debe ser sin costuras a lo largo de todos los bordes de las imágenes vecinas cuando se "dobla" en un cubo.

Para crear una caja de cielo:
Selecciona el nuevo objeto Sky, luego en la ventana de Propiedades, asigna una textura a cada una de las siguientes propiedades del cielo:
- SkyboxBk — El cuadrado trasero de la caja de cielo.
- SkyboxDn — El cuadrado inferior de la caja de cielo.
- SkyboxFt — El cuadrado frontal de la caja de cielo.
- SkyboxLf — El cuadrado izquierdo de la caja de cielo.
- SkyboxRt — El cuadrado derecho de la caja de cielo.
- SkyboxUp — El cuadrado superior de la caja de cielo.

Cuerpos celestes
Por defecto, el objeto Sky incluye cuerpos celestes como un sol, una luna y estrellas. Estos cuerpos aparecen, ascienden y se ponen dinámicamente según los valores de propiedad TimeOfDay o ClockTime.
Puedes personalizar los cuerpos celestes a través de las siguientes propiedades:
- SunTextureId — Establece la textura del sol.
- SunAngularSize — Establece el tamaño relativo del sol en grados.
- MoonTextureId — Establece la textura de la luna.
- MoonAngularSize — Establece el tamaño relativo de la luna en grados.
- StarCount — Establece la cantidad de estrellas en la caja de cielo.
Orientación
La propiedad SkyboxOrientation cambia la orientación de las superficies de la caja de cielo. La propiedad toma un Vector3 de valores en grados en el orden típico XYZ, pero la rotación se aplica primero alrededor del eje Y, luego X y luego Z para permitir un control predecible sobre movimientos complejos.
Una forma fácil de programar una animación de orientación es girar alrededor del eje Y (manteniendo el horizonte nivelado), luego inclinar este eje configurando X y Z a un valor fijo. El siguiente script, por ejemplo, anima el eje Y para girar mientras mantiene una inclinación constante de 30° en el eje X.
local Lighting = game:GetService("Lighting")
local RunService = game:GetService("RunService")
local sky = Lighting:FindFirstChild("Sky")
local ROTATION_SPEED = 5 -- En grados por segundo
RunService.Heartbeat:Connect(function(deltaTime)
sky.SkyboxOrientation = Vector3.new(
30,
(sky.SkyboxOrientation.Y + ROTATION_SPEED * deltaTime) % 360,
0
)
end)
Ten en cuenta que la orientación de la caja de cielo es una característica de bajo costo que funciona sin problemas en todas las plataformas y niveles de calidad visual. Como resultado, algunas excepciones intencionales incluyen:
- Si el cielo es visible en reflejos interiores, como una superficie de espejo a través de una ventana abierta, esa vista reflejada específica no se rotará. Lograr esto requeriría un costoso re-renderizado y convolución de cubemaps, lo que impactaría significativamente el rendimiento y la disponibilidad general.
- Solo las superficies de la caja de cielo rotan; los cuerpos celestes no se ven afectados por esta propiedad.
- Si utilizas un Sky dentro de un ViewportFrame, reflejará los valores globales de SkyboxOrientation. No puedes ajustar el ángulo por cada ViewportFrame.
- La característica de nubes dinámicas bajo Terrain no se ve afectada.
