L'instance de niveau est un flux de travail reposant sur le niveau, qui facilite le portage de mondes ne faisant pas partie de la partition du monde vers le système de la partition du monde. Elle permet de créer des stratégies de contenu en continu, à l'aide des fonctions suivantes :
-
Instanciation de niveau avec transformations à l'aide d'un acteur spécialement conçu.
-
Branchement de plusieurs instances du même niveau au moment de l'exécution. Cela n'était pas possible dans les versions précédentes d'Unreal Engine.
-
Imbrication hiérarchique de sous-niveaux supplémentaires dans un sous-niveau.
Par exemple, vous pouvez utiliser la partition du monde pou remplir une carte avec un grand nombre d'acteurs. Si les acteurs doivent être disposés et réutilisés d'une manière spécifique, les instances de niveau fournissent un flux de travail d'édition en contexte, qui remplace l'ancienne vue Niveau.
Bien qu'il soit possible d'utiliser le chargement de niveau en temps réel sans utiliser la partition du monde, les instances de niveau ne disposent pas automatiquement d'une gestion du chargement de niveau en temps réel ou de stratégies de chargement de niveau en temps réel en dehors du monde principal de la partition du monde.
Création d'instances de niveau
De nouvelles instances de niveau sont générées à partir d'acteurs sélectionnés et peuvent être créées au choix dans le Viewport ou le World Outliner.
Après avoir sélectionné les acteurs, cliquez du bouton droit sur l'un d'eux pour afficher le menu contextuel et sélectionnez Créer à partir de la sélection.
Une boîte de dialogue s'affiche alors pour proposer les paramètres suivants :
| Paramètre | Description |
|---|---|
| Type | Le type d'instance de niveau
|
| Acteurs externes | Permet aux acteurs externes d'utiliser le système Un fichier par acteur. Pour plus d'informations, voir la documentation One File Per Actor. |
| Type de pivot | Le type de pivot pour l'instance de niveau disposera de :
|
| Acteur de pivot | Si l'acteur est sélectionné en tant que Pivot, utilisez ce menu déroulant pour sélectionner l'acteur qui sera le pivot pour l'instance de niveau. |
Une fois vos paramètres sélectionnés, le système vous demande d'enregistrer la nouvelle instance de niveau.
Ce processus créera un nouvel acteur ALevelInstance dans le niveau, qui remplacera les acteurs précédemment sélectionnés. Cet acteur représente le niveau qui vient d'être créé et toutes les transformations appliquées à cet acteur seront également appliquées à l'instance de niveau.
Dans le World Outliner, les acteurs de niveau seront grisés car ils ne peuvent pas être sélectionnés, ni modifiés.
Il est possible de faire glisser un acteur ALevelInstance dans votre niveau et de lui affecter un fichier .umap dans le panneau Détails .
Il est possible de fournir des modèles d'instance de niveau via les fichiers .ini d'Unreal Engine, en utilisant des entrées similaires aux modèles de création de niveau normal. Pour cela, ajoutez le script suivant au fichier DefaultEditor.ini de votre projet :
[/Script/LevelInstanceEditor.LevelInstanceEditorSettings]
+TemplateMapInfos=(ThumbnailTexture=Null,Map="/Game/Maps/Tools/TM-Template")
Instances de niveau condensé
Une instance de niveau condensé est un type d'instance qui essaie de grouper des maillages statiques de niveau dans un nombre minimum d'instances de maillage statique.
Il existe deux types d'instances de niveau condensé :
-
Instances de niveau condensé : Le processus de condensation crée une instance de niveau condensé centrée sur l'emplacement de l'acteur ALevelInstance.
-
Blueprint d'instance de niveau condensé : Ce processus de condensation crée une instance de niveau qui peut être référencée depuis un Blueprint.
Les acteurs et les composants qui ne sont pas des maillages statiques ne sont pas inclus dans le processus de condensation et restent séparés au niveau source.
La condensation d'une instance de niveau ne change pas le flux de travail d'édition lors de l'intervention sur le niveau.
Les instances de niveau condensé sont une fonction expérimentale pour l'instant, et peuvent être modifiées ou supprimées dans les prochaines versions d'Unreal Engine.
Modification d'instances de niveau
Les instances de niveau peuvent être modifiées dans le contexte, à partir de Viewport ou du panneau Détails.
Comme illustré ci-dessus, le mode d'édition est ouvert en exécutant les actions suivantes :
-
Sélectionnez l'instance de niveau dans Viewport.
-
Cliquez du bouton droit pour ouvrir le menu contextuel.
-
Dans la section Instance de niveau du menu, survolez l'option Editer et sélectionnez le niveau que vous souhaitez modifier.
Le mode d'édition peut également être ouvert depuis le panneau Détails.
Sélectionnez l'instance que vous souhaitez modifier, puis cliquez sur le bouton Editer dans le panneau Détails.
Chargement de niveau en temps réel au moment de l'exécution
Mode Intégré
Lors de l'utilisation du mode Intégré, les instances de niveau qui utilisent One File Per Actor (OFPA) system sont ignorées et leurs acteurs sont ajoutées à la grille de la partition du monde au moment de l'exécution. Il s'agit du mode d'exécution par défaut et la méthode suggérée de chargement de contenu de niveau en temps réel. Cela permet de faire en sorte que les instances de niveau n'existent que dans l'éditeur.
Certains acteurs qui n'utilisent pas le système OFPA sont perdus lors de l'exécution lors de l'utilisation du mode Intégré. Par exemple, l'objet AworldSettings d'une instance de niveau intégrée n'existe pas lors de l'exécution car il s'agit d'un acteur non OFPA.
Il est de votre responsabilité d'éviter de reposer sur cela ou d'utiliser le mode de chargement de niveau en temps réel, au besoin.
Mode Chargement de niveau en temps réel
Les instances de niveau qui n'utilisent pas le système OFPA ne peuvent pas être intégrés dans la grille de partition du monde et utiliseront à la place le chargement de niveau en temps réel standard lors de l'exécution. Cela signifie lorsque l'acteur ALevelInstance est chargé à travers sa propre cellule d'exécution de partition de monde, il chargera le niveau associé.
Cette méthode de chargement de niveau en temps réel représente un coût d'exécution supplémentaire car elle ajoute plus de niveau au chargement. Il n'est pas recommandé d'utiliser une densité élevée de niveaux qui utilisent ce mode de chargement de niveau en temps réel en raison de l'impact sur les performances.
Mode Intégré avec Partition du monde : Couches de données constitue un moyen efficace d'évaluer approximativement ce qui aurait pu être effectué précédemment avec les niveaux dynamiquement chargés.
Couches de données
Les instances de niveau prennent en charge le Monde Partition: Couches de données lors de l'utilisation du Mode Intégré ou du Mode chargement de niveau en temps réel. Les acteurs contenus dans l'instance de niveau hériteront des couches de données à partir de l'acteur AlevelInstance.