Esta función se encuentra en estado experimental para que puedas probarla, hacernos llegar tus comentarios y ver lo que estamos planeando. Actualmente no puedes publicar un proyecto que utilice el sistema de inventarios y objetos personalizados.
Ten en cuenta que no garantizamos la compatibilidad con versiones anteriores de los recursos creados en la fase experimental, dado que es posible que realicemos cambios en las API de estas funciones y eliminemos funciones experimentales completas o funcionalidades específicas según consideremos. Consulta la lista de problemas conocidos antes de empezar a trabajar con la función.
Los objetos y los sistemas de inventario son una parte fundamental de muchos tipos de juegos. Utiliza las entidades y los componentes de Scene Graph para personalizar el inventario de jugador de Fortnite y crear objetos personalizados únicos en tu isla.
Los objetos son objetos de una isla que los jugadores y agentes pueden utilizar y poseer. Los inventarios incluyen el inventario de jugadores de Fortnite existente, así como cualquier inventario personalizado que crees con el inventory_component. El sistema de inventarios y objetos personalizados es un sistema para crear, controlar y almacenar objetos. Este sistema es una función experimental que debes habilitar en la configuración del proyecto y se utiliza con Scene Graph en UEFN y Verse.
Conceptos básicos de Scene Graph
Scene Graph es un sistema de entidades y componentes que se compila sobre Verse. Las entidades son contenedores de componentes, que aportan funcionalidad a una entidad. Puedes unir entidades con una relación padre-hijo, lo cual crea jerarquías. Las disposiciones reutilizables de entidades y componentes se denominan prefabricados. Para obtener más información sobre las entidades y los componentes, consulta Working with Entities and Components. Para obtener más información sobre los prefabricados en Scene Graph, consulta Prefabs and Prefab Instances.
Problemas conocidos
El sistema de inventarios y objetos personalizados es el primer sistema que aprovecha Scene Graph en UEFN. Por eso, hay una serie de errores en la versión experimental con los que te puedes encontrar al utilizarlo. Puedes consultar la lista de problemas conocidos aquí. Estamos trabajando en muchas correcciones y mejoras que se incluirán en una próxima versión.
Objetos
Un objeto es una entidad de Scene Graph que tiene un item_component. Por defecto, los objetos pueden fusionarse y apilarse, pueden tener categorías para compararse y ordenarse, y pueden equiparse y desequiparse.
Como el sistema de inventarios y objetos personalizados utiliza Scene Graph, puedes añadir componentes a los objetos para aumentar su función. El sistema viene con varios componentes básicos para empezar que se enumeran en la siguiente tabla.
| Componente | Descripción |
|---|---|
| Este componente convierte una entidad en un objeto. También da a la entidad la capacidad de apilarse, de ser propiedad de un inventario y de estar controlada por él. |
| Almacena un icono para el objeto que se muestra en la IU de Fortnite. |
| Contiene datos de texto, como el nombre y la descripción del objeto. |
| Almacena un recurso de malla que representa el objeto en el juego. |
| Este componente permite que el objeto se trate igual que un objeto recogido de Fortnite. Esto incluye un mensaje de interacción para recogerlo, IU y animaciones de recoger/soltar. |
Un objeto solo puede tener un componente de cada tipo. Esto incluye los componentes que heredan de otros componentes que ya están unidos al elemento.
Así, por ejemplo, si creas un componente personalizado para un objeto específico que sea hijo de item_component, se mostrará tu componente de objeto personalizado en lugar del componente de objeto genérico.
Modularidad de los objetos
Con los inventarios y objetos personalizados podemos introducir una modularidad adecuada. Esto significa que puedes utilizar componentes para compilar la función de los objetos de forma aditiva. A continuación se muestran ejemplos de componentes adjuntos a una entidad de objeto que aportan funcionalidad.
Entidad
item_component: convierte una entidad en un objeto.item_details_component: almacena datos de texto, como el nombre y la descripción del objeto.item_icon_component: almacena un icono para el objeto que se muestra en la IU de Fortnite.mesh_component: almacena un recurso de malla que representa el objeto en el juego.
Inventarios
Un inventario es una entidad que tiene un inventory_component.
Los inventarios son contenedores de entidades de objetos y el inventario controla lo que ocurre con esos objetos.
El sistema de inventarios y objetos personalizados utiliza inventarios y subinventarios para compartimentar los objetos. Esto facilita ordenar, añadir y recuperar objetos dentro de un inventario. Como un objeto solo puede existir dentro de un inventario a la vez, los inventarios también determinan la propiedad de las entidades de objetos.
Por defecto, los inventarios pueden contener un número infinito de cualquier tipo de objeto. Sin embargo, puedes crear restricciones y reglas que determinen qué objetos se pueden añadir. Estos son algunos ejemplos de estas restricciones y reglas:
Añade objetos a un inventario solo si cumplen la consulta de tipo requerida.
Limita el número de objetos de un inventario.
Permitir que los objetos de mayor prioridad expulsen los objetos de menor prioridad cuando el inventario esté lleno.
Restringe un inventario a un único objeto.
Cuando una función AddItem() no puede resolverse en el inventario de festino, busca otros inventarios que puedan contener el objeto. La función utiliza jerarquías de Scene Graph
(primero intentará añadir el objeto a los inventarios del mismo nivel (inventarios que comparten un elemento principal con el inventario de destino inicial) y, a continuación, buscará en los inventarios hijo (inventarios que están relacionados con el inventario de destino inicial)). La función comprobará todos los inventarios de la jerarquía antes de devolver un error.
Filtrado de inventarios con eventos de escena
Cuando un inventario es el objetivo de una llamada a función AddItem(), recibe un evento de escena add_item_event). Al anular la función OnReceive() de un componente, se puede activar una lógica personalizada para que afecte a la entrada del objeto. Esto permite aplicar reglas de inventario, como comprobar el tipo de objeto antes de permitirlo, permitir solo un determinado número de objetos en el inventario, etc. El evento OnReceive() se implementa en la clase del componente base y está disponible para todos los componentes de Scene Graph.
add_item_event recopila respuestas de todos los inventarios a los que llega. Puedes hacer que los componentes del inventario modifiquen el evento y que esos componentes del inventario se ofrezcan a sí mismos para recibir el objeto que se añade. El evento contiene una matriz denominada inventory_with_priority que puedes establecer y actualizar con tu inventario de destino. Esto te permite nombrar al inventario de destino con prioridad para recibir el objeto. Cuando se ha difundido el evento de escena, se considera que todos los inventarios con una prioridad establecida reciben el objeto, y el inventario con la prioridad más alta recibe el objeto.
En la versión experimental del sistema de inventarios y los objetos personalizados, solo está disponible add_item_event. Sin embargo, se añadirán otros eventos en futuras actualizaciones.
Inventarios de Fortnite
El sistema de inventarios y objetos personalizados viene con una serie de subclases de inventory_component, denominadas fort_inventory_components. Tienen filtrado de objetos y elementos de IU que imitan el inventario de jugador de Fortnite Battle Royale.
| Componente | Descripción |
|---|---|
| Se corresponde con el espacio de la herramienta de recolección del inventario por defecto del jugador de Fortnite. |
| Se corresponde con la barra de acceso rápido del inventario por defecto del jugador de Fortnite. |
| Se corresponde con la barra de acceso rápido de herramientas de construcción del inventario por defecto del jugador de Fortnite. |
| Se corresponde con el espacio de trampa del inventario por defecto del jugador de Fortnite. |
| Se corresponde con la sección de monedas del inventario por defecto del jugador de Fortnite. |
| Se corresponde con la sección de coleccionables del inventario por defecto del jugador de Fortnite. |
| Se corresponde con la sección de munición del inventario por defecto del jugador de Fortnite. |
También puedes crear tu propia configuración de subinventarios para añadir, eliminar o sustituir el inventario predeterminado del jugador.
Los objetos y los inventarios son tan simples o complejos como el número de componentes que se añaden al objeto o la entidad del inventario. A medida que el sistema de inventarios y objetos personalizados siga desarrollándose, se añadirán más componentes que proporcionen aún más funciones.