Cette fonctionnalité est en phase expérimentale pour vous permettre de la tester, de nous faire part de vos commentaires et de prendre connaissance de ce que nous prévoyons pour l'avenir. Il n'est pas possible de publier un projet qui utilise un inventaire et des objets personnalisés pour le moment.
Nous attirons votre attention sur le fait que nous ne garantissons aucune compatibilité descendante pour les ressources créées en phase expérimentale, que les API de ces fonctionnalités sont susceptibles d'évoluer et que nous pouvons éventuellement supprimer des fonctionnalités expérimentales ou autres à notre discrétion. Consultez la [liste des problèmes connus](scene-graph-in-unreal-editor-for-fortnite#problèmesconnus) avant de commencer à utiliser cette fonctionnalité.
Les objets et les systèmes d'inventaire sont des éléments essentiels dans de nombreux jeux. Grâce aux entités et aux composants de Scene Graph, vous pouvez personnaliser l'inventaire du joueur de Fortnite et créer des objets personnalisés uniques pour votre île.
Sur une île, les joueurs et les agents peuvent utiliser et posséder des objets. Les inventaires incluent l'inventaire standard du joueur Fortnite, ainsi que les inventaires personnalisés que vous créez avec le inventory_component. Le système Objets et inventaires personnalisés permet de créer, de contrôler et de stocker des objets. Il s'agit d'une fonctionnalité expérimentale que vous devez activer dans les paramètres du projet pour l'utiliser avec Scene Graph dans l'UEFN et Verse.
Principes de base de Scene Graph
Scene Graph est un système d'entités et de composants, basé sur Verse. Les entités sont des conteneurs de composants, et les composants fournissent des fonctionnalités aux entités. Vous pouvez lier des entités les unes aux autres dans une relation parent-enfant, ce qui crée des hiérarchies. Les dispositions réutilisables d'entités et de composants sont appelées préfabriqués. Pour plus d'informations sur les entités et les composants, consultez Utiliser des entités et des composants. Pour plus d'informations sur les préfabriqués dans Scene Graph, consultez Préfabriqués et instances de préfabriqués.
Problèmes connus
Le système Inventaire et objets personnalisés est le premier à utiliser Scene Graph dans l'UEFN. C'est pourquoi vous pourriez rencontrer un certain nombre de bogues détectés dans la version expérimentale lors de l'utilisation de ce système. Vous trouverez la liste des problèmes connus ici. Nous travaillons sur de nombreux correctifs et améliorations que nous incluront dans une prochaine version.
objets
Un objet est une entité qui possède un item_component dans Scene Graph. Par défaut, les objets peuvent être fusionnés et empilés, classés par catégories à des fins de comparaison et de tri, et être équipés ou déséquipés.
Dans la mesure où le système Inventaire et objets personnalisés utilise Scene Graph, vous pouvez ajouter des composants aux objets pour optimiser leur fonctionnalité. Le système dispose de plusieurs composants de base, répertoriés dans le tableau ci-dessous.
| Composant | Description |
|---|---|
| Ce composant convertit une entité en objet. L'entité pourra également être empilée, être possédée et contrôlée par un inventaire. |
| Permet de stocker une icône pour l'objet affiché dans l'IU de Fortnite. |
| Contient des données texte, telles que le nom et la description de l'objet. |
| Permet de stocker une ressource de maillage qui représente l'objet dans le jeu. |
| Ce composant permet de traiter l'objet comme un objet ramassé dans Fortnite. Il inclut une invite d'interaction pour le ramasser, une IU et des animations de ramassage/dépose. |
Un objet ne peut avoir qu'un seul composant de chaque type. Cela inclut les composants qui héritent d'autres composants déjà fixés à l'objet.
Par exemple, si vous créez un composant personnalisé pour un élément spécifique qui est un enfant de item_component, votre composant d'objet personnalisé s'affiche à la place du composant d'objet générique.
Modularité des objets
Le système Objets et inventaires personnalisés permet d'introduire une modularité appropriée. Vous pouvez ainsi utiliser des composants pour créer des fonctionnalités d'objets de manière additive. Vous trouverez ci-dessous des exemples de composants attachés à une entité d'objets qui accordent des fonctionnalités.
Entité
item_component: convertit une entité en objet.item_details_component: contient des données texte, telles que le nom et la description de l'objet.item_icon_component: contient une icône pour l'objet affiché dans l'IU de Fortnite.mesh_component: contient une ressource de maillage qui représente l'objet dans le jeu.
Inventaires
Un inventaire est une entité qui possède un inventory_component.
Les inventaires sont des conteneurs pour les entités d'objets qui contrôlent ce qu'il leur advient.
Le système Objets et inventaires personnalisés utilise des inventaires et des sous-inventaires pour compartimenter les objets. Cela facilite le tri, l'ajout et la récupération d'objets dans un inventaire. Dans la mesure où un objet ne peut exister que dans un inventaire à la fois, les inventaires déterminent également la propriété des entités d'objets.
Par défaut, les inventaires peuvent contenir un nombre infini d'objets de tout type. Cependant, vous pouvez créer des restrictions et des règles qui déterminent quels objets peuvent être ajoutés. En voici quelques exemples :
Ajouter des objets à un inventaire uniquement s'ils correspondent à la requête de type requise.
Limiter le nombre d'objets dans un inventaire.
Permettre aux objets à priorité élevée d'éjecter des objets à priorité plus faible lorsque l'inventaire est plein.
Restreindre un inventaire à un seul objet.
Lorsqu'une fonction AddItem() ne peut pas se résoudre sur l'inventaire cible, elle en recherche d'autres qui pourraient contenir l'objet. Cette fonction utilise les hiérarchies de Scene Graph :
elle tente d'abord d'ajouter l'objet aux inventaires frères (inventaires qui partagent un parent avec l'inventaire cible initial), puis examine les inventaires enfants (inventaires parentés à l'inventaire cible initial). La fonction vérifie tous les inventaires de la hiérarchie avant de renvoyer un échec.
Filtrage de l'inventaire avec des événements de scène
Lorsqu'un inventaire est ciblé par un appel de fonction AddItem(), il reçoit un événement de scène (add_item_event). En remplaçant la fonction OnReceive() d'un composant, il est possible de déclencher une logique personnalisée pour affecter l'entrée de l'élément. Vous pouvez alors appliquer des règles d'inventaire, telles que la vérification du type d'objet avant l'autorisation, l'autorisation d'un nombre limité d'objets dans l'inventaire, etc. L'événement OnReceive() est implémenté dans la classe du composant de base et est disponible pour tous les composants Scene Graph.
L'événement add_item_event collecte les réponses de tous les inventaires qu'il atteint. Vous pouvez faire en sorte que les composants d'inventaire modifient l'événement et qu'ils se proposent eux-mêmes de recevoir l'objet ajouté. L'événement contient une matrice appelée inventory_with_priority, que vous pouvez définir et mettre à jour avec votre inventaire cible. Cela vous permet d'attribuer une priorité à l'inventaire cible pour recevoir l'objet. Une fois l'événement de scène diffusé, chaque inventaire avec une priorité définie est étudié pour la réception de l'objet, et celui dont la priorité est la plus élevée sera choisi.
Dans la version expérimentale du système Inventaire et d'objets personnalisés, seul l'événement add_item_event est disponible. Cependant, d'autres événements seront ajoutés dans de futures mises à jour.
Inventaires Fortnite
Le système Inventaire et objets personnalisés est fourni avec plusieurs sous-classes inventory_component appelées fort_inventory_components. Celles-ci disposent d'un filtre d'objets et d'éléments d'IU qui émulent l'inventaire du joueur de Fortnite Battle Royale.
| Composant | Description |
|---|---|
| Correspond à l'emplacement de l'outil de collecte de l'inventaire par défaut du joueur de Fortnite. |
| Correspond à la barre de raccourcis de l'inventaire par défaut du joueur de Fortnite. |
| Correspond à la barre de raccourcis des outils de construction de l'inventaire par défaut du joueur de Fortnite. |
| Correspond à l'emplacement de piège de l'inventaire par défaut du joueur de Fortnite. |
| Correspond à la section des monnaies de l'inventaire par défaut du joueur de Fortnite. |
| Correspond à la section des objets à ramasser de l'inventaire par défaut du joueur de Fortnite. |
| Correspond à la section des munitions de l'inventaire par défaut du joueur de Fortnite. |
Vous pouvez également créer votre propre configuration de sous-inventaires pour ajouter, supprimer ou remplacer l'inventaire par défaut du joueur.
La complexité du système Objets et inventaires personnalisés dépend du nombre de composants ajoutés à l'entité d'objet ou d'inventaire. À mesure que nous développons le système Objets et inventaires personnalisés, de nouveaux composants seront ajoutés pour offrir encore plus de fonctionnalités.