Exemple World Locked Physics.

L’exemple Physics Beam offre quelques expériences physiques virtuelles mettant à profit le système de coordonnées verrouillé sur le monde de World Locking Tools.

Ce qui s’est passé

Sur HoloLens, la relation entre une ancre spatiale et la tête ou d’autres ancres spatiales peut changer à tout moment, en raison des données de capteur entrantes, ou même du retraitement de données existantes.

Les ancres spatiales Unity réagissent aux modifications apportées à la pose de l’ancre spatiale sous-jacente en faisant glisser le GameObject attaché en même temps. Ce déplacement entraîne des difficultés pour la simulation physique :

  • Étant donné que la pose de GameObject avec ancre spatiale est définie explicitement par l’ancre spatiale de chaque trame, elle ne peut pas être définie par simulation (par exemple, momentum).
  • Étant donné que l’ancre spatiale met fréquemment à jour la pose de son GameObject, elle ne semble pas être au repos par rapport à d’autres RigidBodies fixes.
  • En raison des décalages implicites du système de coordonnées d’Unity, lorsque les ancres spatiales ajustent les coordonnées des hologrammes statiques pour les maintenir fixes par rapport au monde réel, les calculs de physique tels que les itinéraires et les trajectoires seront faussés. Par exemple, un projectile visant parfaitement un hologramme le manquera quand même si l’hologramme est repositionné par son ancre spatiale entre le calcul de la trajectoire et l’arrivée sur la cible.

Lorsque les relations entre les ancres spatiales mesurées et les objets virtuels visibles qui leur sont verrouillés deviennent incohérents, au lieu d’ajuster les objets virtuels comme les ancres spatiales d’Unity, World Locking Tools ajuste la transformation de tête pour réduire les artefacts perçus de ces incohérences. Cela permet aux objets virtuels d’apparaître cohérents dans un espace de coordonnées stable, éliminant ainsi les problèmes susmentionnés.

Génération de l’exemple

L’exemple requiert la capacité SpatialPerception. La capacité Microphone est également requise pour les commandes vocales.

Cet exemple nécessite l’ajout des couches suivantes aux balises & calques du projet :

  • En pilier
  • SpatialMapping

Exécution de la démonstration

Affichage tête haute des commandes

Cet affichage tête haute de base n’est pas spécifique à l’exemple Physics Beam, mais permet uniquement le contrôle du runtime du comportement de World Locking Tools pour explorer ses fonctionnalités. Il est disponible en tant que point de départ pour le développement sur n’importe quelle application à l’aide de World Locking Tools, comme décrit dans la section Configuration initiale de World Locking Tools.

Capture d’écran des exemples HUD

Les statistiques de diagnostic sont affichées par défaut, mais elles peuvent être désactivées à partir de l’affichage tête haute de contrôle.

Boutons radio de mode

À tout moment, l’exemple peut se trouver dans l’un des modes suivants :

  • Inactif : l’exemple physique n’est pas en train de traiter l’entrée. L’affichage tête haute et le menu des boutons radio, bien sûr, continuent de traiter les entrées.

  • Lancer une fléchette : une trajectoire est calculée sur la base des lois physiques de base, et affichée. L’arc affiché montre la trajectoire que suivra un projectile tiré (par un geste de sélection). La fléchette lancée suivra une trajectoire balistique, rebondissant sur toutes les surfaces de collision, y compris les mailles de reconstruction spatiale (SR) qu’elle heurte.

    Ces fléchettes sont « amovibles », comme décrit ci-dessous.

  • Ajouter des piliers : lors d’un geste de sélection, un rayon est projeté dans le monde dans la direction indiquée. S’il trouve une surface engendrant des collisions, un pilier vertical est ajouté à la scène à cet endroit.

    Chaque pilier ajouté peut être heurté, et peut servir de support de faisceau, comme décrit ci-dessous. Toutefois, il existe deux types de piliers ajoutés :

    • Si le pilier est posé sur une surface « amovible », alors le pilier est physiquement simulé (par exemple, il peut être renversé).
    • Autrement, le pilier peut être heurté, mais il est statique.

    Dans les faits, cette règle signifie que si un pilier est ajouté sur la maille SR, il sera statique, mais que sinon, il sera dynamique.

    Les piliers sont « amovibles ».

  • Ajouter un faisceau : lors de la première sélection, un rayon est projeté dans la scène pour trouver le premier point d’extrémité du faisceau. Ensuite, lorsque le rayon de sélection est déplacé dans la scène, une ligne est tracée entre le premier point d’extrémité et le point d’extrémité actuel. Le deuxième geste de sélection crée un faisceau s’étirant entre le premier point d’extrémité et le point d’extrémité actuel.

    L’équilibrage du faisceau avec les points d’extrémité sur les piliers nécessite clairement un espace dans lequel les piliers d’extrémité resteront fixes les uns par rapport aux autres.

    Les faisceaux sont « amovibles ».

  • Supprimer des objets : lors de la sélection, si l’objet de lancer de rayon est « amovible », il est supprimé de la scène. Tous les objets pris en charge par l’objet supprimé sont alors inclus.