Guide de configuration de profil MRTK

la réalité mixte Shared Computer Toolkit centralise la plus grande partie de la configuration requise pour gérer la boîte à outils le plus possible (à l’exception des « choses » du runtime réel).

Ce guide est une procédure pas à pas simple pour chacun des écrans de profil de configuration actuellement disponibles pour la boîte à outils.

le profil de configuration principale de la réalité mixte Shared Computer Toolkit

le profil de configuration principal, qui est attaché au GameObject MixedRealityToolkit dans votre scène, fournit le point d’entrée principal pour le Shared Computer Toolkit dans votre projet.

Notes

la réalité mixte Shared Computer Toolkit « verrouille » les écrans de configuration par défaut pour s’assurer que vous avez toujours un point de départ commun pour votre projet et il est recommandé de commencer à définir vos propres paramètres à mesure que votre projet évolue. La configuration MRTK n’est pas modifiable en mode lecture.

Profil de configuration MRTK

tous les profils « par défaut » pour la réalité mixte Shared Computer Toolkit se trouvent dans le projet SDK dans le dossier ressources/MRTK/kit de développement logiciel (sdk)/profils.

Important

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

lorsque vous ouvrez le profil de Configuration principale de la réalité mixte Shared Computer Toolkit, l’écran suivant s’affiche dans l’inspecteur :

MRTK configuration scene

Si vous sélectionnez un élément multimédia MixedRealityToolkitConfigurationProfile sans MixedRealityToolkit dans la scène, vous êtes invité à indiquer si vous souhaitez que le MRTK configure automatiquement la scène pour vous. Toutefois, cette option est facultative, mais un objet MixedRealityToolkit actif doit être présent dans la scène pour accéder à tous les écrans de configuration.

Cela abrite la configuration active Runtime actuelle pour le projet.

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

Ces profils de configuration sont détaillés ci-dessous dans les sections qui s’y rapportent :


Paramètres d’expérience

situé sur la page de configuration principale de la réalité mixte Shared Computer Toolkit, ce paramètre définit l’opération par défaut de l’échelle de l’environnement de la réalité mixte pour votre projet.

Experiance settings

Paramètres de caméra

Les paramètres de l’appareil photo définissent la façon dont l’appareil photo sera configuré pour votre projet de réalité mixte, définissant les paramètres génériques de découpage, de qualité et de transparence.

Camera Profile

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

la Project de la réalité mixte fournit un système d’entrée robuste et bien formé pour le routage de tous les événements d’entrée dans le projet, qui est sélectionné par défaut.

Input System settings 1

Derrière le système d’entrée fourni par le MRTK sont plusieurs autres systèmes, ils aident à piloter et à gérer les intertissages complexes nécessaires à l’abstraction de la complexité d’une infrastructure de réalité multiplateforme/de réalité mixte.

Input System settings 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 le système de limite/Guardian des plateformes sous-jacentes. La configuration du visualiseur de limites vous donne la possibilité d’afficher automatiquement la limite enregistrée dans votre scène, en fonction de la position de l’utilisateur. La limite réagit également/met à jour en fonction de l’endroit où l’utilisateur téléporte dans la scène.

Boundry Visualization Settings

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

la réalité mixte Project fournit un système de téléportage complet pour la gestion des événements de téléportage dans le projet, qui est sélectionné par défaut.

Teleport System settings

Paramètres de sensibilisation spatiale

la Project de la réalité mixte fournit un système de sensibilisation spatiale reconstruit pour travailler avec des systèmes d’analyse spatiale dans le projet, qui est sélectionné par défaut.

Spatial Awareness settings 1

la réalité mixte Shared Computer Toolkit la configuration de la sensibilisation spatiale vous permet de personnaliser le mode de démarrage du système, si elle est exécutée automatiquement au démarrage de l’application ou par la suite, ainsi que la définition des étendues pour le champ de la vue.

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

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

Spatial Awareness settings 2

Paramètres de diagnostic

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

Diagnostics settings

Le profil de diagnostic fournit plusieurs systèmes simples à surveiller pendant l’exécution du projet, y compris un commutateur d’activation/désactivation pratique pour activer/désactiver le panneau d’affichage dans la scène.

Diagnostics settings System settings 2

Paramètres système de la scène

Le MRTK fournit ce service facultatif pour vous aider à gérer le chargement/déchargement complexe des scènes. Pour déterminer si le système de scène est adapté à votre projet, lisez le Guide de prise en main du système de scène.

Scene System settings 1

Paramètres des services supplémentaires

l’une des zones les plus avancées de la réalité mixte Shared Computer Toolkit est son implémentation de modèle de localisateur de service qui permet d’inscrire n’importe quel « service » avec l’infrastructure. Cela permet d’étendre facilement le Framework avec de nouvelles fonctionnalités et de nouveaux systèmes, mais permet également aux projets de tirer parti de ces fonctionnalités pour inscrire leurs propres composants d’exécution.

Tout service inscrit obtient toujours l’avantage total de tous les événements Unity, sans la surcharge et le coût de l’implémentation d’un monocomportement ou de modèles de singletons sourds. Cela permet aux composants C# purs sans surcharge de scène d’exécuter à la fois les processus de premier plan et d’arrière-plan, par exemple les systèmes de génération, la logique du jeu d’exécution ou pratiquement tout autre.

additional System settings

Paramètres des actions d’entrée

Les actions d’entrée permettent d’extraire les interactions physiques et les entrées d’un projet d’exécution. Toutes les entrées physiques (des contrôleurs/mains/souris, etc.) sont traduites en une action d’entrée logique pour une utilisation dans votre projet d’exécution. Cela garantit quel que soit l’emplacement d’origine de l’entrée, votre projet implémente simplement ces actions comme « choses à faire » ou « interagir avec » dans vos scènes.

Pour créer une nouvelle action d’entrée, cliquez simplement sur le bouton « Ajouter une nouvelle action », puis entrez un nom convivial pour ce qu’elle représente. Vous devez alors uniquement sélectionner un axe (le type de données) que l’action doit transmettre, ou, dans le cas de contrôleurs physiques, le type d’entrée physique auquel elle peut être jointe, par exemple :

Contrainte d’axe Type de données Description Exemple d’utilisation
Aucune Pas de données Utilisé pour une action ou un événement vide Déclencheur d’événement
Brut (réservé) object Paramètres réservés pour un usage ultérieur N/A
Digital bool Données de type Boolean on ou OFF Bouton de contrôleur
Axe unique float Une valeur de données de précision unique Une entrée étendue, par exemple un déclencheur
Axe double Vector2 Une date de type float double pour plusieurs axes Un dpad ou un stick analogique
Trois positions DDL Vector3 Données de type positionnel de à l’aide de l’axe 3 flottant contrôleur de style de position 3D uniquement
Rotation à trois DDL Quaternion Entrée de rotation uniquement avec 4 axes à virgule flottante Un contrôleur de style à trois degrés, par exemple Oculus Go Controller
Six DDL Pose de réalité mixte (Vector3, Quaternion) Entrée de style de position et de rotation avec les composants Vector3 et Quaternion Contrôleur de mouvement ou pointeur

Les événements qui utilisent 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 de Runtime génèrent de nouvelles actions.

Notes

Les actions d’entrée sont l’un des quelques composants qui ne peuvent pas être modifiés au moment de l’exécution ; ils ne sont qu’une configuration au moment du Design. Ce profil ne doit pas être échangé pendant que le projet est en cours d’exécution en raison de la dépendance entre l’infrastructure (et vos projets) et l’ID généré pour chaque action.

Configuration Profile

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 le cadre et n’entraînent pas de coûts de performances.

Par exemple, la conversion de l’événement d’entrée d’un seul axe double à partir d’un DPad dans en 4 actions « dpad up »/« DPad OFF »/« dpad Left »/« dpad Right » correspondantes (comme indiqué dans l’image ci-dessous).

Cela peut également se faire dans votre propre code. Toutefois, comme il s’agit d’un modèle très courant, le Framework fournit un mécanisme permettant d’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 à deux axes sur une autre action d’axe double, mais pas sur une action numérique ou aucune.

Profil des 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 dans une scène (qui a un conflit attaché ou est un composant d’interface utilisateur). Les pointeurs sont configurés automatiquement par défaut pour les contrôleurs, les casques (en regard/Focus) et l’entrée de souris/toucher.

les pointeurs peuvent également être visualisés dans la scène active à l’aide de l’un des nombreux composants de ligne fournis par la réalité mixte Shared Computer Toolkit, ou de l’un de vos propres composants s’ils implémentent l’interface MRTK IMixedRealityPointer.

Input Pointer Profile
  • Étendue de pointage : détermine l’étendue de pointage globale pour tous les pointeurs, y compris le point de regard.
  • Pointer les masques de couche Raycast : détermine les pointeurs de couches à Raycast.
  • Déboguer les rayons de pointage : un programme d’assistance de débogage pour visualiser les rayons utilisés pour Raycasting.
  • Déboguer les rayons de pointage de couleur : un ensemble de couleurs à utiliser pour la visualisation.
  • Curseur en regard Prefab : permet de spécifier facilement un curseur en forme de pointage global pour une scène.

Il existe un autre bouton d’assistance pour accéder rapidement au fournisseur de regard pour remplacer des valeurs spécifiques pour le point de regard, si nécessaire.


Configuration des mouvements

Les gestes sont une implémentation spécifique au système qui vous permet d’affecter des actions d’entrée aux diverses méthodes d’entrée de « geste » fournies par divers kits de développement logiciel (par exemple, HoloLens).

Notes

l’implémentation actuelle des mouvements est destinée au HoloLens uniquement et sera améliorée pour les autres systèmes, car ils seront ajoutés à la Shared Computer Toolkit à l’avenir (aucune date pour le moment).

Gesture configuration

Commandes vocales

À l’instar des gestes, certaines plateformes Runtime fournissent également une fonctionnalité de « parole à texte » intelligente, avec la possibilité de générer des commandes qui peuvent être reçues par un projet Unity. Ce profil de configuration vous permet de configurer les éléments suivants :

  1. général Paramètres-« 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 reconnaissance » est utilisé pour initialiser l' API KeywordRecognizer de l’unité
  2. Commandes vocales : enregistre les « mots » et les convertit en actions d’entrée qui peuvent être reçues par votre projet. Ils peuvent également être joints aux actions du clavier, si nécessaire.

Important

le système ne prend actuellement en charge la reconnaissance vocale que lorsqu’il s’exécute sur Windows 10 plateformes, par exemple HoloLens et Windows 10 desktop et sera amélioré pour d’autres systèmes à mesure qu’ils sont ajoutés à MRTK à l’avenir (aucune date pour le moment).

Configuration Profile screens

Configuration du mappage du contrôleur

l’un des écrans de configuration principaux pour la réalité mixte Shared Computer 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 les contrôleurs actuellement reconnus par la boîte à outils.

Controller Mapping

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

  • Souris (y compris la prise en charge de la souris spatiale 3D)
  • Touch Screen
  • Manettes Xbox
  • contrôleurs de Windows Mixed Reality
  • HoloLens Mouvements
  • Contrôleurs à baguettes vives HTC
  • Contrôleurs tactiles Oculus
  • Contrôleur distant Oculus
  • Appareils OpenVR génériques (utilisateurs expérimentés uniquement)

En cliquant sur l’image de l’un des systèmes de contrôleur prédéfinis, vous pouvez configurer une seule action d’entrée pour toutes les entrées correspondantes. par exemple, consultez l’écran de configuration du contrôleur tactile Oculus ci-dessous :

Controller config screen

Il existe également un écran avancé pour la configuration 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

En plus du mappage de 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é à un « global » (toutes les instances d’un contrôleur pour une main spécifique) ou spécifique à un type ou à une main de contrôleur individuel.

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

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

Visualization profile

Utilitaires de l’é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 dans la scène représentant des services actifs. La sélection de ces objets permet d’afficher les inspecteurs qui proposent des liens vers la documentation, de contrôler les visualisations de l’éditeur et de comprendre l’état du service.

Service Inspectors

vous pouvez activer les inspecteurs de service en activant la case à cocher utiliser les inspecteurs de service sous éditeur Paramètres 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 des hologrammes. par exemple, la plateforme Windows Mixed Reality peut modifier la scène rendue par pixel pour tenir compte des mouvements de têtes subtiles pendant le temps nécessaire au rendu d’une image. Toutefois, ces techniques requièrent des tampons de profondeur avec des données précises pour savoir où et dans quelle mesure la géométrie provient de l’utilisateur.

pour s’assurer qu’une scène effectue le rendu de toutes les données nécessaires dans le tampon de profondeur, les développeurs peuvent basculer la fonctionnalité de mémoire tampon de profondeur de rendu sous éditeur Paramètres dans le profil de Configuration. Cela prend la mémoire tampon de profondeur actuelle et l’affiche en couleur dans l’affichage scène en appliquant un effet de suivi, DepthBufferRenderer à l’appareil photo principal.

Utilitaire de tampon de profondeur de rendu le cylindre bleu dans la scène a un matériau avec ZWrite désactivé, donc 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 y a généralement deux scénarios et périodes différents dans lesquels cela est utile :

  1. Commutateur de configuration d’initialisation avant MRTK: au démarrage, avant l’initialisation du MRTK, le profil devient actif, en remplaçant le profil qui n’est pas encore utilisé pour activer ou désactiver les 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, une fois que le MRTK est initialisé 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 que les pointeurs les plus éloignés soient complètement supprimés.

Commutateur de profil d’initialisation de pré MRTK

Pour ce faire, vous pouvez attacher un monocomportement (exemple ci-dessous) qui s’exécute avant l’initialisation MRTK (c.-à-d. éveillé ()). Notez que le script (c’est-à-dire l’appel à SetProfileBeforeInitialization ) doit être exécuté avant le MixedRealityToolkit script, ce qui peut être effectué en définissant des paramètres d’ordre d’exécution de script.

using Microsoft.MixedReality.Toolkit;
using UnityEngine;

/// <summary>
/// Sample MonoBehaviour that will run before the MixedRealityToolkit object, and change
/// the profile, so that when the 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 d’autres indicateurs (par exemple https://docs.unity3d.com/ScriptReference/SystemInfo.html , ou si l’appareil photo est opaque/transparent), pour déterminer le profil à charger.

Commutateur de profil actif

Pour ce faire, vous pouvez affecter MixedRealityToolkit.Instance.ActiveProfile à la propriété un nouveau profil qui remplace le profil actif.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Remarque Lorsque vous définissez au moment de l' ActiveProfile exécution, la destruction des services en cours d’exécution se produit après le dernier LateUpdate () de tous les services, et 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 au cours de ce processus. En outre, tout script avec une priorité plus élevée que le MixedRealityToolkit script peut entrer dans sa mise à jour avant que le nouveau profil soit correctement configuré. Pour plus d’informations sur la priorité de script, consultez paramètres de l’ordre d’exécution des scripts .

Dans le processus de basculement de profil, l’appareil photo de l’interface utilisateur existante reste inchangé, ce qui garantit que les composants de l’interface utilisateur Unity qui nécessitent un canevas fonctionnent toujours après le commutateur.

Voir aussi