Aller au contenu principal

← Retour à la page d'index

Journal des modifications 2.1.1

Dépendances​

  • Mise à jour de haply-inverse-c.dll vers la version 2.1.1 (nécessite Inverse SDK >= 2.1)
  • Mise à jour de Haply.Inverse.dll vers la version 2.1.1
  • Ajout de com.unity.xr.core-utils version 2.3.0
attention

La compatibilité avec les versions Unity antérieures à 2022.1.0f1 n'est plus assurée. Veuillez passer à une version ultérieure si vous rencontrez des problèmes de compatibilité.

Changements incompatibles​

  • Inverse3 et VerseGrip transmettent device comme premier argument de l'événement ConnectionStateChanged
    • ConnectionStateChanged(state, prevState) > ConnectionStateChanged(device, state, prevState)
    • ConnectionStateChangedAsync(state, prevState) > ConnectionStateChangedAsync(device, state, prevState)
  • La propriété State de DeviceMapper est désormais en lecture seule.

Nouvelles fonctionnalités​

  • Le composant Inverse3Body applique l'orientation du corps d'un appareil Inverse3 à un GameObject spécifié.
  • Inverse3 :
    • Device Data (inspecteur) affiche ControlMode ainsi que la dernière Force, Position ou Angles envoyée à l'appareil.
    • JointsAngles et JointsAngularVelocity.
    • Powered indique si l'appareil est actuellement alimenté.
    • L'événement Unity PowerSupplyStatusChanged est déclenché à chaque changement de l'état de l'alimentation.
    • Orientation obtient l'orientation actuelle de l'appareil Inverse3.
    • L'événement OrientationChangedAsync est déclenché à chaque changement de l'orientation du corps.
    • RequestOrientation() permet de demander manuellement l'orientation du corps.
    • ControlMode obtient le mode de contrôle actuel (CursorForce, CursorPosition, JointsTorques, JointsAngles).
    • L'événement Unity ControlModeChanged est déclenché à chaque changement du mode de contrôle.
    • ForceOutput, PositionOutput, JointsTorqueOutput et JointsAnglesOutput obtiennent les sorties actuelles.
    • Release() réinitialise le contrôle de l'appareil en envoyant une force nulle (remplace TryResetForce()).
    • CoordinateConverter permet de définir les paramètres de conversion de coordonnées au moyen d'un fichier prédéfini ou d'une valeur directe.
    • ErrorEvent est déclenché (sur le thread principal) lorsqu'un événement d'erreur de ClientConnection survient pour un appareil mappé.
  • VerseGrip :
    • CoordinateConverter permet de définir les paramètres de conversion de coordonnées au moyen d'un fichier prédéfini ou d'une valeur directe.
    • ErrorEvent est déclenché (sur le thread principal) lorsqu'un événement d'erreur de ClientConnection survient pour un appareil mappé.
  • DeviceMapper :
    • Associe les appareils connectés pendant l'exécution.
    • Obtient Inverse3 Power Supply et Body Orientation pour chaque appareil Inverse3.
    • DeviceInfoPollingMode : modes Manual, Once (par défaut) ou Continuous
    • devicesInfoPollDelay avec un minimum sécuritaire fixé à 1sec si l'orientation du corps est demandée, 0.5sec sinon.
    • Initialisé uniquement lorsque le composant est activé.
    • Accesseurs d'appareils filtrés :
      • GetInverse3Devices(handedness) récupère les appareils Inverse3 filtrés selon la latéralité spécifiée.
      • GetVerseGripDevices(handedness) récupère les appareils VerseGrip associés aux appareils Inverse3 correspondant à la latéralité spécifiée.
      • GetInverse3(handedness) récupère le premier appareil Inverse3 correspondant à la latéralité spécifiée.
      • GetInverse3(verseGrip) récupère l'appareil Inverse3 associé à un appareil VerseGrip donné.
      • GetVerseGrip(inverse3) récupère l'appareil VerseGrip associé à un appareil Inverse3 spécifié.
  • OrientationSettings ajouté aux composants VerseGripCursor et Inverse3Body.
  • VerseGrip.Orientation remplace VerseGrip.LocalRotation.
  • Type explicite Inverse3Data pour le cache de Inverse3 :
    • propriétés d'états mises en cache : CursorPosition, JointsAngles, JointsAngularVelocity, Orientation,
    • GravityCompensation, StatusPowerSupply, ConfigTorqueScaling
    • propriétés des sorties de contrôle mises en cache : ControlMode, CursorForceOutput, CursorPositionOutput, JointsTorqueOutput, JointsAnglesOutput.
    • coordinateConverter utilisé pour convertir les données reçues et envoyées selon le système de coordonnées spécifié.
    • Le cache s'abonne au client pour être mis à jour automatiquement.
    • Déclenche des événements lors des mises à jour du cache.
  • Structure explicite Joint3 avec trois membres float j0, j1 et j2 (utilisés par JointsSetTorque et JointsSetAngles).
  • Type explicite VerseGripData pour le cache de VerseGrip :
    • propriétés d'états mises en cache : Orientation, IsAttached, ButtonCount.
    • états des boutons mis en cache.
    • Le cache s'abonne au client pour être mis à jour automatiquement.
    • coordinateConverter utilisé pour convertir les données reçues selon le système de coordonnées spécifié.
    • Déclenche des événements lors des mises à jour du cache.
  • CoordinateConverter (remplace UnityConvert) pour définir individuellement comment convertir les coordonnées de l'appareil vers l'espace de coordonnées Unity :
    • Inverse3CoordinateConverter pour convertir les coordonnées du curseur et l'orientation du corps.
    • VerseGripCoordinateConverter pour convertir l'orientation de VerseGrip.
    • Les structures Vector3Settings et QuaternionSettings servent à stocker les paramètres de conversion du système de coordonnées.
    • Créez les préréglages de convertisseur de coordonnées par défaut pour Inverse3 et VerseGrip à partir des composants ou du menu Assets.
      • Inverse3 (Arm Forward Pose) : convertisseur avec des paramètres pour un appareil dont le bras est orienté vers l'utilisateur, l'icône DEL sur le côté.
      • Inverse3 (Icon Forward Pose) : convertisseur avec des paramètres pour un appareil dont l'icône DEL est orientée vers l'utilisateur, le bras sur le côté.
      • VerseGrip (default) : convertisseur pour un appareil dont l'écran est tourné vers l'utilisateur, le bouton de saisie situé sur le dessus.
  • ClientConnection obtient FirmwareVersion, GravityCompensation et TorqueScaling à l'ouverture de l'appareil.
  • ConnectionMonitor affiche GravityCompensation, TorqueScaling et PowerSupply.

Corrections de bogues​

  • Inverse3.DeviceStateChanged était également déclenché avec JointsSetTorque et JointsSetAngles.
  • Reconnexion automatique de l'appareil après une déconnexion.
  • Nettoyage du thread d'interrogation du client à la sortie du build.
  • Correction de bogues et amélioration de la stabilité.
  • Correction du mappage des appareils après le déchargement et le chargement de la scène

Obsolète​

  • ClientConnection.Configuration.HapticFrequencyHz remplacé par HapticPollFrequency
  • ClientConnection.Configuration.PollDelayNs remplacé par HapticPollDelayNs
  • DeviceBehaviour.ConnectionStateChangedAsync sera supprimé lors de la prochaine version majeure
  • Inverse3.Position remplacé par Inverse3.CursorPosition
  • Inverse3.LocalPosition remplacé par Inverse3.CursorLocalPosition
  • Inverse3.TryResetForce() remplacé par Release()
  • VerseGrip.LocalRotation remplacé par VerseGrip.Orientation
  • JointsSetTorque(Vector3) remplacé par JointsSetTorques(Joint3)
  • JointsSetTorque(float, float, float) remplacé par JointsSetTorques(float, float, float)
  • JointsSetAngles(Vector3) remplacé par JointsSetAngles(Joint3)

← Retour à la page d'index