Aller au contenu principal

Curseurs « Inverse3 » et « VerseGrip »

Le pack « Haply » d’Inverse Unity propose des composants de curseur spécialisés pour les appareils « Inverse3 » et « VerseGrip », permettant un contrôle et une interaction précis dans les environnements Unity. Ces composants, « Curseur Inverse3 » et « Curseur VerseGrip », sont conçus pour ajuster dynamiquement la position et la rotation des objets du jeu en fonction des données provenant des manettes correspond antes.

Vue d'ensemble​

Les composants de curseur font le lien entre les appareils physiques Haply et les objets de jeu virtuels dans Unity, en convertissant les données de position et de rotation des appareils en mouvements et orientations des objets de jeu. Cette conversion permet aux utilisateurs d'interagir avec l'environnement virtuel de manière intuitive, en traduisant leurs mouvements physiques en réactions virtuelles.

Classe CursorBase​

Au cœur des composants de curseur se trouve la classe CursorBase, qui fournit les fonctionnalités de base communes à Inverse3Cursor et VerseGripCursor. Cela comprend la gestion de l'association avec l'appareil, l'instanciation du modèle et le contrôle de la visibilité.

Propriétés et méthodes clés​

  • Périphérique: Associe le curseur à l'appareil qui le contrôle, défini automatiquement lors de l'exécution.
  • ModèlePrefab : Spécifie un élément préfabriqué (prefab) pour le modèle de curseur, instancié automatiquement en tant qu'enfant de ModelParent.
  • ModelParent: Définit la transformation parente du préfabriqué de modèle instancié. Si elle n'est pas définie, elle prend par défaut la transformation du curseur.
  • Modèle : Fait directement référence à un modèle de curseur existant dans la scène. Si ce champ est défini, l'instanciation de ModelPrefab est ignorée.
  • HideControllerModel: Contrôle la visibilité du modèle du curseur, permettant de l'afficher ou de le masquer de manière dynamique en fonction des besoins du jeu.
  • Rayon: Représente le rayon du modèle de curseur s'il s'agit d'une sphère, calculé à partir des limites du maillage (mesh) du modèle.
  • Douceur : PositionSmoothness et RotationSmoothness offrent des options permettant de lisser la position et la rotation du curseur, ce qui améliore l'expérience utilisateur.

Remarque : il est essentiel de référencer correctement le modèle de curseur dans le composant Curseur afin d'éviter tout comportement inattendu.

curseurs

Le modèle de curseur par défaut, créé à l'aide du Haptic Rig, comporte des points colorés représentant les trois axes : Avant (bleu), Haut (vert) et Droite (rouge). Cette conception facilite la visualisation de l'orientation de l'appareil dans l'environnement virtuel. Pour un VerseGrip calibré, l'axe Avant doit être aligné sur la direction de pointage, et l'axe Haut sur la face supérieure.

Composant de curseur Inverse3​

Inverse3Cursor est destiné à l'appareil Inverse3 et met à jour la position locale du curseur dans Unity afin de refléter la position physique de l'appareil.

Le paramètre PositionSmoothness permet de régler le lissage des mouvements du curseur, ce qui améliore l'expérience utilisateur en contrôlant la réactivité du curseur aux mouvements physiques.

Composant de curseur VerseGrip​

VerseGripCursor étend les fonctionnalités à l'appareil VerseGrip, en mettant à jour la rotation du curseur dans Unity afin qu'elle corresponde à la rotation physique de l'appareil.

Le paramètre useDeviceLocalSpace permet de choisir l'alignement du curseur entre les orientations du monde et celles de l'objet parent, offrant ainsi une plus grande souplesse de conception.

Le paramètre RotationSmoothness contrôle l'fluidité de la rotation du curseur, permettant aux développeurs d'ajuster avec précision la réactivité du curseur aux changements d'orientation physique du VerseGrip.

Détails de mise en œuvre​

Lors de l'initialisation, les composants de curseur instancient le ModelPrefab désigné comme enfant de ModelParent si Model n'est pas attribué, ce qui garantit une représentation visuelle dans la scène. Ces composants se synchronisent avec leurs contrôleurs d'appareils associés, en ajustant la position et la rotation du curseur en temps réel en fonction des mouvements physiques de l'appareil.

Les deux composants peuvent être associés au même GameObject pour contrôler sa position et sa rotation, ou à des GameObjects distincts pour différents cas d'utilisation, offrant ainsi aux développeurs un outil polyvalent pour créer des expériences haptiques immersives dans Unity.