Vous pouvez exposer vos ressources de l'UEFN dans Verse de façon à les utiliser dans votre code Verse. Cette procédure est appelée réflexion de ressources, et vous pouvez l'utiliser pour insérer des images dans votre interface utilisateur personnalisée ou utiliser des maillages pour vos accessoires personnalisés.
Lorsque vous exposez une ressource dans Verse, son nom devient l'identificateur, c'est-à-dire un symbole de compilateur que vous pouvez ensuite utiliser dans votre code Verse. Vous pouvez alors accéder à votre ressource à partir de son chemin d'accès Verse. L'affectation de noms aux ressources doit suivre les conventions et règles d'affectation de noms relatives aux identificateurs. Vous pouvez voir tous vos actifs exposés à Verse dans le fichier Assets.digest.verse de votre projet.
Pour que le fichier Assets.digest.verse soit généré, vous devez avoir au moins un fichier Verse dans votre projet avant de créer le code Verse.
Par exemple, si votre texture porte le nom MyTexture, elle apparaîtra dans votre fichier Assets.digest.Verse sous la forme MyTexture<scoped {MyProject}>:texture_2d = external {}.
Lorsque vous placez vos ressources dans des sous-dossiers du dossier Contenu du projet, le nom du sous-dossier devient le nom du module Verse. Par exemple, lorsque vous créez un maillage personnalisé nommé MySphere et qu'il se trouve dans le sous-dossier Meshes du dossier Content du projet, vous devez qualifier le nom du maillage avec le nom du module (sous-dossier) dans le code, par exemple Meshes.MySphere.
Actuellement, vous pouvez exposer les types de ressources suivants dans Verse :
Maillages
Texture
Matériaux
Systèmes de particules d'effets visuels Niagara
Dans les sections suivantes, nous vous expliquons comment configurer chaque type de ressource pour qu'elle soit disponible dans votre code Verse.
Maillages
Pour pouvoir référencer vos maillages dans votre code Verse, vous devez :
Modéliser votre maillage dans l'UEFN ou importer un maillage dans votre projet.
Les ressources que vous importez de Fab doivent être ajoutées en tant que ressources modifiables de l'Unreal Engine pour apparaître dans le fichier Assets.digest.verse. Actuellement, vous ne pouvez pas utiliser les ressources référencées de Fab dans votre code Verse.
Enregistrez le maillage en choisissant Fichier > Enregistrer tout.
Vérifiez que le nom de votre maillage apparaît dans le fichier Assets.digest.verse de votre projet.
Vous pouvez alors utiliser votre maillage avec les API Verse, par exemple en plaçant le maillage sur un accessoire du mode Créatif.
L'exemple suivant est un appareil créé par Verse qui génère un accessoire au démarrage du jeu. L'exemple utilise un maillage nommé MySphere qui se trouvait dans le sous-dossier Meshes du dossier Content du projet.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Fortnite.com/UI }
using { /UnrealEngine.com/Temporary/UI }
using { /UnrealEngine.com/Temporary/SpatialMath }
# A Verse-authored creative device that spawns a prop and sets its mesh.
my_device := class(creative_device):
Texture
Pour pouvoir référencer votre texture dans votre code Verse, vous devez :
Importer votre texture dans l'UEFN.
Les ressources que vous importez de Fab doivent être ajoutées en tant que ressources modifiables de l'Unreal Engine pour apparaître dans le fichier Assets.digest.verse. Actuellement, vous ne pouvez pas utiliser les ressources référencées de Fab dans votre code Verse.
Enregistrez la texture en choisissant Fichier > Enregistrer tout.
Vérifiez que le nom de votre texture apparaît dans le fichier Assets.digest.verse de votre projet.
Vous pouvez ensuite utiliser votre texture avec les API Verse, telles que Verse UI.
Matériaux
Pour pouvoir référencer votre matériau dans votre code Verse, vous devez :
Créer votre matériau dans l'UEFN.
Vérifiez que le nom de votre matériau apparaît dans le fichier **Assets.digest.verse** de votre projet.
Vous pouvez ensuite utiliser votre matériau avec les API Verse, telles que Verse UI et définir le matériel sur des accessoires créatifs.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
my_device := class(creative_device):
# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
SpawnLocation := transform:
Paramètres de matériau
Lorsque vous créez un matériau et que vous lui ajoutez des paramètres, ces paramètres apparaissent sous forme de champs dans la classe de matériau dans le fichier Assets.digest.verse. Lorsque vous définissez votre matériau sur un maillage, vous pouvez ensuite modifier les paramètres sur le matériau dans Verse, à l'exécution.
Il est possible d'exposer les types de paramètres suivants de votre matériau dans Verse :
| Paramètres de matériau | Type de Verse | Description |
|---|---|---|
Une seule valeur à virgule flottante. | ||
Un paramètre permettant d'accéder et de définir la texture d'un matériau. | ||
La |
L'exemple suivant utilise un matériau nommé ConcreteMaterial avec un paramètre vector4 nommé MyRandomColor.
Voici ce qui apparaît dans le fichier Assets.digest.verse pour ce matériau :
ConcreteMaterial_material<scoped {ParameterizedMaterialsTest}> := class<final><public>(material):
var Specular:float = external {}
var WorldPositionOffset:color = external {}
var BaseTexture:texture = external {}
ConcreteMaterial<scoped {ParameterizedMaterialsTest}>:material = external {}Pour pouvoir accéder aux paramètres de ce matériau et les mettre à jour, vous devez d'abord instancier votre matériau dans votre code Verse. Dans l'exemple suivant, le matériau est instancié puis défini sur un maillage avant modification des paramètres.
using { /Fortnite.com/Devices }
using { /Verse.org/Colors }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
# A Verse-authored creative device that spawns three props and randomly changes their color
material_color_test_device := class(creative_device):
Ressources d'effets visuels et systèmes de particules
Pour pouvoir référencer votre système de particules d'effets visuels Niagara dans votre code Verse, vous devez :
Créer votre système de particules dans l'UEFN.
Vérifier que le nom de votre système de particules apparaît dans le fichier Assets.digest.verse de votre projet.
Vous pouvez alors générer le système de particules à l'aide de la fonction SpawnParticleSystem(). Dans l'exemple suivant, nous utilisons un système de particules nommé MyParticleSystem, qui se trouvait dans le sous-dossier VFX du dossier Contenu du projet.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Assets }
using { /UnrealEngine.com/Temporary/Diagnostics }
# A Verse-authored creative device that spawns a VFX particle system
vfx_test_device := class(creative_device):
# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
Limitations connues
La liste suivante énumère les limites actuelles de la réflexion de ressources :
Lorsque vous utilisez
SetMeshsur un accessoire, le matériau du nouveau maillage peut ne pas apparaître dans l'accessoire, car certains accessoires de la trousse à outils du mode Créatif ont un matériau de remplacement défini. Si l'accessoire n'a pas de matériau de remplacement, lorsque vous modifiez le maillage, le matériau du nouveau maillage est utilisé.Donner à un actif le même nom qu'un autre identificateur dans votre projet entraînera des erreurs de compilation. Par exemple, un projet avec la structure indiquée ci-dessous ne sera pas compilé car il existe un actif appelé
MyMeshet un dossier appeléMyMesh. Il conviendra de renommer le dossier ou la ressource pour que le code soit compilé.MonDossier /
MyMesh.uasset
MyMesh /
MonAutreMesh.uasset
Dépannage
Si vous rencontrez des problèmes lors de la mise à jour de votre fichier Assets.digest.verse ou lors de la compilation du code de réflexion de vos ressources, essayez les solutions ci-dessous.
N'utilisez pas les mots-clés Verse tels que
setoublockcomme noms de ressources ou de dossiers. Le fichier Assets.digest.verse crée des identificateurs Verse à partir de ces noms. L'utilisation d'un mot-clé comme identificateur Verse risque de provoquer des erreurs de compilation. Consultez le Guide de référence rapide du langage Verse pour obtenir la liste des mots-clés Verse.N'utilisez pas les noms des API Verse ou des membres d'API comme noms de ressources ou de dossiers. Voir la référence de l'API Verse.
Suivez les conventions d'affectation de noms de Verse lorsque vous nommez vos ressources et dossiers. Ils risquent autrement d'être ignorés dans la génération du fichier digest.
Si vous tentez de référencer une ressource en dehors de son module, vous risquez de recevoir une erreur d'accès. Cela est dû au fait que les modules ont le
<internal>spécificateur d'accès par défaut. Pour corriger cette erreur, vous devez ajouter le spécificateur d'accès<public>à la déclaration du module. Si le module a été spécifié en créant un dossier dans votre projet, vous devez modifier l'accessibilité du module dans votre code. Par exemple, dans la structure de projet suivante,Materials,MeshesetTexturessont des sous-modules du moduleWatermelon.MyProject /
MiniGame /
MiniGameAssets /
Watermelon /
Matériaux /
Maillage /
Watermelon.uasset
Textures /
hello_world_device.verse
Le code suivant dans hello_world_device.verse modifie l'accessibilité du module Meshes en public.
MiniGame := module:
MiniGameAssets<public> := module:
Watermelon<public> := module:
Meshes<public> := module {}Le fichier hello_world_device.verse du projet peut maintenant référencer le fichier Watermelon.uasset dans le code à l'aide du chemin d'accès MiniGame.MiniGameAssets.Watermelon.Meshes.Watermelon.
Si un identificateur provoque une erreur dans votre code Verse, il provoquera probablement une erreur en tant que nom d'une ressource ou d'un dossier. Vérifiez les noms de ressources et de dossiers potentiels en les saisissant d'abord comme identificateurs dans le code.
Activer la réflexion des actifs
Avec la version 26.00, la possibilité d'exposer les ressources de l'UEFN dans Verse est activée par défaut pour tous les projets UEFN nouvellement créés. Pour tous vos projets créés avant la version 26.00, vous devez activer cette fonctionnalité en procédant comme suit :
Fermez votre projet dans l'UEFN.
Localisez le .uplugin fichier dans le répertoire du projet.
Ouvrez le .uplugin fichier dans un éditeur de texte.
Recherchez la propriété EnableVerseAssetReflection et attribuez-lui la valeur true.
Si cette propriété n'est pas présente, ajoutez la ligne suivante sous VersePath:
"EnableVerseAssetReflection" : true,Enregistrez le .uplugin déposer.
Rouvrez votre projet dans l'UEFN.