paint-brush
Premiers pas avec le SDK d'interaction avec la plate-forme de présence : suivi de la mainpar@shiaart
24,199 lectures
24,199 lectures

Premiers pas avec le SDK d'interaction avec la plate-forme de présence : suivi de la main

par Artem Shiabutdinov4m2023/07/31
Read on Terminal Reader

Trop long; Pour lire

La plate-forme de présence est conçue pour créer un sentiment de présence et d'interaction partagées dans les environnements de réalité virtuelle. Il permet aux gens de se connecter, d'interagir, de s'engager les uns avec les autres dans des espaces virtuels immersifs à l'aide de casques VR. Le suivi des mains est l'une des exigences de base pour le développement de jeux VR - nous allons configurer, construire et lancer un jeu de suivi des mains comme une expérience.
featured image - Premiers pas avec le SDK d'interaction avec la plate-forme de présence : suivi de la main
Artem Shiabutdinov HackerNoon profile picture
0-item
1-item
2-item

Comme nous avons créé avec succès notre premier projet Unity ciblant l'appareil Quest 2 dans le post précédent, nous allons maintenant avoir un aperçu de l'un des ensembles de fonctionnalités les plus puissants fournis par Meta via Presence Platform.

Qu'est-ce que la plateforme de présence de Meta ?

La plate-forme de présence est conçue pour créer un sentiment de présence et d'interaction partagées dans les environnements de réalité virtuelle. Il permet aux gens de se connecter, d'interagir, de s'engager les uns avec les autres dans des espaces virtuels immersifs à l'aide de casques VR.


Les fonctionnalités et capacités de la plate-forme de présence de Meta incluent :


  1. Système d'avatar : La plate-forme de présence permet aux utilisateurs de créer et de personnaliser leurs avatars numériques, qui les représentent dans le monde virtuel. Ces avatars peuvent imiter les mouvements, les expressions et les gestes réels des utilisateurs, améliorant ainsi le sentiment de présence et d'interaction sociale.
  2. Interaction sociale : les utilisateurs peuvent rencontrer et interagir avec des amis et d'autres personnes dans des environnements virtuels partagés. Ils peuvent participer à diverses activités ensemble, telles que jouer à des jeux, assister à des événements virtuels, regarder des vidéos, etc.
  3. Audio spatial : la plate-forme intègre l'audio spatial, ce qui signifie que le son dans l'environnement virtuel est basé sur la localisation. Cela crée une expérience audio plus réaliste et immersive, car les utilisateurs peuvent entendre des sons provenant de directions spécifiques, tout comme dans le monde réel.
  4. Suivi des mains : la plate-forme de présence prend en charge la technologie de suivi des mains, permettant aux utilisateurs d'utiliser leurs mains et leurs doigts directement en VR sans avoir besoin de contrôleurs. Cela rend les interactions plus naturelles et intuitives.
  5. Prise en charge multiplateforme : La plate- forme est conçue pour fonctionner sur différents casques Oculus VR, permettant aux utilisateurs de différents appareils de se joindre et d'interagir les uns avec les autres de manière transparente.
  6. Outils de création de contenu : pour les développeurs, la plate-forme Presence fournit des outils et des API pour créer et publier des applications, des jeux et des expériences de réalité virtuelle, permettant ainsi un écosystème florissant de contenu virtuel.


Commencer avec le suivi manuel

Comme vous pouvez le voir, Presence Platform est un ensemble complet de sous-systèmes/fonctionnalités, et je vais couvrir chacun d'eux en détail, mais pour commencer - commençons par le suivi manuel comme l'une des exigences de base pour le développement de jeux VR - nous allons configurer , créez et lancez un jeu de suivi des mains comme une expérience.


https://docs.unity3d.com/


Un point de départ parfait est l'expérience Unity-FirstHand fournie par oculus-samples repo .

Encore une fois, veuillez vous référer au post précédent sur la configuration de l'environnement de développement et assurez-vous que diverses dépendances sont installées.


Assurez-vous que Git LFS est installé, exécutez cette commande :

 git lfs install


Ensuite, clonez le référentiel à l'aide du "Code", en l'ouvrant dans le bureau Github et en exécutant la commande suivante :

 git clone https://github.com/oculus-samples/Unity-FirstHand.git


Tous les fichiers de projet réels se trouvent dans Actifs → Projet. Ce dossier comprend tous les scripts et actifs pour exécuter l'exemple, à l'exception du SDK Interaction lui-même. Le projet inclut la v41 du SDK Oculus, y compris le SDK Interaction. Vous pouvez trouver le SDK Interaction dans [Assets/Oculus/Interaction]{Assets/Oculus/Interaction).


Première main dans l'éditeur Unity


Après avoir installé toutes les dépendances requises et configuré la construction pour qu'elle s'exécute sur l'appareil Quest, vous obtiendrez quelque chose de similaire à ci-dessus dans votre éditeur.


Construire et exécuter

Allez dans Fichier → Paramètres de construction si vous utilisez Mac.

Si vous avez suivi les instructions de mon message précédent et connecté votre appareil, voici ce que vous devriez voir dans les paramètres de construction.

Construire et exécuter des paramètres

Cliquez sur Construire et exécuter, laissez quelques minutes à Unity pour créer et attendre les messages que votre application déploie sur l'appareil Quest connecté.


Expérience de course

Personnalisation et modifications

Je vous suggère fortement de jouer avec cet exemple et d'essayer de personnaliser les composants et les scripts pour apprendre comment cela fonctionne en interne, pour pouvoir le faire, dirigez-vous vers la section Projet de votre éditeur Unity et développez la hiérarchie des répertoires de projet.


Nous allons personnaliser LazerProjectile :


Structuration du projet

 public class LazerProjectile : ActiveStateObserver { [SerializeField] Transform _target; [SerializeField] GameObject _effect; [SerializeField] float _rayCastDelay = 0.5f; [SerializeField] float _fadeOutTime = 0.1f; [SerializeField] float _delayBetweenShots = 0.5f; [SerializeField] AudioTrigger _chargeUp; [SerializeField, Optional] AudioTrigger _chargeUpComplete; protected override void Update() { base.Update(); Vector3 endPos = Vector3.Lerp(_target.position, transform.position + transform.forward * 20, 5 * Time.deltaTime); _target.position = endPos; } //...... }


Augmentons le délai de diffusion de Ray et testons l'application sur le casque en remplaçant


 float _rayCastDelay = 0.1f;

pour

 float _rayCastDelay = 0.5f;


Voici comment cela fonctionne !

Démo


Essayez-le vous-même et faites-moi savoir ce que vous voulez construire en utilisant le suivi manuel.