Los sistemas de objetos e inventario son una parte fundamental de muchos tipos de juegos. Puedes personalizar el inventario de jugadores de Fortnite con las entidades y componentes de Scene Graph para crear objetos únicos para tu isla.
Los objetos son elementos que los jugadores y agentes pueden usar y poseer. Los inventarios incluyen el inventario de jugadores de Fortnite existente, así como cualquier inventario personalizado que crees con el inventory_component. Objetos e inventario personalizado 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 utilizar con Scene Graph y Verse en Unreal Editor para Fortnite (UEFN).
Conceptos básicos de Scene Graph
Scene Graph es un sistema de entidad y componente creado 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. Una disposición reutilizable de entidades y componentes se denomina prefabricado.
Consulta Cómo trabajar con entidades y componentes para obtener más información sobre las entidades y los componentes. Consulta Prefabricados e instancias de prefabricados para obtener más información sobre los prefabricados.
Objetos
Los objetos se crean en Scene Graph colocando un item_component en una entidad. Los inventarios tratan el componente como un objeto. item_component ofrece funciones como:
Equipar y desequipar.
Categorías con nombre para comparación y ordenación.
Por sí solo, item_component proporciona opciones limitadas a un objeto. Los componentes adicionales crean algo más interesante con mayor funcionalidad.
Para obtener más información, consulta Componente de objeto.
Inventarios
Los inventarios son contenedores de objetos y controlan lo que ocurre con esos objetos. Un inventario es una entidad que tiene un inventory_component y funciona de las siguientes maneras:
Conociendo todos los objetos que existen en su interior.
Controlando qué objetos pueden entrar o salir del inventario.
Determinando qué ocurre cuando un objeto entrante quiere fusionarse con un objeto que ya está en el 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. Las subentidades de un inventario solo se consideran objetos dentro del inventario si también tienen un item_component; de lo contrario, son subentidades hijas.
De forma predeterminada, los inventarios pueden contener un número y variedad infinitos de objetos. Con Verse puedes crear restricciones y reglas que afectan a la adición y eliminación de objetos. Por ejemplo:
Añade objetos a un inventario solo si tienen la categoría correcta.
Limita el número de objetos de un inventario.
Impide que el último objeto se elimine 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.
Árboles de inventarios
Los inventarios saben qué inventarios están por debajo de ellos en la jerarquía de Scene Graph. Estos inventarios hijo se conocen como subinventarios. Puedes aprovechar el árbol de inventarios de muchas maneras.
Por ejemplo, puedes añadir un objeto a un inventario principal donde puede llegar a un inventario hijo más especializado. Sería como darle una moneda al jugador y hacer que viaje a través del sistema de inventario hasta una cartera (Inventario del jugador > Inventario de la mochila > Inventario del monedero).
Para crear un comportamiento de inventario más avanzado, es necesario escribir código en Verse.
Verse: Inventarios
Hay dos formas de añadir un objeto a un inventario.
Llamar a
AddItem()para añadir un objeto específicamente a un inventario.Llamar a la función
AddItemDistribute()y usar la jerarquía de inventario para encontrar el inventario o subinventario más adecuados.
Cuando se llama a la función AddItemDistribute(), el inventario objetivo y todos sus subinventarios tienen la oportunidad de evaluar y reclamar el objeto. Después de considerar cada uno, el inventario más adecuado intenta añadir el objeto.
Raíz de inventario de jugadores
Los jugadores tienen un inventario por defecto. Recibe el nombre de raíz de inventario. A diferencia de otros inventarios, la raíz de inventario del jugador no puede aceptar objetos. Lo que hace es actuar como padre para los subinventarios que se encuentran debajo. Esto permite usar AddItemDistribute() para apuntar a la raíz del inventario y para que un objeto encuentre un inventario elegible, incluso si el objetivo inicial no puede recibirlo.
Para que un jugador reciba objetos, debe tener uno o más subalmacenes por debajo de la raíz de inventario.
La explicación anterior no afecta a las entidades que tienen un inventory_component añadido a través de Verse o del editor de prefabricados.