Cette fonctionnalité est en phase expérimentale, ce qui vous permet de l'essayer, de donner votre avis et de découvrir nos projets. 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é.
Ce tutoriel vous montre comment utiliser le système d'inventaire et d'objets personnalisés avec Scene Graph et Verse pour créer une carte d'accès personnalisée.
Une fois cet exemple compilé pour apprendre à créer une carte d'accès personnalisée, il est ensuite possible d'utiliser une carte d'accès personnalisée dans des jeux comportant des objectifs où il faut localiser et utiliser des cartes d'accès pour pénétrer dans des zones verrouillées. Voici quelques exemples :
Une salle verrouillée contenant l'objet visé par le casse.
La zone suivante de votre jeu
Un trésor ou une récompense pour avoir éliminé un boss
Avant de commencer
Vous devez connaître l'UEFN, Scene Graph et le code Verse pour suivre ce tutoriel.
Configurer votre projet
Procédez comme suit pour configurer votre projet et activer le système d'inventaire et d'objets personnalisés.
Ouvrez l'UEFN et créez un projet à partir de n'importe quel modèle d'île. Dans les modèles d'îles, vous pouvez utiliser le projet Vide si vous souhaitez travailler sur une zone plane. Nommez votre nouveau projet, puis cliquez sur Créer pour l'ouvrir dans l'éditeur.
Dans la barre d'outils, cliquez sur Projet et sélectionnez Paramètres du projet.
Faites défiler le contenu vers le bas jusqu'à la section Accès expérimental, puis cochez la case Système d'inventaire. Cela active l'inventaire et les objets personnalisés.
Construire votre salle
Vous devez d'abord construire la salle utilisée dans l'exemple. Cet exemple est présenté comme une démonstration qui compare deux portes verrouillées :
La première montre comment une carte d'accès Fortnite permet d'ouvrir une porte disposant d'un appareil de verrouillage, en utilisant un bouton à condition pour déterminer si le joueur possède la carte d'accès.
La deuxième montre comment utiliser une carte d'accès personnalisée au lieu de la carte d'accès Fortnite existante, et utilise Verse pour déterminer si le joueur possède la carte d'accès personnalisée.
Pour construire la salle utilisée dans l'exemple, vous pouvez utiliser les ressources Fortnite suivantes :
Salle : dans le navigateur de contenu, atteignez Fortnite > Ressources de grayboxing > Démonstration. Dans cet exemple, nous utilisons les ressources DemoRoom.
Stand de démonstration : dans le navigateur de contenu, atteignez Fortnite > Ressources de grayboxing > Démonstration. Utilisez la ressource DemoDisplay.
Portes :
Porte dans un mur vert : atteignez Fortnite > Galeries > Construction > Galerie de murs Tilted Towers N. Recherchez la Porte résidentielle d'intérieur C 02 a8a9d603 à la fin de la première ligne.
Porte dans un mur beige avec moulure sombre en haut : dans la même galerie que ci-dessus, juste à gauche se trouve la porte résidentielle d'intérieur C 02 a9577d9d.
Tableau : atteignez Fortnite > Accessoires > Super. Recherchez la table ronde Académie A 13a04066.
Configurer les appareils
Appareils nécessaires :
1 x point d'apparition de joueur
2 appareils de verrouillage
1 appareil Bouton à condition
2 appareils Volume
1 poseur d'objet (carte d'accès Autorité)
Configurer la porte pour une carte d'accès Fortnite
Choisissez une porte pour configurer une porte verrouillée typique de Fortnite. Procédez comme suit pour configurer les appareils pour la première porte.
Placez un appareil de verrouillage sur le mur, à côté de la porte. Dans le panneau Détails, personnalisez les options de l'appareil comme indiqué ci-dessous. Les options non répertoriées peuvent conserver leur valeur par défaut.
Option
Valeur
Explication
Visible pendant le jeu
False (non coché)
Cette option masque l'appareil de verrouillage pendant l'exécution du jeu afin que les joueurs ne le voient pas.
Verrouillé au démarrage
Verrouillé
Cette option verrouille la porte au démarrage du jeu.
Cacher l'interaction si verrouillé
True (Coché)
Cette option masque l'invite d'interaction lorsque la porte est verrouillée.
Position initiale de la porte
Fermée
Cette option définit la position de départ par défaut de la porte sur Fermée.
Sous Options utilisateur - Fonctions, configurez les fonctions suivantes pour l'appareil de verrouillage.
Il se peut que la fonction de verrouillage ne puisse être configurée qu'après avoir placé le volume à l'étape 3 ci-dessous.
Fonction
Appareil cible
Événement à lier
Explication
Déverrouiller
bouton à condition
À l'activation
La porte est déverrouillée lorsque le bouton à condition est activé.
Appareil de verrouillage
volume
À la sortie
La porte est verrouillée lorsque le joueur quitte le volume de la porte de l'appareil Fortnite.
Placez un appareil Volume centré sur la porte elle-même. Dans le panneau Détails, personnalisez les options de l'appareil comme indiqué ci-dessous. Les options non répertoriées peuvent conserver leur valeur par défaut.
Option
Valeur
Explication
Forme du volume
Cylindre
Détermine la forme du volume.
Hauteur du volume
0,25x
Ce paramètre détermine la hauteur du cylindre du volume.
Rayon du volume
0,9x
Ce paramètre définit le rayon du cylindre du volume, qui détermine sa distance par rapport à l'emplacement de l'appareil. Le rayon doit être relativement petit, de sorte que le joueur doit s'approcher de la porte pour entrer dans le volume.
Placez l'appareil Bouton à condition près de la porte, sous l'appareil de verrouillage. Personnalisez les options comme indiqué ci-dessous. Les options non répertoriées peuvent conserver leur valeur par défaut.
Option
Valeur
Explication
Objets clés requis
True (coché), 1
Cochez cette case pour indiquer qu'un objet clé est nécessaire pour que la condition soit remplie. Saisissez 1 dans le champ pour indiquer qu'une seule carte d'accès est nécessaire.
Objet clé 1
Carte d'accès Autorité (nom dans le jeu) ou AGID_CP_Keycard_Agency (identifiant de l'objet)
Pour sélectionner l'objet requis, cliquez sur le menu déroulant et recherchez "carte d'accès". Il existe plusieurs cartes d'accès, mais cet exemple utilise l'objet "Carte d'accès Autorité".
Sous Options utilisateur - Fonctions, configurez les fonctions suivantes pour l'appareil Bouton à condition.
Fonction
Appareil cible
Événement à lier
Explication
Activer
volume
À l'entrée
Lorsque le joueur entre dans le volume de la porte de l'appareil Fortnite, le bouton à condition s'active. Il vérifie si le joueur possède la carte d'accès Autorité.
Configurer la porte pour la carte d'accès personnalisée
Pour la deuxième porte, procédez comme suit pour configurer les appareils.
Étant donné que les options des deux appareils de verrouillage sont identiques, vous pouvez copier le premier appareil de verrouillage et coller la copie dans votre niveau. Vous pouvez renommer l'appareil pour le distinguer du premier.
Sous Options utilisateur - Fonctions, configurez les fonctions suivantes pour l'appareil de verrouillage.
Il se peut que vous ne puissiez pas configurer cette fonction avant d'avoir placé le point d'apparition de joueur (lien d'ancrage vers cette section ici).
Fonction
Appareil cible
Événement à lier
Explication
Appareil de verrouillage
Point d'apparition du joueur 1
À l'apparition du joueur
Lorsqu'un joueur apparaît sur le point d'apparition du joueur 1, l'appareil de verrouillage s'active et verrouille la porte.
Étant donné que les options des deux appareils Volume sont identiques, vous pouvez copier le premier volume et coller la copie dans votre niveau. Vous pouvez renommer l'appareil pour le distinguer du premier.
Configurer la table pour les cartes d'accès
Procédez comme suit pour configurer la table avec la carte d'accès Fortnite et votre carte d'accès personnalisée.
Placez le poseur d'objet sur le côté de la table la plus proche de la porte verrouillée qui utilise des appareils.
Dans le panneau Détails, personnalisez les options de l'appareil pour le poseur d'objet, comme indiqué ci-dessous.
Option
Valeur
Explication
Liste des objets
Carte d'accès Autorité
Cliquez sur le signe + pour ajouter un élément de matrice, puis cliquez sur le menu déroulant et recherchez "carte d'accès". Sélectionnez ensuite la carte d'accès Autorité.
Localisez votre carte d'accès personnalisée dans le navigateur de contenu, puis faites-la glisser dans le niveau. Placez la carte d'accès personnalisée sur la table, du côté le plus proche de la porte verrouillée, configurée à cet effet.
Une fois que vous avez créé l'appareil keycard_gameplay_device (ajouter un lien d'ancrage ici), recherchez l'appareil Verse dans le navigateur de contenu et faites-le glisser dans votre niveau.
Configurer le point d'apparition de joueur
Enfin, vous devez placer un point d'apparition de joueur. Pour cet exemple, vous n'avez besoin que d'un seul point d'apparition de joueur. Cependant, si vous créez un jeu multijoueur, vous pouvez suivre les étapes suivantes pour en configurer d'autres. Vous pouvez également les configurer différemment en fonction de l'expérience spécifique de votre île.
Placez le point d'apparition de joueur à un endroit où le joueur peut immédiatement voir la table et les deux portes.
Personnalisez les options de l'appareil comme indiqué ci-dessous.
Option
Valeur
Explication
Visible pendant le jeu
False (non coché)
Dans cet exemple, le point d'apparition de joueur est invisible.
Maintenant que votre pièce et vos appareils sont configurés, vous pouvez créer la carte d'accès personnalisée.
Créer un préfabriqué d'entité d'objet personnalisé
Dans le navigateur de contenu, faites un clic droit pour ouvrir le menu contextuel, puis sélectionnez Définition de préfabriqué d'entité. Cette option ajoute un nouveau préfabriqué d'entité Scene Graph au navigateur de contenu.
Renommez le préfabriqué Item_Keycard.
Faites glisser une instance du nouveau préfabriqué dans le monde en la faisant glisser dans le hublot. Cela permet de la sélectionner dans l'organiseur.
Après avoir sélectionné le préfabriqué Item_Keycard, accédez au panneau Détails, cliquez sur +Composant, puis sélectionnez item_component. Vous pouvez faire défiler la liste pour le trouver, ou taper "item" dans la barre de recherche pour limiter les résultats et le trouver plus rapidement.
Cliquez de nouveau sur +Composant et sélectionnez item_details_component. Ce composant stocke des données textuelles concernant l'objet.
Le composant item_details possède trois champs de propriété affichés dans le panneau Détails : Nom, Description et ShortDescription. Saisissez un nom, une description de l'objet et une brève étiquette descriptive dans ces champs.
Cliquez de nouveau sur +Composant et sélectionnez item_icon_component.
Dans le panneau Détails, développez la section item_icon_component. Vous devez sélectionner une Image 2D, qui sera l'Image affichée dans l'IU du jeu (par exemple, dans l'inventaire du joueur) pour représenter l'objet.
Cliquez sur le menu déroulant à côté du carré Aucun pour ouvrir un menu contextuel, puis tapez une partie du nom de votre image dans la barre de recherche. Dans cet exemple, nous utilisons une image PNG nommée T_Icon_Keycard.png.
Sélectionnez l'image dans les résultats de la recherche.
Cliquez à nouveau sur +Composant et sélectionnez mesh_component. Pour cet exemple, sélectionnez Plan.
Cela permet d'ajouter un maillage de plan à votre objet. Selon vos paramètres, ce plan peut être très grand au départ. Procédez comme suit pour redimensionner le plan à la taille d'une carte d'accès.
Dans la barre d'outils en haut du hublot, sélectionnez l'outil Échelle. Vous pouvez également appuyer sur la touche R pour passer à l'outil Échelle.
Plus à droite de l'outil Échelle, cliquez sur le menu déroulant du paramètre Rapport prédéfini pour l'échelle. Réglez ce paramètre sur 0,0625. Cela permet de réduire le plan à une taille très petite afin de représenter une carte d'accès.
Cliquez de nouveau sur +Composant et sélectionnez fort_item_pickup_component. L'ajout de ce composant ajoute toutes les fonctionnalités des objets Fortnite :
Une animation pour ramasser un objet et une animation pour déposer un objet
Une interaction pour ajouter un objet à l'inventaire
Un widget d'objet par défaut qui s'affiche lorsqu'un joueur regarde l'objet
La désactivation du maillage de l'objet lorsqu'un objet est ramassé
L'activation du maillage de l'objet lorsqu'un objet est déposé
Maintenant que vous disposez d'un préfabriqué de carte d'accès personnalisé de base, vous pouvez créer un composant Verse personnalisé qui rendra cet objet unique afin de pouvoir le vérifier avec le code Verse pour voir s'il ouvre une porte verrouillée particulière.
Créer un composant Verse personnalisé
En règle générale, pour un projet de grande envergure comportant de nombreux fichiers de code Verse, il est recommandé de créer un nouveau fichier Verse pour chaque composant personnalisé. Pour ce faire, procédez comme suit.
Étant donné que l'exemple utilisé dans ce tutoriel est de petite taille, le composant personnalisé keycard_item_component a été défini dans le fichier Verse pour keycard_gameplay_device. Consultez la section Écrire le code Verse du jeu pour connaître la procédure détaillée.
Une fois votre nouvelle carte d'accès sélectionnée, cliquez sur +Composant dans le panneau Détails, puis sélectionnez Nouveau composant Verse. La fenêtre Créer un composant Verse s'ouvre.
Vous pouvez également créer un composant Verse en ajoutant un nouveau fichier Verse à l'aide de l'explorateur Verse.
Sous Choisir un modèle, sélectionnez Composant Scene Graph.
En bas, dans le champ Nom du composant, saisissez keycard_item_component. Cliquez ensuite sur Créer.
Dans le panneau Détails, cliquez sur +Composant, puis tapez "keycard" dans la barre de recherche. Votre nouveau composant Verse doit s'afficher ; sélectionnez-le pour l'ajouter à votre carte d'accès personnalisée.
Dans la barre de menus, cliquez sur Verse > Explorateur Verse. Localisez votre nouveau composant Verse, faites un clic droit dessus et sélectionnez Ouvrir dans Visual Studio Code.
Écrire le code Verse du jeu
Étant donné que vous créez un objet personnalisé (la carte d'accès) et que vous souhaitez déclencher un appareil lorsque le joueur dispose de la carte d'accès personnalisée dans son inventaire, vous devez créer un appareil Verse pour cela.
Dans la barre de menus, accédez à Verse > Explorateur Verse. L'explorateur Verse s'ouvre dans un onglet à côté de l'organiseur.
Dans l'explorateur Verse, faites un clic droit sur le nom de votre projet et choisissez Ajouter un nouveau fichier Verse au projet pour ouvrir la fenêtre Créer un script Verse.
Dans la fenêtre Créer un script Verse, sous Choisir un modèle, cliquez sur l'option Appareil Verse pour la sélectionner. Dans le champ Nom de l'appareil, saisissez keycard_gameplay_device. Cliquez ensuite sur Créer pour créer le fichier Verse.
Dans l'explorateur Verse, double-cliquez sur votre nouvel appareil Verse pour ouvrir le fichier dans Visual Studio (VS) Code. Assurez-vous que tous les éléments suivants sont ajoutés dans les premières lignes du code.
Verseusing { /Fortnite.com/Devices } using { /Fortnite.com/Itemization } using { /Verse.org/Simulation } using { /Verse.org/SceneGraph } using { /Verse.org/Random } using { /UnrealEngine.com/Itemization } using { /UnrealEngine.com/Temporary/Diagnostics }Ensuite, ajoutez le code qui définit votre composant d'objet personnalisé.
Verse# KEYCARD ITEM COMPONENT keycard_item_component := class(item_component) :Nous pouvons ajouter une fonction d'aide qui nous permettra de trouver l'inventaire racine de l'agent cible :
Verse# Helper function that gets the first descendant inventory component from an agent. # This will be the root inventory. GetAgentInventory(Agent:agent)<decides><transacts>:inventory_component= TargetInventory := (for (I : Agent.FindDescendantComponents(inventory_component)) { I })[0]Définissez votre appareil Verse personnalisé comme sous-classe de
creative_device. En dessous, configurez une propriété modifiable pour le volume et l'appareil de verrouillage. Cela vous permet de sélectionner une instance particulière de l'appareil Volume ou de l'appareil de verrouillage dans l'éditeur (ce qui est important, car vous avez deux appareils Volume et deux appareils de verrouillage).Verse# DEVICE //// GAMEPLAY keycard_gameplay_device := class(creative_device) : # Use a volume_device to be able to check when a player approaches @editable VolumeDevice:?volume_device = false # The lock device is attached to a wall/door prop. This can be activated to lock/unlock the door it is attached to. @editable LockDevice:?lock_device = falseUtilisez maintenant la requête pour vérifier si l'appareil Volume est présent et vous abonner aux événements À l'entrée de l'agent et À la sortie de l'agent de l'appareil Volume.
Verse# Subscribe to the entry and exit events on the Volume to determine when a player/agent approaches. OnBegin<override>()<suspends>:void= if: TargetVolume := VolumeDevice? then: TargetVolume.AgentEntersEvent.Subscribe(OnAgentEntersEvent) TargetVolume.AgentExitsEvent.Subscribe(OnAgentExitsEvent)Vous devez vérifier l'inventaire du joueur pour savoir s'il dispose de la carte d'accès personnalisée. Pour cela, recherchez tout élément possédant le composant
keycard_item_component.Ce code exige également la présence du composantkeycard_item_componentpour ouvrir l'appareil de verrouillage.VerseOnAgentEntersEvent(Agent:agent):void= # Get the inventory from the player that is entering. if(TargetInventory := GetAgentInventory[Agent]): # Check the item in the inventory, if it has the keycard_item_component, proceed for(item : TargetInventory.FindItems(), KeycardComponent := item.GetComponent[keycard_item_component]) # If there is a valid lock_device, then this opens the door. if(TargetDoorLock := LockDevice?):Enfin, si plusieurs joueurs sont présents et qu'au moins l'un d'eux possède la carte d'accès, ce code s'assure que l'appareil de verrouillage reste ouvert. Cependant, si le joueur possédant la carte d'accès quitte le volume, l'appareil de verrouillage se referme.
VerseOnAgentExitsEvent(Agent:agent):void= # Start by assuming that no one has the required keycard_item_component. var AgentWithKeycardInVolume:logic = false if(TargetVolume := VolumeDevice?): # Get the Agents that are inside the volume_device as an array. for(TargetAgent:TargetVolume.GetAgentsInVolume()): # Use the same check to see if any of the agents in the volume_device have a keycard_item_component.
Voici l'extrait du code Verse complet.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Itemization }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
using { /UnrealEngine.com/Itemization }
using { /UnrealEngine.com/Temporary/Diagnostics }
# KEYCARD ITEM COMPONENT
keycard_item_component := class(item_component) :