World Partition allana el camino para que los creadores construyan islas grandes y complejas, y les permite hacerlo mientras optimizan el uso de memoria y garantizan un rendimiento correcto en las distintas plataformas.
Dos componentes importantes que usa World Partition para hacerlo posible son el streaming y los HLOD (nivel de detalle jerárquico).
Streaming
World Partition usa el streaming para cargar celdas de cuadrícula en torno a un jugador o una fuente de streaming dentro y fuera de la memoria. Esto reduce la cantidad de datos que la máquina tiene que recordarles a las celdas que rodean al personaje de un jugador.
Si la isla supera el kilómetro en su eje más ancho, aparecerá un menú emergente que te indicará que actives el streaming.
Al seleccionar Habilitar streaming, solo las celdas que rodean la posición actual del jugador cuentan para el uso actual de la memoria, aunque existen algunas excepciones.
Haz clic en Ventanas > Ajustes del entorno para ver si la opción Habilitar streaming está activada.
Al marcar la casilla por primera vez, se te pedirá que confirmes tu selección.
Ahora, tu proyecto debería tener habilitado el streaming.
Para visualizar la cuadrícula de la isla, selecciona Vista previa de cuadrículas en Ajustes del entorno.
Puedes modificar el tamaño de cada celda y el rango de carga, pero ten presente que la configuración predeterminada está optimizada para las islas del modo de Batalla campal de Fortnite.
Para obtener información más detallada, consulta la página de World Partition en la documentación de Unreal Engine 5.
Niveles de detalle jerárquico
El nivel de detalle jerárquico o HLOD es un agrupamiento optimizado de actores cercanos donde el grupo se simplifica en una malla estática una vez que está lo suficientemente alejado de la fuente de streaming.
Los HLOD se generan a partir del nivel de detalle (LOD) más bajo del recurso. Si los recursos personalizados no tienen ningún LOD definido, el HLOD será muy costoso, ya que se generará a partir de recursos de alta resolución.
LOD0 es el recurso de fidelidad más alto. LOD1 es una malla de fidelidad más baja, y sigue bajando a medida que aumenta el número de LOD.
La imagen de la izquierda muestra los recursos en detalle, y la de la derecha es un recurso HLOD generado de esa celda de cuadrícula.
Al crear HLOD, se agregan recursos nuevos al proyecto, lo que se suma al uso de memoria total de la isla.
En función de tus decisiones sobre streaming y HLOD, el uso de la memoria se verá afectado de las siguientes maneras:
Streaming desactivado | Los recursos nunca se descargan de la memoria, y los HLOD no se utilizan. | Uso de memoria más elevado |
Streaming activado y HLOD generados | Los recursos seguirán apareciendo a lo lejos, pero con menos detalles a medida que se aleje la cámara. | Uso de memoria moderado |
Streaming activado y HLOD no generados | Los recursos desaparecerán a lo lejos a medida que se aleje la cámara. | Uso de memoria más bajo |
Compilar HLOD
Para compilar los HLOD, garantiza que el proyecto tenga habilitada la opción Streaming. Luego, dirígete al menú Compilar en la barra de herramientas y selecciona Compilar HLOD.
Según la máquina y la complejidad del entorno, es posible que la compilación de HLOD tarde un poco. La buena noticia es que si ejecutas este proceso otra vez, solo se compilarán los HLOD para las regiones del entorno que hayan cambiado y, por lo tanto, llevará menos tiempo.
Para obtener más información sobre cómo funcionan los HLOD, consulta la página World Partition: nivel jerárquico de detalle en la documentación de Unreal Engine 5.
Cómo excluir recursos de la generación de los HLOD
Algunos recursos no requerirán HLOD. A continuación, se muestran algunos ejemplos de recursos que puedes excluir:
Utilería de interiores y recursos de construcción | Todo recurso que no se pueda ver desde la distancia no debe requerir HLOD. Algunos ejemplos son los muebles, las paredes interiores, los pisos interiores, etc. |
Recursos subterráneos | Cualquier parte de la isla que sea subterránea y que nunca estará en la trayectoria óptica de un jugador. Algunos ejemplos son los sótanos, las cuevas, las trincheras, los refugios antiaéreos, etc. |
Pequeños actores | Los pequeños actores que no ocupen un lugar grande de la pantalla del jugador no deberían requerir HLOD. Algunos ejemplos son las cajas, las plantas y las luminarias de las calles. |
Actores grandes | Los actores de fondo grandes, como los rascacielos o las montañas, no necesitan HLOD. Si los excluyes de los HLOD, asegúrate de que siempre permanezcan cargados. Para ello, desmarca la casilla Cargado espacialmente en el panel de detalles. |
Selecciona cualquier recurso que no requiera HLOD. En el panel de detalles, desmarca Incluir actor en HLOD o Incluir componente en HLOD, según el recurso.
Una buena regla general para decidir si incluir un recurso en los HLOD es hacer zoom en el editor, luego, ver si tiene sentido excluir de la generación de HLOD algún recurso que no sea importante.
Rango de carga de retroceso
La calidad de los HLOD está vinculada a su distancia de renderizado. Al usar streaming, la distancia más corta a la cual se verán los HLOD es el rango de carga que configuraste para la cuadrícula de World Partition.
Si los HLOD solo se cargan cuando ya son pequeños en la pantalla del jugador, utilizarán menos almacenamiento.
Para cambiar el rango de carga, realiza lo siguiente:
Selecciona la pestaña Configuración de World Partition.
Expande Configuración de tiempo de ejecución y, luego, Cuadrículas.
Modifica el rango de carga. Para ello, haz clic izquierdo y arrastra el valor del número hacia la izquierda o derecha, o bien introduce un valor exacto.
Cómo usar regiones de carga para obtener un mejor rendimiento del editor
Al trabajar con proyectos grandes en UEFN, puedes advertir problemas de rendimiento a medida que la isla alcanza cierto tamaño. De manera predeterminada, la isla completa se carga en la memoria. Para mejorar la capacidad de respuesta de los fotogramas por segundo y del visor, puedes cargar y descargar las regiones cuando trabajas en distintas áreas de la isla.
Cuando trabajes en una isla grande o densa en UEFN, utiliza el minimapa de World Partition para cargar y descargar las secciones de la isla. De este modo, los tiempos de carga se reducirán de forma significativa.
Para hacer esto:
Asegúrate de que la opción Streaming esté habilitada en tu nivel.
Selecciona Editar en la barra de menús y elige Preferencias del editor.
Dirígete a la sección World Partition y desmarca la opción "Deshabilitar carga en editor".
Vuelve a cargar el proyecto. Esta opción no funcionará a menos que el proyecto se vuelva a cargar.
En la pestaña World Partition, haz clic con el botón izquierdo y arrastra por el área donde deseas descargar.
Haz clic con el botón derecho dentro de la selección y elige Descargar las regiones seleccionadas.
Para volver a cargar una región, haz clic en la región deseada y arrastra por dicha región; luego, haz clic con el botón derecho y selecciona Cargar región desde selección.
Ten en cuenta que el terreno y los dispositivos no se verán afectados por la carga y la descarga. Lo mismo se aplica a cualquier recurso que no tenga marcada la opción "Cargado espacialmente" en Opciones de usuario.
Capas de datos en UEFN
Las capas de datos son un sistema en UEFN que organiza tus actores en capas diferentes. Estas capas pueden cargarse y descargarse a fin de organizar tu entorno, gestionar niveles complejos y crear experiencias de juego únicas. Imagina un juego con niveles aleatorios. Al configurar diferentes diseños de niveles en capas diferentes y seleccionar uno al azar cuando inicia el juego, puedes añadir variedad y emoción a tu experiencia. Puedes utilizar capas de datos para transiciones aun más grandes, por ejemplo cambiar todo un nivel de verano a invierno o añadir destrucción a un castillo luego de una batalla.
Si deseas obtener más información detallada sobre cómo crear y gestionar capas de datos, consulta la página de capas de datos en la página web de Unreal Engine Documentation
Manipulación de capas de datos con el secuenciador cinematográfico
Puedes utilizar la secuencia cinematográfica en UEFN para cargar, activar y descargar capas de datos en tiempo de ejecución y como respuesta a eventos.
En la pestaña Sequencer, haz clic en el botón Seguimiento y selecciona Capa de datos para agregar una capa de datos existente a tu seguimiento de secuenciador.
Una vez que se configure el seguimiento, haz clic con el botón derecho en el seguimiento de Capa de datos y selecciona Editar selección. Luego, haz clic en Añadir elemento debajo de la pestaña Recursos de capas de datos y selecciona la capa de datos que quieras usar con el secuenciador cinematográfico.
Si haces clic con el botón derecho en tu capa de datos en la línea de tiempo, puedes visualizar las propiedades. Aquí puedes elegir el Estado deseado, que es el estado en que quieres que esté la capa cuando se evalúe la línea de tiempo. También puedes modificar el Estado de predesplazamiento. El estado de Predesplazamiento es en el que está la capa antes de que inicie el seguimiento; el estado de Posdesplazamiento es el estado en el que está luego de que finalice. Por ejemplo, si quisieras activar una capa de datos, configurarías el estado deseado en Activado, y el estado de predesplazamiento, en Cargado. Si configuras el estado de predesplazamiento en Cargado y aumentas la cantidad de fotogramas de predesplazamiento, tu capa tendrá más tiempo para cargarse antes de activarse y podrá tener un rendimiento más suave.
Al mover el cursor de reproducción, puedes previsualizar el estado en el que estará tu capa conforme se evalúa la línea de tiempo.
Si deseas obtener más información sobre cómo usar el dispositivo de secuenciador cinematográfico, consulta la página de Dispositivo de secuenciador cinematográfico.
Cómo generar el minimapa del editor
Un paso opcional es generar un minimapa de alta fidelidad en la sesión del editor. Esto puede ayudarte a encontrar de forma rápida las distintas áreas del nivel en el que deseas trabajar.
Selecciona Compilar en la barra de menús y elige Compilar minimapa del editor de World Partition.
Aparecerá el cuadro de diálogo Estado de la compilación en la pantalla. Ten paciencia, ya que este paso puede tardar varios minutos en completarse según la complejidad de la isla.
Tu minimapa ahora coincide con el visor. Las regiones todavía pueden cargarse y descargarse de la misma forma.
Resolución de problemas
P: ¿Por qué no veo los HLOD después de haberlos compilado?
A: Los actores de HLOD no se cargan de forma predeterminada con el editor. Para inspeccionarlos, usa el esquematizador a fin de realizar la búsqueda y ánclalos.
P: ¿Por qué los recursos generan los HLOD cuando los actores están alejados entre sí?
R: Comprueba si los actores están asociados/anidados a un actor base. Haz clic en el actor y selecciona Adjuntar a: ninguno para separarlo.
P: Algunos de mis recursos importantes desaparecen cuando las celdas no están cargadas.
R: Ciertos recursos preparados para UEFN no tendrán seleccionada la opción Incluir actor en HLOD de forma predeterminada. Si ves errores, revisa las propiedades del recurso.
P: ¿Por qué se activa el menú emergente de streaming cuando la isla no supera 1 km?
R: El menú emergente de streaming se puede activar si el terreno excede 1 km en su eje más ancho, o si algún actor está ubicado a más de 1 km del punto de origen en el nivel.
P: ¿Por qué un actor grande no se reemplaza mediante los HLOD a distancia?
R: Es posible que uno o varios de los actores en una jerarquía de prefabricados se hayan copiado y movido tan lejos que la World Partition considere que son mallas que siempre necesitan cargarse. Quita los actores lejanos de la jerarquía para corregir este error.