Posición Real del Sol en Unreal Engine 5: Tutorial Paso a Paso

Bienvenidos a este tutorial sobre cómo establecer la posición real del sol en Unreal Engine 5.

Hoy vamos a aprender cómo construir un sistema que coincida de manera precisa con la posición real del sol, y por lo tanto conseguir una iluminación en tiempo real dentro de tu proyecto en Unreal Engine.

Esto significa que el sol que ves en la pantalla se corresponderá con la ubicación real del sol en un momento específico del día y del año. Por lo tanto siguiendo ese tutorial lograrás un control preciso sobre la ubicación geográfica del sol basada en la latitud, longitud, fecha y hora.

Es una excelente herramienta para hacer que tu sol parezca más realista, especialmente si deseas representar una ciudad en particular, o si trabajas en visualización arquitectónica.

Unreal Engine 5 hace que sea sorprendentemente fácil establecer la posición real del sol ¡Así que comencemos!»

Plugin: Sun Position Calculator

El primer paso es activar el plugin llamado «Sun Position Calculator» por Epic Games, Inc.

Para activarlo simplemente ve al menú «Edit«, en la esquina superior izquierda del programa, y luego selecciona «Plugins».

Busca «Sun position calculator» en la ventana de plugins y actívalo. Es un plugin completamente gratuito y no requiere ninguna descarga extra.

Después de activar el plugin tendrás que reiniciar Unreal Engine para aplicar las modificaciones.

Unreal Engine Enable Real World Sun Position Plugin
Sun Position Calculator Plugin en Unreal Engine 5

Cómo establecer la posición real del sol en Unreal Engine

Una vez de vuelta en el motor, abre el Content Browser (Window -> Content Browser), y busca el Blueprint Class llamado «SunSky«.

Lo encontrarás en la carpeta «Engine -> Plugins -> Sun Position Calculator Content«.

Simplemente arrastra y suelta el Sun Sky Blueprint en tu nivel para empezar.

Si no lo encuentras incluso después de instalar el plugin, abre las Opciones o Settings (esquina derecha) del Content Browser y habilita tanto «Show Engine Content» como «Show Plugin Content».

SunSky Blueprint Class

Errores comunes de iluminación

Luces duplicadas: Para empezar a utilizar el blueprint SunSky, es importante limpiar tu escena eliminando cualquier Directional Light, Sky Atmosphere and Sky Light preexistentes. Estas luces son innecesarias ya que el blueprint SunSky ya las incluye.

Pantalla blanca: Si tu pantalla se vuelve blanca después de arrastrar el blueprint SunSky, abre el blueprint haciendo doble clic sobre él. Una vez que esté abierto, selecciona la Directional Light en el panel de componentes. Luego, en el panel de detalles, busca el parámetro «Intensity«. Simplemente cambia el valor de intensidad de la luz a 3 lux u otro valor que te convenga.

Pantalla negra: Si seleccionas una hora que corresponda a por la noche, la pantalla se volverá negra porque por la noche no hay sol.

Posición del sol basada en una localización geográfica

Ahora que tenemos todo configurado, podemos comenzar a utilizar la función de posición real del sol. Esta herramienta te permite ajustar con precisión la ubicación geográfica del sol en función de la latitud, longitud, fecha y hora.

¡Vamos a buscar una ciudad para usar como ejemplo!

Voy a configurar la posición actual del sol en Barcelona. Si deseas la posición del sol de otra ciudad, te recomiendo el sitio web de nations geo. O simplemente busca las coordenadas de la ciudad y la hora UTC en Google.

Para continuar, simplemente selecciona el SunSky en el Outliner e ingresa los valores correspondientes en el panel de detalles como puedes ver en la captura de pantalla a continuación.

ParámetroBarcelona, España
Latitud41.3825
Longitud2.1769
Huso horario2 (Utiliza solo UTC o GMT)
Horario de veranoTe recomiendo evitar usar la opción de «Use Daylight Saving Time» ya que muchas veces no funciona correctamente. En su caso, prueba cambiar directamente el UTC, en este caso sería UTC 1 en lugar de 2.
  • North Offset: La relación entre los elementos de tu nivel y los puntos cardinales de la brújula se controla mediante este parámetro. Evita usar la herramienta de rotación para girar la brújula. Lo ideal es girar los puntos cardinales usando esta opción.
  • Month and Day: Simplemente escribe el día del año que deseas imitar.
  • Solar Time: Aquí introduce la hora a la que quieres que esté el sol. Cuando te desplaces sobre la configuración de la hora, verás que se muestra como un valor decimal. Por ejemplo, 12.5 = 12:30. Esto permite un control exacto de la posición del sol a lo largo del día.

Cómo actualizar la posición del sol en tiempo real?

Si deseas cambiar la posición del sol en tiempo real durante el día, tendrás que modificar el código del blueprint Sun Sky.

No tengas miedo de modificar la función «Update Sun». Comienza desconectando las variables de tiempo y luego conecta los valores de tiempo de la función «UTC Now» dentro del blueprint. Se recomienda utilizar esta función en lugar de «Now», ya que debes tener en cuenta que a la hora se sumará o restará el valor de la zona horaria.

Si no estás seguro de la diferencia entre «UTC Now» y «Now», simplemente conecta los nodos a un nodo Print String y comprueba los distintos resultados.

Haz clic derecho el pin de output «Return Value» del nodo «UTC Now» y selecciona «Split Struct Pin» para conectar los pines de salida correspondientes a la función «Get Sun Position«. Repite el mismo proceso en el «Event Graph».

Alternativamente, puedes conectar los nodos de retorno directamente a nodos de tiempo como «Get Year», «Get Month», «Get Day», «Get Hour», y así sucesivamente. O conectar el nodo «Break Date Time».

La posición del sol se actualizará tan pronto como le des a jugar. Puedes verificar esto ajustando la hora local en tu PC. Si cambiar la hora en tu PC provoca un cambio en la posición del sol, esto confirma que el sistema está funcionando correctamente.

Real World Sun Position In Unreal Engine

Si quieres mejorar el rendimiento, te recomiendo reemplazar el Event Tick del Event Graph, por un Event BeginPlay, y conectarle un nodo Delay que llame a la función «Update Sun» cada 60 segundos. Esto evitará que el motor compruebe la posición del sol cada fotograma.

¡Y eso es todo! Espero que hayas podido configurar con éxito la posición real del sol en tu proyecto de Unreal Engine 5.

Ahora, cuando mires al cielo en tu juego, verás el sol posicionado con precisión, coincidiendo con la ubicación y el tiempo reales. Siéntete libre de experimentar con diferentes ubicaciones y momentos para lograr la atmósfera deseada.

Espero que este tutorial te haya sido útil. ¡Sigue creando!