Guide de configuration de profil MRTK2

Mixed Reality Toolkit centralise autant que possible la configuration requise pour gérer le kit de ressources (à l’exception de vrais « choses »).

Ce guide est une procédure pas à pas simple pour chacun des écrans de profil de configuration actuellement disponibles pour le kit de ressources.

Profil de configuration principal Mixed Reality Toolkit

Le profil de configuration principal, qui est attaché à MixedRealityToolkit GameObject dans votre scène, fournit le point d’entrée principal du Kit de ressources dans votre projet.

Notes

Mixed Reality Kit de ressources « verrous » les écrans de configuration par défaut pour vous assurer que vous disposez toujours d’un point de départ commun pour votre projet et qu’il est recommandé de commencer à définir vos propres paramètres à mesure que votre projet évolue. La configuration MRTK n’est pas modifiable pendant le mode lecture.

Profil de configuration MRTK

Tous les profils « par défaut » pour Mixed Reality Toolkit sont disponibles dans le projet sdk dans le dossier Assets/MRTK/SDK/Profiles.

Important

DefaultHoloLens2ConfigurationProfile est optimisé pour HoloLens 2. Pour plus d’informations, consultez Profils .

Lorsque vous ouvrez le profil de configuration principal Mixed Reality Toolkit, vous verrez l’écran suivant dans l’inspecteur :

Scène de configuration MRTK

Si vous sélectionnez une ressource MixedRealityToolkitConfigurationProfile sans MixedRealityToolkit dans la scène, il vous demande si vous souhaitez que MRTK configure automatiquement la scène pour vous. Il s’agit d’un élément facultatif ; Toutefois, il doit y avoir un objet MixedRealityToolkit actif dans la scène pour accéder à tous les écrans de configuration.

Cela héberge la configuration active actuelle du runtime pour le projet.

À partir de là, vous pouvez accéder à tous les profils de configuration du MRTK, notamment :

Ces profils de configuration sont détaillés ci-dessous dans leurs sections pertinentes :


Paramètres d’expérience

Situé dans la page de configuration principale Mixed Reality Toolkit, ce paramètre définit l’opération par défaut de l’échelle de l’environnement Mixed Reality pour votre projet.

Paramètres d’experiance

Paramètres de caméra

Les paramètres de la caméra définissent la configuration de l’appareil photo pour votre projet Mixed Reality, en définissant les paramètres génériques de découpage, de qualité et de transparence.

Profil de l’appareil photo

Paramètres système d’entrée

Le projet Mixed Reality fournit un système d’entrée robuste et bien entraîné pour le routage de tous les événements d’entrée autour du projet sélectionnés par défaut.

Paramètres système d’entrée 1

Derrière le système d’entrée fourni par MRTK sont plusieurs autres systèmes, ceux-ci aident à conduire et à gérer les inter-tissages complexes nécessaires pour extraire la complexité d’un framework multiplateforme/réalité mixte.

Paramètres système d’entrée 2

Chacun des profils individuels est détaillé ci-dessous :


Paramètres de visualisation des limites

Le système de limites traduit la limite perçue signalée par les plateformes sous-jacentes et le système gardien. La configuration du visualiseur de limites vous permet d’afficher automatiquement la limite enregistrée dans votre scène par rapport à la position de l’utilisateur. La limite réagit également / met à jour en fonction de l’emplacement où les téléporteurs utilisateur dans la scène.

Paramètres de visualisation englobants

Sélection du système de téléportation

Le projet Mixed Reality fournit un système de téléportation complet pour la gestion des événements de téléportation dans le projet sélectionné par défaut.

Paramètres système de téléportation

Paramètres de sensibilisation spatiale

Le projet Mixed Reality fournit un système de sensibilisation spatiale reconstruit pour travailler avec des systèmes d’analyse spatiale dans le projet sélectionné par défaut.

Paramètres de sensibilisation spatiale 1

Mixed Reality configuration de la prise en charge spatiale du kit de ressources vous permet de personnaliser le démarrage du système, qu’il soit automatiquement lorsque l’application démarre ou ultérieurement, ainsi que de définir les étendues du champ d’affichage.

Il vous permet également de configurer les paramètres de maillage et de surface, en personnalisant davantage la façon dont votre projet comprend l’environnement autour de vous.

Cela s’applique uniquement aux appareils qui peuvent fournir un environnement analysé.

Paramètres de sensibilisation spatiale 2

Paramètres de diagnostic

Une fonctionnalité facultative mais très utile de MRTK est la fonctionnalité de diagnostic de plug-in.

Paramètres de diagnostic

Le profil de diagnostic fournit plusieurs systèmes simples à surveiller pendant que le projet est en cours d’exécution, y compris un commutateur activé/désactivé pratique pour activer /désactiver le panneau d’affichage dans la scène.

Paramètres de diagnostic Paramètres système 2

Paramètres du système de scène

MRTK fournit ce service facultatif pour vous aider à gérer le chargement et le déchargement de scènes additives complexes. Pour décider si le système de scène serait adapté à votre projet, lisez le guide de Prise en main du système de scène.

Paramètres du système de scène 1

Paramètres de services supplémentaires

L’un des domaines les plus avancés de Mixed Reality Toolkit est son implémentation de modèle de localisateur de service qui permet l’inscription de n’importe quel « service » avec l’infrastructure. Cela permet à l’infrastructure d’être à la fois étendue avec de nouvelles fonctionnalités/ systèmes facilement, mais permet également aux projets de tirer parti de ces fonctionnalités pour inscrire leurs propres composants runtime.

Tout service inscrit obtient toujours l’avantage complet de tous les événements Unity, sans surcharge et coût de l’implémentation d’un monoBehaviour ou de modèles singleton clunky. Cela permet des composants C# purs sans surcharge de scène pour exécuter des processus de premier plan et d’arrière-plan, par exemple des systèmes de génération, une logique de jeu d’exécution ou pratiquement tout autre chose.

paramètres système supplémentaires

Paramètres des actions d’entrée

Les actions d’entrée permettent d’extraire toutes les interactions physiques et les entrées d’un projet d’exécution. Toutes les entrées physiques (à partir de contrôleurs / mains / souris / etc) sont traduites en une action d’entrée logique à utiliser dans votre projet d’exécution. Cela garantit que l’entrée provient, votre projet implémente simplement ces actions comme « Choses à faire » ou « Interagir avec » dans vos scènes.

Pour créer une action d’entrée, cliquez simplement sur le bouton « Ajouter une nouvelle action » et entrez un nom de texte convivial pour ce qu’il représente. Vous devez ensuite sélectionner un axe (le type de données) auquel l’action est destinée à transmettre, ou dans le cas de contrôleurs physiques, le type d’entrée physique auquel il peut être attaché, par exemple :

Contrainte d’axe Type de données Description Exemple d’utilisation
None Pas de données Utilisé pour une action ou un événement vide Déclencheur d’événements
Brut (réservé) object Paramètres réservés pour un usage ultérieur N/A
Digital bool Valeur booléenne activée ou désactivée pour les données de type Bouton contrôleur
Axe unique float Valeur de données de précision unique Entrée à plage, par exemple un déclencheur
Double axe Vector2 Date de type float double pour plusieurs axes Un pavé numérique ou un stick
Trois Dof position Vector3 Données de type positionnel à partir de 3 axes flottants Contrôleur de style de position 3D uniquement
Trois rotations Dof Quaternion Entrée rotationnelle uniquement avec 4 axes flottants Un contrôleur de style à trois degrés, par exemple un contrôleur Tableaux Go
Six Dof pose Mixed Reality (Vector3, Quaternion) Entrée de style de position et de rotation avec les composants Vector3 et Quaternion Un contrôleur de mouvement ou un pointeur

Les événements utilisant des actions d’entrée ne sont pas limités aux contrôleurs physiques et peuvent toujours être utilisés dans le projet pour que les effets d’exécution génèrent de nouvelles actions.

Notes

Les actions d’entrée sont l’un des rares composants qui ne sont pas modifiables au moment de l’exécution, il s’agit d’une configuration au moment de la conception uniquement. Ce profil ne doit pas être échangé alors que le projet s’exécute en raison de la dépendance du framework (et de vos projets) sur les ID générés pour chaque action.

Profil de configuration

Règles d’actions d’entrée

Les règles d’action d’entrée permettent de traduire automatiquement un événement déclenché pour une action d’entrée en différentes actions en fonction de sa valeur de données. Celles-ci sont gérées en toute transparence dans l’infrastructure et n’entraînent aucun coût de performances.

Par exemple, la conversion de l’événement d’entrée double axe unique d’un DPad dans le 4 « Dpad Up » / « DPad Down » / « Dpad Left » / « Dpad Right » (comme illustré dans l’image ci-dessous).

Cela peut également être effectué dans votre propre code. Toutefois, étant donné qu’il s’agissait d’un modèle très courant, le framework fournit un mécanisme pour effectuer cette opération « prête à l’emploi »

Les règles d’action d’entrée peuvent être configurées pour l’un des axes d’entrée disponibles. Toutefois, les actions d’entrée d’un type d’axe peuvent être traduites en une autre action d’entrée du même type d’axe. Vous pouvez mapper une action double axe à une autre action double axe, mais pas à une action numérique ou aucune.

Profil de règles d’action d’entrée


Configuration du pointeur

Les pointeurs sont utilisés pour piloter l’interactivité dans la scène à partir de n’importe quel appareil d’entrée, ce qui donne à la fois une direction et un test de positionnement avec n’importe quel objet d’une scène (qui a un collider attaché ou est un composant d’interface utilisateur). Les pointeurs sont automatiquement configurés par défaut pour les contrôleurs, les casques (regard/ focus) et l’entrée tactile/ souris.

Les pointeurs peuvent également être visualisés dans la scène active à l’aide de l’un des nombreux composants de ligne fournis par Mixed Reality Toolkit ou l’un de vos propres si elles implémentent l’interface MRTK IMixedRealityPointer.

Profil de pointeur d’entrée
  • Étendue pointante : détermine l’étendue globale de pointage pour tous les pointeurs, y compris le regard.
  • Pointage des masques de couche Raycast : détermine les calques sur lesquels les pointeurs sont raycast.
  • Déboguer les rayons pointants : assistance de débogage pour visualiser les rayons utilisés pour la raycasting.
  • Déboguer les couleurs des rayons pointants : ensemble de couleurs à utiliser pour la visualisation.
  • Préfabriqué de curseur de regard : permet de spécifier facilement un curseur de regard global pour n’importe quelle scène.

Il existe un bouton d’assistance supplémentaire pour accéder rapidement au fournisseur de regard afin de remplacer certaines valeurs spécifiques pour le regard si nécessaire.


Configuration des mouvements

Les mouvements sont une implémentation spécifique au système qui vous permet d’affecter des actions d’entrée aux différentes méthodes d’entrée « Mouvement » fournies par différents KITS SDK (par exemple, HoloLens).

Notes

L’implémentation actuelle des mouvements est destinée à HoloLens uniquement et sera améliorée pour d’autres systèmes, car ils sont ajoutés au Kit de ressources à l’avenir (aucune date pour le moment).

Configuration des mouvements

Commandes Speech

Comme les mouvements, certaines plateformes d’exécution fournissent également des fonctionnalités intelligentes de « reconnaissance vocale » avec la possibilité de générer des commandes pouvant être reçues par un projet Unity. Ce profil de configuration vous permet de configurer les éléments suivants :

  1. Paramètres généraux : « Comportement de démarrage » défini sur Démarrage automatique ou Démarrage manuel détermine s’il faut initialiser KeywordRecognizer au démarrage du système d’entrée ou laisser le projet décider quand initialiser le KeywordRecognizer. « Niveau de confiance de la reconnaissance » est utilisé pour initialiser l’API KeywordRecognizer d’Unity
  2. Commandes Vocales : inscrit les « mots » et les traduit en actions d’entrée qui peuvent être reçues par votre projet. Ils peuvent également être attachés aux actions de clavier si nécessaire.

Important

Actuellement, le système prend uniquement en charge la voix lors de l’exécution sur Windows 10 plateformes, par exemple HoloLens et Windows 10 bureau et sera amélioré pour d’autres systèmes, car ils sont ajoutés à MRTK à l’avenir (aucune date pour le moment).

Écrans de profil de configuration

Configuration du mappage du contrôleur

L’un des principaux écrans de configuration de Mixed Reality Toolkit est la possibilité de configurer et de mapper les différents types de contrôleurs qui peuvent être utilisés par votre projet.

L’écran de configuration ci-dessous vous permet de configurer l’un des contrôleurs actuellement reconnus par le kit de ressources.

Mappage du contrôleur

MRTK fournit une configuration par défaut pour les contrôleurs/systèmes suivants :

  • Souris (y compris prise en charge de la souris spatiale 3D)
  • Touch Screen
  • Manettes Xbox
  • contrôleurs de Windows Mixed Reality
  • Mouvements HoloLens
  • Contrôleurs de wand HTC Vive
  • Contrôleurs tactiles Tableaux
  • Contrôleur distant Actives
  • Appareils OpenVR génériques (utilisateurs avancés uniquement)

En cliquant sur l’image pour l’un des systèmes de contrôleur prédéfini, vous pouvez configurer une seule action d’entrée pour toutes ses entrées correspondantes, par exemple, voir l’écran de configuration du contrôleur Personnalisations Touch ci-dessous :

Écran de configuration du contrôleur

Il existe également un écran avancé pour configurer d’autres contrôleurs d’entrée OpenVR ou Unity qui ne sont pas identifiés ci-dessus.


Paramètres de visualisation du contrôleur

Outre le mappage du contrôleur, un profil de configuration distinct est fourni pour personnaliser la façon dont vos contrôleurs sont présentés dans vos scènes.

Cela peut être configuré sur un « Global » (toutes les instances d’un contrôleur pour une main spécifique) ou spécifiques à un type/main de contrôleur individuel.

MRTK prend également en charge les modèles de contrôleur sdk natifs pour Windows Mixed Reality et OpenVR. Celles-ci sont chargées en tant que GameObjects dans votre scène et positionnées à l’aide du suivi du contrôleur de la plateforme.

Si votre représentation de contrôleur dans la scène doit être décalée de la position du contrôleur physique, il suffit de définir ce décalage par rapport au préfabriqué du modèle de contrôleur (par exemple, définir la position de transformation du préfabriqué du contrôleur avec une position de décalage).

Profil de visualisation

Utilitaires d’éditeur

Les utilitaires suivants fonctionnent uniquement dans l’éditeur et sont utiles pour améliorer la productivité du développement.

Utilitaires de configuration de l’éditeur MRTK

Inspecteurs de service

Les inspecteurs de service sont une fonctionnalité d’éditeur uniquement qui génère des objets en scène représentant des services actifs. La sélection de ces objets affiche des inspecteurs qui offrent des liens de documentation, un contrôle sur les visualisations de l’éditeur et un aperçu de l’état du service.

Inspecteurs de service

Vous pouvez activer les inspecteurs de service en vérifiant Utiliser les inspecteurs de service sous Paramètres de l’éditeur dans le profil de configuration.

Convertisseur de mémoire tampon de profondeur

Le partage de la mémoire tampon de profondeur avec certaines plateformes de réalité mixte peut améliorer la stabilisation de l’hologramme. Par exemple, la plateforme Windows Mixed Reality peut modifier la scène rendue par pixel pour tenir compte des mouvements subtils de la tête pendant le temps nécessaire pour afficher un cadre. Toutefois, ces techniques nécessitent des mémoires tampons de profondeur avec des données précises pour savoir où et la distance de géométrie de l’utilisateur.

Pour garantir qu’une scène affiche toutes les données nécessaires à la mémoire tampon de profondeur, les développeurs peuvent désactiver la fonctionnalité Mémoire tampon de profondeur de rendu sous Paramètres de l’éditeur dans le profil de configuration. Cela prend la mémoire tampon de profondeur actuelle et la rend en tant que couleur à la vue de scène en appliquant un effet post-traitement, DepthBufferRendererà la caméra principale.

L’utilitaire de mémoire tamponde profondeur de rendu Le cylindre bleu de la scène a un matériau avec ZWrite désactivé afin qu’aucune donnée de profondeur n’est écrite

Modification des profils au moment de l’exécution

Il est possible de mettre à jour les profils au moment de l’exécution, et il existe généralement deux scénarios différents et des moments dans lesquels cela est utile :

  1. Changement de profil d’initialisation MRTK prédéfini : au démarrage, avant l’initialisation de MRTK et le profil devient actif, en remplaçant le profil non encore utilisé pour activer/désactiver différentes fonctionnalités en fonction des fonctionnalités de l’appareil. Par exemple, si l’expérience s’exécute en VR qui n’a pas de matériel de mappage spatial, il n’est probablement pas judicieux d’activer le composant de mappage spatial.
  2. Commutateur de profil actif : après le démarrage, après l’initialisation de MRTK et qu’un profil est devenu actif, échangez le profil actuellement utilisé pour modifier la façon dont certaines fonctionnalités se comportent. Par exemple, il peut y avoir une sous-expérience spécifique dans l’application qui souhaite des pointeurs à distance complètement supprimés.

Commutateur de profil d’initialisation MRTK prédéfini

Cela peut être accompli en attachant un MonoBehaviour (exemple ci-dessous) qui s’exécute avant l’initialisation MRTK (c’est-à-dire Éveil()). Notez que le script (c’est-à-dire l’appel à SetProfileBeforeInitialization) doit être exécuté plus tôt que le MixedRealityToolkit script, ce qui peut être obtenu en définissant les paramètres de l’ordre d’exécution du script.

using Microsoft.MixedReality.Toolkit;
using UnityEngine;

/// <summary>
/// Sample MonoBehaviour that will run before the MixedRealityToolkit object, and change
/// the profile, so that when MRTK initializes it uses the profile specified below
/// rather than the one that is saved in its scene.
/// </summary>
/// <remarks>
/// Note that this script must have a higher priority in the script execution order compared
/// to that of MixedRealityToolkit.cs. See https://docs.unity3d.com/Manual/class-MonoManager.html
/// for more information on script execution order.
/// </remarks>
public class PreInitProfileSwapper : MonoBehaviour
{

    [SerializeField]
    private MixedRealityToolkitConfigurationProfile profileToUse = null;

    private void Awake()
    {
        // Here you could choose any arbitrary MixedRealityToolkitConfigurationProfile (for example, you could
        // add some platform checking code here to determine which profile to load).
        MixedRealityToolkit.SetProfileBeforeInitialization(profileToUse);
    }
}

Au lieu de « profileToUse », il est possible d’avoir un ensemble arbitraire de profils qui s’appliquent à des plateformes spécifiques (par exemple, une pour HoloLens 1, une pour VR, une pour HoloLens 2, etc.). Il est possible d’utiliser différents autres indicateurs (par exemple https://docs.unity3d.com/ScriptReference/SystemInfo.html, ou si la caméra est opaque/transparente) pour déterminer quel profil charger.

Commutateur de profil actif

Pour ce faire, définissez la MixedRealityToolkit.Instance.ActiveProfile propriété sur un nouveau profil en remplaçant le profil actif.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Notez que lors de la définition ActiveProfile pendant l’exécution, la destruction des services en cours d’exécution se produit après le dernier LateUpdate() de tous les services, ainsi que l’instanciation et l’initialisation des services associés au nouveau profil se produisent avant la première mise à jour() de tous les services.

Une hésitation d’application notable peut se produire pendant ce processus. En outre, tout script avec une priorité supérieure au MixedRealityToolkit script peut entrer sa mise à jour avant que le nouveau profil soit correctement configuré. Pour plus d’informations sur la priorité de script, consultez les paramètres de l’ordre d’exécution de script.

Dans le processus de changement de profil, la caméra d’interface utilisateur existante reste inchangée, ce qui garantit que les composants de l’interface utilisateur Unity qui nécessitent un canevas fonctionnent toujours après le commutateur.

Voir aussi