Las texturas del juego tienen requisitos específicos para renderizarse correctamente en el juego. Al crear texturas en Unreal Editor para Fortnite (UEFN) con imágenes importadas, asegúrate de que el archivo de imagen de origen utilice la potencia de dos para la altura y el ancho. Esto aumenta la compatibilidad y la estabilidad de tu isla en todos los plataformas.
Los formatos de archivo comprimidos para unidades de procesamiento gráfico (GPU) deben utilizar texturas con potencia de dos en todas las consolas, PC y móviles. Las texturas que no cumplan la regla de la potencia de dos se volverán inestables en las plataformas de gama baja, y es posible que provoquen fallos en el juego. La potencia de dos también se utiliza en la streaming de texturas para reducir su resolución en plataformas con menos memoria.
La streaming de texturas ayuda a realizar lo siguiente:
Cambiar la resolución de una textura.
Determinar la velocidad de carga de un juego.
Aumentar la calidad visual del juego.
Ahorro de memoria de la GPU.
¿Qué es la potencia de dos?
Las computadoras y las consolas administran y procesan los datos en fragmentos limitados y no todos a la vez. Este es un principio similar a la forma en que se renderizan los fondos mediante World Partition.
Cuando los fragmentos de datos del juego se ajustan a la regla de la potencia de dos, establecen una serie de restricciones físicas codificadas en medios. A menos que se cumplan estas restricciones, el motor de juego malgastará recursos al intentar renderizar recursos correctamente.
La potencia de dos es una forma de optimizar los datos del juego y renderizar imágenes para mostrar de forma eficaz las experiencias visuales.
Ejemplos de tamaños de imagen aceptables son los siguientes: 256x256, 512x512 o 1024x2048. Las texturas que no usen la potencia de dos no se optimizarán, y provocarán inestabilidad y un rendimiento deficiente de la isla.
Las texturas con potencia de dos permiten a UEFN usar tres características clave:
Compresión de texturas: reduce el tamaño de la memoria unas ocho veces con un costo visual mínimo.
Mipmapping: Generación automática de variantes de menor resolución
Streaming de texturas: muestra una variante de menor resolución antes de que los datos de mayor resolución puedan transmitirse en la memoria.
La combinación de estas características permite que un recurso de gama alta con texturas de 4K se renderice en cualquier plataforma. Esto se debe a que las texturas tendrán variantes de alta calidad a una resolución reducida.
Por ejemplo, una textura de 4000x4000 sin capa alfa requeriría 64 megabytes de memoria. Esto tendría que cargarse de una vez y seguiría mostrándose a 4000x4000, aunque estuviera causando solapamiento en una cartelera pequeña, lejos del jugador. Las texturas demasiado grandes pueden bloquear los dispositivos que no tengan suficiente memoria.
En cambio, una versión de 4096x4096 de una textura que use compresión por defecto consumirá solo 8 megabytes, se transmitirá en vivo progresivamente y producirá menos solapamiento a distancia. Las texturas demasiado grandes también aumentarán el tamaño del paquete, pero no harán que el juego se cierre abruptamente.
Validación de texturas
Las texturas deben validarse por motivos de rendimiento antes de utilizarse en un proyecto. Si una textura no se valida, provocará los siguientes problemas:
Fallo por falta de memoria (OOM) debido a que las texturas de origen son demasiado grandes.
Las plataformas colapsan debido a que las texturas cocinadas son demasiado grandes.
Problemas de rendimiento de la plataforma debido a texturas subóptimas.
Las texturas que no superen la validación impedirán que el proyecto se publique.
Reglas de validación
Las reglas de validación incluyen una regla universal que se aplica a todos los recursos y tres reglas principales que se aplican solo a las texturas.
Regla universal
Ninguna dimensión de origen puede tener más de 4096 texeles.
Texturas 2D en la IU
Cualquier textura cooked con menos de 1 048 576 texeles (1024 X 1024) pasa automáticamente la validación.
Texturas 2D
Las texturas cooked con menos de 1 048 576 texeles (1024 X 1024) pasan automáticamente la validación.
Las dimensiones combinadas no pueden ser superiores a 2048 texeles.
Las dimensiones cocinadas deben ser potencia de dos.
Debe estar disponible en streaming y permitir la creación de mips.
Texturas de mapa de cubo
Cualquier textura cooked (por cara) con menos de 1 048 576 texeles pasa automáticamente la validación.
Las dimensiones combinadas no pueden ser superiores a 1024 texeles. Esto es por cara, no por recurso.
Las dimensiones cocinadas deben ser potencia de dos.
Debe estar disponible en streaming y permitir la creación de mips.
Buscar texturas no válidas
UEFN tiene requisitos estrictos de tamaño para las texturas, así que para garantizar que todas las texturas importadas utilicen las restricciones de tamaño adecuadas, UEFN contiene validadores adicionales además de los que ofrece Fortnite. Estos validadores utilizan reglas para detectar y sacar a la luz problemas en una etapa temprana del proceso de construcción a fin de evitar subir proyectos que inevitablemente fallan al cook (cocinado o consolidado).
Hay dos áreas donde se valida una textura; durante el proceso de validación del proyecto y también cuando se añade al explorador de contenido.
Validación de proyecto
Los errores de validación de la textura se muestran después de que un proyecto pasa por el proceso de validación. El proceso siempre utiliza los datos de textura reales (a diferencia de las etiquetas de recursos). Todos los resultados se imprimen en el registro de mensajes con una ficha de "Corrección automática".
Validación del explorador de contenido
La miniatura y el texto emergente de la textura muestran un ícono y un resumen, respectivamente. El menú de contexto ofrece la opción "Ajustar textura". Adaptar textura intenta utilizar datos de texturas reales y, por motivos de rendimiento, recurre a las etiquetas de recursos si la textura no está cargada. Si lee etiquetas de recursos, podría ser un poco menos preciso si faltan ciertas etiquetas. Sin embargo, la próxima vez que se validen los datos reales de la textura (Validación del proyecto, OnObjectTransacted), la información sobre herramientas y la miniatura se actualizarán con precisión.
Las texturas que no cumplen con los requisitos establecidos se marcan en el explorador de contenido con un ícono de error. Al pasar el mouse por encima del recurso, aparecen más detalles sobre el problema específico en la parte superior del texto emergente:
Para obtener información sobre el uso de textura de conformidad, consulta la sección Texturas de conformidad no válidas a continuación.
Requisitos de tamaño de texturas en UEFN
Para asegurarse de que todas las islas funcionen en todas las plataformas posibles, UEFN tiene ciertos requisitos en los recursos de textura.
Si tu proyecto contiene recursos de textura que no cumplen con dichos requisitos, las texturas no pasarán la validación y no podrás subir tu proyecto.
Si tu textura está asignada al grupo de texturas de IU, sus dimensiones deben ser menores al tamaño máximo de 2048x2048. Sin embargo, no es necesario que las dimensiones de la textura sean potencias de 2. (Las texturas de la IU no suelen transmitirse, por lo que siempre se verán lo más nítidas posible).
Si tu textura _no _está asignada al grupo de texturas de IU, sus dimensiones deben ser menores al tamaño máximo de 4096x4096. Además, si contiene más pixeles que el umbral mínimo (1024x1024 o 1 048 576), debe poder hacer streaming Esto significa que;
Cada una de sus dimensiones debe ser una potencia de dos (por ejemplo, 256x256, 512x512, 1024x1024, etc.).
La imagen no necesita ser un cuadro, siempre y cuando cada dimensión sea una potencia de dos. Por ejemplo, 256x512, 512x1024, 256x1024.
La propiedad Nunca hacer streaming de la textura debe estar desactivada.
La textura debe configurarse para generar mapas de mip.
El costo de memoria total para todas las texturas que no hagan streaming en tu proyecto debe ser menor que un presupuesto máximo prestablecido. El costo de memoria de tu proyecto se determina al añadir el costo de memoria de todas las texturas que tengan habilitada su propiedad Nunca hacer streaming. Esto incluye:
Todas las texturas cuyas dimensiones no son potencias de dos (y que no han sido ajustadas para ser potencias de dos con las propiedades Relleno o Cambio de tamaño). La propiedad Nunca hacer streaming siempre está habilitada por defecto para estas texturas.
Todas las demás texturas cuya propiedad No transmitir nunca haya sido habilitada manualmente.
Cada textura tiene un ajuste de grupo de texturas que indica su uso esperado. Puedes establecer este grupo y las demás propiedades de textura referidas antes al hacer doble clic en el recurso de textura en el explorador de contenido para abrir el editor de texturas.
Cómo cambiar el tamaño de las texturas
En UEFN, las texturas antiguas importadas que usan dimensiones desiguales o tamaños exagerados pueden escalarse según la potencia de dos. Encuentra y repara las texturas defectuosas al seguir los pasos que se indican a continuación:
Abre el cajón de contenido o el explorador de contenido, y asegúrate de seleccionar la carpeta de contenido raíz de tu proyecto, situada en FortniteGame en el panel del árbol de archivos de la izquierda.
En Todos, busca la carpeta denominada Contenido de NombreDeTuProyecto.
Escribe
NeverStream==true&&TextureGroup!=UIen la barra de búsqueda de la parte superior del cajón de contenido. Se realiza una consulta para identificar los recursos afectados.
Todos los recursos que aparezcan en esta vista filtrada se verán afectados. Aunque esto tarde un poco en solucionarse, mejorará el rendimiento de tu nivel.
Existen dos formas de actualizar las texturas afectadas que no están en el grupo de la IU.
La opción A usa las capacidades de edición masiva de UEFN para agrupar texturas y editarlas en un solo paso. Esta es la forma más rápida de corregir las texturas de forma automática, es decir, ajustar la relación de aspecto; sin embargo, este ajuste puede generar un uso innecesario de memoria.
La opción B tarda un poco más, pero aprovechará mejor tu presupuesto de memoria si necesitas resolver múltiples texturas afectadas. Esta opción te permitirá editar y volver a cargar texturas para evitar el ajuste innecesario.
Opción A
Haz clic en el menú de hamburguesas del explorador de contenido situado junto a la barra de búsqueda y selecciona Texturas. Todas las texturas están aisladas en el explorador de contenido.
Haz clic en el ícono de Ajustes y activa las columnas. Todas las texturas aparecen ahora en las columnas del explorador de contenido.
Busca en la columna Dimensiones cualquier recurso que no utilice la potencia de dos.
Selecciona todas las texturas que no se ajusten a la regla de la potencia de dos.
Haz clic derecho en el explorador de contenido y selecciona la opción Acciones de recursos > Editar selección en el molde de propiedades. Se abrirá la herramienta de edición masiva, en la que todas las texturas seleccionadas aparecerán desglosadas en la pestaña del editor de componentes.
Selecciona todos los nombres de archivos de texturas en la sección Raíz.
Haz clic en la imagen para ampliarla.
Abre la opción Textura en la pestaña Columnas ancladas.
Selecciona Ajustar a la potencia de dos en el menú desplegable Relleno y cambio de tamaño. Aparecerá una barra de progreso en la parte inferior de la ventana del editor.
Todas las texturas se convirtieron en potencia de dos y ahora funcionarán en todas las plataformas.
Opción B
Haz doble clic en la textura para abrir el editor de texturas.
En la barra de búsqueda situada en la parte superior del panel de detalles, introduce el nombre de tu archivo de origen. El resultado mostrará la ruta del archivo en tu PC que se utilizará como archivo de origen de la textura.
Haz clic en la imagen para ampliarla.
Cambia el tamaño de la textura a la potencia de dos más cercana mediante un editor de imágenes, como GIMP o Paint.NET 5. Incluso puedes usar Paint si la textura no tiene capa alfa.
Un tamaño con potencia de dos incluye 256, 512, 1024, etc.
Por ejemplo, una textura de 500x500 debería ser de 512x512, y una de 600x256 podría ser de 512x256.
Los cambios en la relación de aspecto no deberían tener efectos adversos en tu isla.
Haz clic derecho en la textura del explorador de contenido y selecciona Reimportar.
Si no tienes la imagen de la textura original en tus archivos:
Haz clic derecho en la textura del explorador de contenido y, luego, selecciona Acciones de recursos > Exportar para obtener una copia nueva.
Cambia el tamaño de la textura a la potencia de dos más cercana. Luego, en el Explorador de contenido, haz clic con el botón derecho en la textura y selecciona Reimportar con nuevo archivo. Cuando el archivo se importe, haz doble clic en la textura para abrir el editor de texturas.
En la barra de búsqueda de Detalles, escribe Nunca transmitir y establece la opción Falso. Si no se puede establecer como Falso, asegúrate de que la especificación Importado en la parte superior muestre que tu imagen tiene un tamaño de potencia de dos.
En el panel de detalles, busca la opción Ajustes de generación de mipmaps. Luego, en el menú desplegable, selecciona Desde grupo de texturas.
En el panel de Detalles, busca la opción Ajustes de compresión y, a continuación, selecciona Predeterminado (DXT1/5) en el menú desplegable.
Una vez que hayas completado estos pasos, comprueba si se eliminó con éxito la textura restringida al buscar NeverStream==true&&TextureGroup!=UI en la barra de búsqueda del explorador de contenido nuevamente. Los recursos que hayas actualizado ya no deberían aparecer aquí.
Cambiar una textura individual
Sigue estas instrucciones si solo tienes una textura que no se ajusta a la regla de la potencia de dos.
Haz doble clic en la textura para abrir el editor de texturas.
Haz clic en la imagen para ampliarla.
En la barra de búsqueda de Detalles, escribe Modo de potencia de dos. Luego, en el menú desplegable Relleno y cambio de tamaño, selecciona Relleno cuadrado.
Busca la opción Nunca hacer streaming y establécela en Falso.
Busca la opción Ajustes de generación de mips. Luego, en el menú desplegable, selecciona Desde grupo de texturas.
Busca la opción Ajustes de compresión y, en el menú desplegable, selecciona Por defecto (DXT1/5).
Una vez que hayas completado estos pasos, comprueba si se eliminó con éxito la textura restringida al buscar NeverStream==true&&TextureGroup!=UI en la barra de búsqueda del explorador de contenido. Los recursos que hayas actualizado ya no deberían aparecer en la lista.
Cómo ajustar las texturas no válidas
La mejor forma de corregir texturas no válidas que importaste desde archivos externos es editarlas en la aplicación original que utilizaste para crearlas y luego volver a importar el recurso. También puedes utilizar otra aplicación dedicada a edición de imágenes para editar las texturas antes de reimportarlas a UEFN.
Asegúrate de que las dimensiones de cada imagen sean inferiores a las dimensiones máximas detalladas anteriormente. Si no usas la imagen para IU, haz que la altura y el ancho de la imagen sean potencias de dos. La imagen no necesita ser un cuadro, siempre y cuando cada dimensión sea una potencia de dos.
Como otra opción, UEFN ofrece una forma integrada de hacer que los tamaños de las texturas se ajusten automáticamente a sus requisitos. Para hacer esto:
En el explorador de contenido, selecciona una o más texturas no válidas.
Haz clic derecho en una miniatura de textura y elige Ajustar textura en el menú contextual.
El editor intentará ajustar las propiedades de las texturas seleccionadas para evitar problemas de validación y escribirá sus resultados en el registro de salida.
Esta operación tiene los efectos siguientes:
Si la textura está en el grupo de texturas de IU y sus dimensiones exceden el máximo permitido, el ajuste Compresión > Avanzado > Tamaño máximo de textura de la textura se adapta para limitar la resolución máxima de la textura que se puede cargar en tiempo de ejecución.
Si la textura no se encuentra en el grupo de texturas de IU y sus dimensiones exceden el máximo permitido, el ajuste Compensación del LOD de la textura se adapta para que se descarten los mapas de mip más grandes de la textura. Esto resulta en la limitación de la resolución máxima de la textura que se puede cargar en tiempo de ejecución.
Si la textura no está en el grupo de texturas de la IU y sus dimensiones no son potencias de dos, el ajuste Relleno y cambio de tamaño de la textura se establece en Estirar a potencia de dos.
Si la textura no está en el grupo de texturas de IU, su opción Nunca hacer streaming está deshabilitada.