La Instanciación de niveles es un flujo de trabajo por niveles que facilita la portabilidad de mundos ajenos a World Partition al sistema de World Partition. Se puede utilizar para crear estrategias de flujo complejas con las siguientes características:
-
Instanciación de niveles con transformaciones utilizando un actor diseñado específicamente.
-
Transmisión de múltiples instancias del mismo nivel en tiempo de ejecución. Esta opción no estaba disponible en versiones anteriores de Unreal Engine.
-
Anidamiento jerárquico de subniveles adicionales dentro de un subnivel.
Por ejemplo, puedes utilizar World Partition para rellenar un mapa con un gran número de actores. Cuando es necesario organizar y reutilizar específicamente los actores, las instancias de nivel proporcionan un flujo de trabajo de edición en contexto que sustituye a la antigua vista de nivel.
Aunque es posible utilizar la transmisión de nivel sin World Partition, las instancias de nivel no tienen automáticamente gestión de transmisión ni estrategias de transmisión fuera de un mundo principal de World Partition.
Crear instancias de nivel
Las nuevas instancias de nivel se generan a partir de los actores seleccionados y pueden crearse en el Visor o en World Outliner.
Tras seleccionar los actores, haz clic con el botón derecho del ratón en uno de ellos para abrir el menú contextual y selecciona Crear desde selección.
Se mostrará un cuadro de diálogo con los siguientes ajustes:
| Ajuste | Descripción |
|---|---|
| Tipo | El tipo de Instancia de nivel:
|
| Actores Externos | Habilita los actores externos para que utilicen el sistema Un archivo por actor. Para obtener más información, consulta la documentación One File Per Actor. |
| Tipo de referencia | Tipo de referencia que tendrá la instancia de nivel:
|
| Actor de referencia | Si se selecciona Actor como referencia, utiliza este menú desplegable para indicar qué actor será el punto de referencia para la instancia de nivel. |
Una vez seleccionada la configuración, se te solicitará que guardes la nueva instancia de nivel.
Este proceso creará un nuevo actor ALevelInstance en el nivel, que sustituirá a los actores seleccionados anteriormente. Este Actor representa el nivel que se acaba de crear. Todas las transformaciones aplicadas a este Actor se aplicarán también a la instancia de nivel.
En World Outliner, los actores de nivel aparecerán desactivados, ya que actualmente no se pueden seleccionar ni editar.
Es posible arrastrar un actor ALevelInstance hasta tu nivel y asignarle un archivo .umap en el panel Detalles.
Es posible proporcionar plantillas de instancias de nivel a través de los archivos .ini de Unreal Engine con entradas similares a las plantillas de creación de niveles estándar. Para ello, añade lo siguiente al archivo DefaultEditor.ini de tu proyecto:
[/Script/LevelInstanceEditor.LevelInstanceEditorSettings]
+TemplateMapInfos=(ThumbnailTexture=Null,Map="/Game/Maps/Tools/TM-Template")
Instancias de nivel empaquetadas
Una instancia de nivel empaquetada es un tipo de instancia que pretende agrupar las mallas estáticas de un nivel en el menor número posible de instancias de malla estática.
Existen dos tipos de instancias de nivel empaquetadas:
-
Instancias de nivel empaquetadas: El proceso de empaquetado crea una instancia de nivel empaquetada centrada en la ubicación del actor ALevelInstance.
-
Blueprint de instancia de nivel empaquetada: El proceso de empaquetado crea una instancia de nivel que puede referenciarse desde un Blueprint.
Los actores y componentes que no son mallas estáticas no se incluyen en el proceso de empaquetado, sino que se mantendrán separados en el nivel de origen.
Empaquetar una instancia de nivel no cambia el flujo de trabajo de edición cuando se trabaja con el nivel.
Las instancias de nivel empaquetadas son actualmente una función experimental y pueden cambiar o eliminarse en versiones posteriores de Unreal Engine.
Editar instancias de nivel
Las instancias de nivel pueden editarse en contexto desde el Visor o el panel Detalles.
Como se muestra arriba, para abrir el modo de edición:
-
Selecciona la instancia de nivel en el Visor.
-
Haz clic con el botón derecho del ratón para abrir el menú contextual.
-
En la sección Instancia de nivel del menú, pasa el ratón sobre la opción Editar y selecciona el nivel que quieras editar.
El modo Edición también puede abrirse desde el panel Detalles:
Selecciona la instancia de nivel que quieras editar y haz clic en el botón Editar del panel Detalles.
Transmisión de nivel en tiempo de ejecución
Modo incrustado
Cuando se utiliza el Modo incrustado, las instancias de nivel que usen el sistema Un archivo por actor (OFPA) se descartan y sus actores se añaden a la cuadrícula de World Partition en tiempo de ejecución. Ese es el modo de tiempo de ejecución por defecto y el método sugerido para transmitir contenido de nivel. De este modo, las instancias de nivel existen solo dentro del editor.
Algunos Actores que no utilizan OFPA se pierden en tiempo de ejecución cuando se utiliza el Modo incrustado. Por ejemplo, el objeto AWorldSettings de una instancia de nivel incrustada no existe en tiempo de ejecución, ya que se trata de un actor que no utiliza OFPA.
Es tu responsabilidad ser consciente de ello o utilizar el modo Transmisión de nivel cuando sea necesario.
Modo de transmisión de nivel
Las instancias de nivel que no utilizan OFPA no pueden incrustarse en la cuadrícula de World Partition y, en su lugar, utilizarán la transmisión de nivel estándar en tiempo de ejecución. Eso significa que, cuando el actor ALevelInstance se carga a través de su propia célula de tiempo de ejecución en World Partition, se cargará el nivel asociado.
Este método de transmisión de nivel conlleva un coste de tiempo de ejecución añadido, ya que suma más niveles a la transmisión. No se recomienda utilizar una alta densidad de niveles que usen este modo de transmisión debido a la repercusión sobre el rendimiento.
El Modo incrustado con World Partition: Capas de datos es idóneo para aproximarse a lo que antes podía hacerse con niveles cargados dinámicamente.
Capas de datos
Las instancias de nivel admiten Partición del mundo: Capas de datos cuando se utiliza el Modo incrustado o el Modo de transmisión de nivel. Los actores contenidos en la instancia de nivel heredarán las capas de datos del actor ALevelInstance.