Para que tus islas funcionen en todas las plataformas compatibles, Fortnite tiene algunas limitaciones de memoria.
En Unreal Editor para Fortnite (UEFN), puedes utilizar las capacidades de memoria ampliadas para crear experiencias más grandes y diversas. Para aprovechar esto al máximo, ayuda entender la forma en que se calcula el uso de la memoria en UEFN.
Partición del entorno
Partición del entorno es la magia detrás de la construcción de una gran experiencia en la isla. Esta función divide automáticamente el entorno en una cuadrícula y hace streaming solo de las celdas necesarias.
World Partition utiliza el streaming, que carga y descarga celdas, y el nivel de detalle jerárquico (HLOD), que agrupa y disminuye la cantidad de detalle de los recursos a medida que la cámara del jugador se aleja.
Para obtener más información sobre World Partition y los HLOD, consulta Streaming y HLOD.
¿Cómo se calcula la memoria?
UEFN calcula el uso de la memoria a partir de los datos que se generan durante el proceso de cooking. Esto significa lo siguiente:
Resultados rápidos en islas grandes.
Cifras coherentes cada vez que ejecutes el cálculo en la misma versión de la isla, la misma compilación de Fortnite y el mismo dispositivo.
Amplia compatibilidad con más tipos de recursos y con Scene Graph.
El sistema de cálculo de memoria en UEFN solo se ejecuta en el momento de la edición y no puede utilizarse para evaluar el uso de la memoria en el momento del juego. Se utiliza para verificar que el uso de memoria de referencia de una isla no supere un umbral razonable.
Sin embargo, la lógica personalizada del tiempo de ejecución puede generar un uso elevado de la memoria, lo que puede causar problemas a los jugadores y limitar su capacidad de jugar en tu isla. Recomendamos utilizar el perfilador espacial para tener una mejor idea de cómo tu isla usa la memoria y cómo funciona en el momento del juego, a fin de evitar provocar problemas de estabilidad o de rendimiento a tus jugadores.
El diseño de la sesión
Cuando cargues tu sesión, verás una barra de uso actual de la memoria en el HUD.
La barra muestra un máximo de 100 000 unidades de memoria para darte una idea del uso de la memoria en tu isla.
Con la transmisión habilitada, la memoria se calcula en función de la posición del jugador en la isla, no de acuerdo con la memoria total utilizada por todos los recursos de la isla. Realizar un cálculo de memoria te dará los valores de consumo de memoria más precisos para cada celda de streaming.
Algunos recursos permanecerán en la memoria independientemente de la posición del jugador y aumentarán el uso de esta en cualquier lugar del mapa. La mayoría de los recursos se cargarán y descargarán a medida que se transmitan dentro y fuera, y la barra se actualizará para reflejarlo.
Todos los recursos a los que hace referencia el nivel (incluidos los dispositivos, los terrenos, las mallas personalizadas y las texturas, etc.) cuentan para el uso total de la memoria.
Ten presente que si algún área de tu nivel supera los 100 000, no podrás publicar la isla.
Como usuario de UEFN, puedes superar el límite de termómetro de 100 000 siempre y cuando no publiques. Recuerda que las personas que colaboran contigo en una consola podrían alcanzar un límite de memoria disponible en el hardware que los expulsará de la sesión. Podrán reconectarse una vez que el problema se haya resuelto.
Cómo realizar cambios en el contenido
El sistema requiere datos cooked actualizados para calcular el uso de la memoria con precisión. Después de realizar cambios de contenido con la edición en vivo o la herramienta de teléfono, verás un mensaje de Aplicar cambios incluso si el indicador del modo de edición muestra Actualizado, porque la edición en vivo no actualiza los datos cooked que se utilizan para los cálculos de la memoria.
Hasta que apliques los cambios, la barra de uso seguirá actualizándose, pero mostrará un valor desactualizado. El costo de las modificaciones de contenido no se verá reflejado.
Iniciar un cálculo de memoria
Para poder publicar con éxito, es necesario que tu isla se pueda ejecutar en todas las plataformas de hardware admitidas.
Antes de publicarla, es fundamental garantizar que tu proyecto no supere los límites de memoria. En el menú desplegable Proyecto, selecciona Ejecutar cálculo de memoria.
Este proceso calcula la memoria utilizada en cada celda.
Un cuadro de diálogo te pedirá que cargues la versión privada. Presiona el botón y observa la barra de progreso.
Si quieres, puedes añadir una descripción de la versión de tu proyecto.
Una ventana emergente en la parte inferior de la pantalla te indicará que el cálculo de la memoria está en curso.
Una vez finalizada la carga, la ventana emergente cambia para indicar que el cálculo comenzó.
En el cliente, aparece el resultado del cálculo de la memoria. Si presionas Continuar, recuperarás el control de tu personaje.
Una vez terminado el proceso, el personaje del jugador se teletransportará de nuevo a la ubicación original anterior al inicio del cálculo, y verás uno de los dos estados:
Si tienes el streaming en vivo habilitada en tu proyecto, puedes volar alrededor y ver la cantidad de espacio que ocupan las diferentes áreas.
Si la transmisión está habilitada, la barra de memoria utilizada cambia durante el vuelo. Puedes utilizarla para identificar las áreas del nivel que podrían estar por encima del presupuesto.
Si tu isla está por encima del presupuesto, tendrás que solucionar los problemas de la memoria local antes de publicarla.
Mi isla supera el presupuesto. ¿Qué puedo hacer?
Existen muchas estrategias para ahorrar memoria una vez que se alcanza el límite. Prueba cualquiera de las siguientes combinaciones:
Tras el cálculo de la memoria, puedes abrir una hoja con los 100 recursos que más memoria consumen en tu isla. Ve a Ventana > Registro de mensajes > Resultados de la prueba de memoria.
La siguiente tabla define cada término:
Término Explicación Recurso de construcción
Suele ser el nombre de un recurso en el explorador de contenido. Algunos recursos de construcción podrán figurar como “Recurso de Fortnite”; este es el nombre que asignamos a los recursos de construcción que no se crearon en tu proyecto, pero que aun así contribuyen al uso de memoria de tu isla.
Tipo
Este es el tipo de recurso de construcción o recurso. Algunos ejemplos incluyen la textura, el material, el nivel, etc.
# Referencias de actores
La cantidad de actores que hacen referencia al recurso de construcción, directa o indirectamente.
# Referencias de paquetes
La cantidad de paquetes cooked que hacen referencia al recurso de construcción. Por lo general, este número aumentará si varias celdas de World Partition hacen referencia a un recurso de construcción.
Tamaño
El tamaño del recurso de construcción. Esta es la cantidad con la que un recurso de construcción en particular contribuye a la barra de uso actual de memoria en la ubicación de muestra.
Haz streaming de texturas siempre que sea posible. Esto significa crear texturas a fin de que sean aptas para el streaming (potencia de dos dimensiones) y configurar las texturas para que se generen mapas de mip. Si no se puede hacer streaming de las texturas, siempre utilizarán la cantidad máxima de memoria, independientemente de la distancia a la que se utilice. Puedes encontrar más información en Cómo cambiar el tamaño de las texturas.
Activa el streaming en el panel de World Partition. Aunque esto es necesario para las islas grandes, las pequeñas también pueden beneficiarse de la transmisión en vivo, en especial si el contenido se vuelve demasiado denso.
Cuando el streaming esté activado, asegúrate de que los actores tengan habilitada la opción Cargado espacialmente siempre que sea posible. De lo contrario, se hará cooking en el paquete del nivel principal y siempre se cargarán. Esto es especialmente relevante para los actores proxy de streaming de terreno, ya que pueden contener una gran cantidad de datos de colisión de los que, por lo general, conviene hacer streaming bajo demanda.
Distribuye uniformemente el contenido de tu isla. Si se concentran demasiados actores en un área pequeña, no se podrá transmitir el contenido, y se contribuirá a superar el presupuesto de memoria.
Reduce la cantidad de dispositivos que utiliza tu isla. Los dispositivos son de los actores más costosos que se pueden colocar. Sin embargo, colocar instancias del mismo dispositivo supone un consumo de memoria mucho menor.
Echa un vistazo a la ventana de Tamaño del proyecto. Si ves algunos objetos que consumen mucha memoria en el disco, lo más probable es que también consuman mucha memoria durante el tiempo de ejecución. Para verificar el tamaño de tu proyecto, haz clic en el menú desplegable Proyecto y selecciona Tamaño del proyecto.
Reduce el nivel de calidad en los LOD de los recursos personalizados, especialmente en aquellos recursos que solo son visibles desde la distancia.
Reutiliza los recursos varias veces. En un bosque compuesto por 100 árboles, utiliza 5 variaciones y duplícalas alrededor en vez de utilizar 100 árboles únicos. Esto supondrá una gran diferencia en la huella de memoria.
Si usas HLOD, generalos a lo largo del proceso del proyecto y asegúrate de generarlos solo para objetos que puedas ver desde lejos.
Utiliza capas de datos si las islas pueden subdividirse en configuraciones que no están destinadas a mostrarse todas al mismo tiempo. Por ejemplo, un calabozo subterráneo al que no se puede acceder a menos que el jugador entre en un santuario.
Reduce la complejidad de malla de tu contenido personalizado. Las mallas compuestas por muchos polígonos tienen un consumo de memoria más elevado. Edita la malla haciendo doble clic sobre ella en el Explorador de contenido, y ajusta el valor de Mantener porcentaje de triángulo en Configuración de Nanite. Si se utiliza un valor más bajo, se reducirá la complejidad de la malla y el consumo de memoria del actor.
Resolución de otros problemas
Para una validación adecuada, se espera que los creadores tengan habilitada la transmisión en vivo, así como que generen mapas de mip para las texturas. Si alguna de tus texturas tenía la opción MipGenSettings definida en Sin mapas de mip, anteriormente no se marcaba cuando se enviaba tu isla para publicación. Sin embargo, si una textura en tu proyecto tiene MipGenSettings definido en Sin mapas de mip, fallará la validación.
Ten en cuenta las siguientes excepciones a este requisito para la transmisión y los mapas de mip:
Esta regla solo se aplica a las texturas con más de 1 millón de téxeles. Entonces, por ejemplo, si las dimensiones de una textura, cuando se multiplican, son inferiores a 1 048 576, pasará la validación incluso con MipGenSettings definido en Sin mapas de mip.
No es necesario que las texturas del grupo de IU tengan habilitada la transmisión en vivo.