Qu'est-ce que Datasmith Runtime ?
Datasmith Runtime est un ensemble de fonctionnalités Datasmith disponibles au moment de l'exécution (par opposition à un flux de travail dans l'éditeur) dans une application basée sur l'Unreal Engine. Vous pouvez utiliser ces fonctionnalités pour créer des applications capables d'importer des fichiers .udatasmith
et de les manipuler à l'aide de Blueprints.

Datasmith Direct Link est accessible dans une application basée sur l'Unreal Engine utilisant Datasmith Runtime et Blueprints.
Avec Datasmith Runtime, vous pouvez créer des applications personnalisées qui tirent parti de Datasmith Direct Link ou visualiser les données Datasmith à la demande dans le cadre d'un flux de travail 3D itératif.
Activez les plug-ins suivants dans votre projet pour travailler avec Datasmith Runtime :
- Contenu Datasmith
- Importateur Datasmith
- Datasmith Runtime
Datasmith Runtime est officiellement pris en charge dans l'Unreal Engine 4 et l'Unreal Engine 5 sous Windows et MacOS. Bien que Datasmith Runtime fonctionne avec Linux, il s'agit d'une version expérimentale et vous risquez de rencontrer des problèmes d'instabilité et de performances.
Utiliser Datasmith Runtime avec Blueprints
Datasmith Runtime expose diverses fonctionnalités Datasmith et options d'importation à l'aide de plusieurs nœuds Blueprint. Voici les plus courants :

Les nœuds Datasmith Runtime Blueprint les plus courants.
Make Datasmith Runtime Import Options
Expose plusieurs paramètres d'importation et les convertit en structure de données :

Entrées | Description |
---|---|
Build Hierarchy (Créer une hiérarchie) | Détermine si la hiérarchie des acteurs est créée. Plus la hiérarchie est détaillée, plus le temps de chargement et de rendu augmente.
|
Build Collision (Créer une collision) | Détermine le type de collision utilisé pour les composants.
|
Collision Type (Type de collision) | Détermine le type de collision utilisé pour les maillages statiques.
|
Import Metadata (Importer des métadonnées) | Lit et importe les métadonnées pour les acteurs. Augmente le temps de chargement. |
L'entrée Tesselation Options (Options d'imbrication) n'est pas utilisée actuellement.
Set Import Options
Définit la valeur des options d'importation sélectionnées pour le contenu Datasmith à l'aide d'un acteur Datasmith Runtime. Utilise un acteur Datasmith Runtime comme cible et Datasmith Runtime Import Options comme valeur.

Load File
Charge le fichier .udatasmith
situé au chemin de fichier spécifié. Nécessite un chemin de fichier et un Datasmith Runtime Actor (Acteur Datasmith Runtime) comme entrées.

Load File from Explorer
Ouvre une fenêtre de navigateur de fichiers pour vous permettre d'accéder à un emplacement et de sélectionner un fichier .udatasmith
. Nécessite un Datasmith Runtime Actor (acteur Datasmith Runtime) en entrée. Un chemin de fichier par défaut est facultatif.

Bien qu'il fonctionne avec les systèmes d'exploitation Windows et Mac dans Play In Editor (PIE), Load File from Explorer ne fonctionne qu'avec Windows à l'exécution.
Get Direct Link Proxy
Renvoie une interface vers une connexion Direct Link appelée proxy Direct Link. Il s'agit de la première étape de la création d'une connexion Datasmith Direct Link.

Get List of Sources
Obtient une liste de sources Datasmith Direct Link. Nécessite un proxy Direct Link en entrée.

Open Connection with Index
Ouvre une connexion Direct Link avec la source située à la valeur d'index spécifiée. Nécessite un Datasmith Runtime Actor (acteur Datasmith Runtime) et un Source Index (index des sources) en entrée.

Close Connection
Ferme une connexion Direct Link ouverte associée à un Datasmith Runtime Actor (acteur Datasmith Runtime) spécifié.

Loading Datasmith Content at Runtime
Datasmith Runtime vous permet de charger du contenu Datasmith dans une application préparée tout en ayant accès à la hiérarchie et aux propriétés de l'acteur.
Cliquez sur l'image pour l'afficher à taille réelle.
Pour charger le contenu Datasmith à l'aide de Blueprints :
-
Créez un nouveau blueprint d'acteur pour contenir le point d'ancrage du contenu Datasmith. Vous pouvez le faire en faisant un clic droit dans le navigateur de contenu et en sélectionnant Classe de blueprint dans le menu contextuel. Dans la fenêtre Pick Parent Class (Choisir la classe parente), sélectionnez Actor (Acteur) et nommez la nouvelle classe de blueprint DatasmithActor. Double-cliquez sur le nouveau Blueprint pour ouvrir l'éditeur.
Cette ancre servira de point d'origine pour le contenu Datasmith importé. Si votre contenu est décalé par rapport à l'origine dans votre application source, l'Unreal Engine conservera ce décalage par rapport à l'ancre lorsque le contenu est importé.
-
Sélectionnez l'onglet Event Graph (Graphique d'événements) et supprimez tous les événements à l'exception de BeginPlay. Faites glisser une connexion depuis l'événement BeginPlay et ajoutez le nœud Spawn Actor From Class. Ouvrez le menu déroulant Classe et sélectionnez DatasmithRuntimeActor. Transformez la valeur de retour en variable et nommez-la Anchor.
-
Spawn Actor nécessite une transformation pour faire apparaître l'ancre. Faites un clic droit à gauche de Spawn Actor et ajoutez un nœud Make Transform. Reliez la sortie de Make Transform à la broche Spawn Transform de Spawn Actor.
(w:800)
-
Pour terminer le blueprint, cliquez et faites glisser depuis la broche Execute du nœud Set et ajoutez un nœud Load File from Explorer. Reliez une référence à la variable Anchor à l'entrée Datasmith Runtime Actor.
-
Enregistrez et compilez le blueprint. Ajoutez une copie de votre blueprint d'ancre au niveau et appuyez sur Jouer pour tester.
L'Unreal Engine ouvrira une fenêtre de l'explorateur de fichiers et vous demandera de sélectionner un fichier.
Créer un Datasmith Direct Link avec Blueprints
Vous pouvez également ouvrir un Datasmith Direct Link entre une ou plusieurs applications sources et votre projet Unreal Engine au moment de l'exécution à l'aide de Datasmith Runtime.
- Commencez par créer un nouveau blueprint d'acteur pour contenir le point d'ancrage de votre contenu Datasmith. Double-cliquez sur le nouveau blueprint pour ouvrir l'éditeur.
- Comme dans l'exemple précédent, sélectionnez l'onglet Graphique d'événements et supprimez tous les événements à l'exception de BeginPlay. Faites glisser une connexion depuis l'événement BeginPlay et ajoutez le nœud Spawn Actor From Class. Ouvrez le menu déroulant Classe et sélectionnez DatasmithRuntimeActor.
-
Une transformation est nécessaire pour faire apparaître l'ancre. Faites un clic droit à gauche de Spawn Actor et ajoutez un nœud Make Transform. Reliez la sortie de Make Transform à la broche Spawn Transform de Spawn Actor.
(w:800)
-
Vous avez ensuite besoin d'un proxy Direct Link pour servir de point de connexion entre votre application et votre application source. Faites glisser une connexion depuis le nœud Set et créez un proxy Get Direct Link. Promouvez la sortie vers une variable et nommez-la Direct Link Sources Proxy. Définissez-la comme publique.
-
Cliquez sur le bouton plus (+) dans la section Fonctions du panneau My Blueprints pour créer une nouvelle fonction. Nommez-la DirectLinkUpdate. Vous utiliserez cette nouvelle fonction pour déclencher la connexion Direct Link pendant l'exécution.
-
Commencez par obtenir une copie de votre variable Direct Link Proxy. Faites glisser une ligne à partir de la variable et créez un nœud Get List of Sources. Promouvez la sortie vers une variable pour contenir la liste de sources Direct Link et rendez cette variable publique.
-
Faites glisser la variable Anchor que vous avez créée précédemment de l'onglet My Blueprint à la fonction Direct Link Update. Faites glisser la ligne a depuis la sortie, puis saisissez Set Import Options pour sélectionner et insérer ce nœud.
-
Faites un clic droit et créez un nœud Make Datasmith Runtime Import Options, puis faites glisser une connexion de la sortie à l'entrée Import Options.
-
Terminez la fonction en faisant glisser une ligne depuis Set Import Options et en créant un nœud Open Connection with Index. Une ancre est nécessaire, ainsi qu'un Source Index (index des sources) en entrée. Reliez la référence à l'ancre à l'entrée cible.
-
Cliquez sur le signe plus (+) à côté de Variables pour créer une nouvelle variable. Nommez-la SourceIndex et attribuez-lui le type Integer (Entier).
-
Reliez la nouvelle variable à l'entrée Source Index du nœud Open Connection with Index. Une valeur d'index de 0 se connectera à la première source de la liste.
-
Enfin, cliquez sur la fonction DirectLinkUpdate dans My Blueprints et activez Call In Editor (Appeler dans l'éditeur) dans le panneau Détails. Cette option rend la fonction disponible au moment de l'exécution dans les détails de l'objet Anchor (Ancre).
Cliquez sur l'image pour l'afficher à taille réelle.
- Enregistrez et Compilez. Le blueprint finalisé devrait ressembler à l'exemple ci-dessous :
Cliquez sur l'image pour l'afficher à taille réelle.
Démarrez votre application source et exécutez le projet en cliquant sur le bouton Play. Sélectionnez votre ancre dans l'organiseur du monde et cliquez sur le bouton Direct Link Update (Mise à jour Direct Link) dans le panneau Détails. Cliquez ensuite sur le bouton Synchronize with Direct Link (Synchroniser avec Direct Link dans votre application source. Vous verrez votre contenu Datasmith apparaître dans votre niveau en utilisant les options d'importation spécifiées dans le blueprint.
La désactivation de l'option Use Less CPU when in Background (Utiliser moins de CPU en arrière-plan) permet au moteur de mettre à jour le hublot 3D lorsque la fenêtre de l'Unreal Engine n'est pas focalisée et lorsqu'un pion du niveau n'est pas possédé. Cette option se trouve dans les préférences de l'éditeur sous General > Performance.