[RESOLU] Attraper un objet facilement en Vr !

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Xameal
Messages : 13
Inscription : 15 Mars 2020 23:56

[RESOLU] Attraper un objet facilement en Vr !

Message par Xameal » 16 Mars 2020 20:22

Bonjour / Bonsoir !

J'ai besoin de votre aide pour un problème qui va sûrement vous sembler très facile.
Je débute dans Unity et ai découvert pas mal de choses, mais il y'a une fonctionnalité que je n'arrive pas à trouver en fouillant sur internet :rougefaché: ...

Elle est simple, c'est attraper un objet facilement, attention, pas attraper un objet en Vr, mais vraiment l'attraper et qu'il se mette dans une position pré-définis directement et seul.

Je m'explique : Imaginons que vous vouliez attraper un pistolet, bon, si vous le tenez par le canon, il va falloir remanier votre saisie pour le prendre correctement, jusqu'à l'avoir par le manche !
J'aimerai que peu importe ou l'utilisateur prend l'objet, l'objet se positionne directement dans la position voulu dans sa main, pour faciliter la prise d'objet complexe si vous voulez :) !

En vous souhaitant une bonne journée / soirée, et merci d'avance :-D

PS : Si vous avez du temps pour expliquer comment ça marche, je suis évidemment preneur

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6221
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Attraper un objet facilement en Vr !

Message par boubouk50 » 17 Mars 2020 12:52

Salut,

là comme ça, je ne peux que faire de la théorie. Je suppose que tu as des manettes VR.

Les APIs d'input des controllers VR doivent surement avoir cette fonction d'implémentée: Grab ou Pick (ou quelque chose du genre). Elles peuvent déclencher un event ou bien un état à vérifier dans un Update ().
Cet event ou state appellera une fonction destinant à attacher l'objet sélectionné au controller (main).
Pour un positionnement prédéfini, il faudra définir un transform sur chaque objet "ramassable" (Interactable ou pickable) et un sur chaque controller afin de les "aligner".

Donc:
Préparation:
- Tu crées un gameObject enfant sur chacun des controllers virtuels à la position et rotation souhaitée. (Appelons-les L_HandWeaponNode et R_HandWeaponNode pour l'exemple).
- Tu crées un gameObject parent sur chacun des objets "ramassables" (armes donc) au niveau de la crosse pour que l'arme soit correctement positionnée lorsqu'elle est attachée (enfant) aux gameObjects L_HandWeaponNode ou R_HandWeaponNode. (Appelons-le MyWeaponNode)
Runtime:
- Tu récupères un event ou un state lié à un grab d'objet. (En fonction de l'API de controller utilisée?)
- Cet event ou state appellera une fonction qui viendra attacher (GameObject.SetParent ()) le gameObject MyWeaponNode au gameObject du controller attrapant L_HandWeaponNode ou R_HandWeaponNode.
Il initialisera les transformations locales de MyWeaponNode pour qu'il s'aligne à son nouveau parent.

La bonne recherche:
https://www.google.com/search?rlz=1C1GC ... 1wH3rAJcCY
Des sources:
https://www.youtube.com/watch?v=v-DPLzzA5rs
https://circuitstream.com/blog/grab-vive/
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Xameal
Messages : 13
Inscription : 15 Mars 2020 23:56

Re: Attraper un objet facilement en Vr !

Message par Xameal » 17 Mars 2020 20:17

Très bien merci ! Je reviens vers vous après avoir testé ces conseils :D !
Si j'ai bien compris, les 2 premiers GamesObjects vont représenté mes mains une fois le casque mis, donc je peux en prendre des déjà tout fait sur le Asset Store non ?

Ensuite je crée un GameObject qui va être rattaché à la manche de mon pistolet ( pour continuer sur cet exemple ), pour qu'il ne puisse l'attraper que par ce bout .
Par contre les événements, je connais grâce à PlayMaker il me semble, c'est bien de ça que vous parliez ?
Et enfin, je fais une condition dans cet événement, qui modifiera le parent de l'objet si il est attraper par un controller ? ( et donc il aura la position et propriété du Parent fait au début, et changera grâce à la fonction SetParent.nomObjet )
J'espère avoir bien compris,
Merci encore :D

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6221
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Attraper un objet facilement en Vr !

Message par boubouk50 » 18 Mars 2020 10:02

Je vois que tu n'es pas familier avec le développement et ses termes, du coup, je ne peux être réellement sur que tu t'exprimes comme il faut, que tu aies bien compris. Notamment pour les événements.
Fais attention à ne pas aller trop vite non plus, le développement VR n'est pas chose aisée, renseigne-toi bien, le web est quand même rempli de beaucoup d'exemples et tutoriaux (je te conseille de chercher aussi en anglais)
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Xameal
Messages : 13
Inscription : 15 Mars 2020 23:56

Re: Attraper un objet facilement en Vr !

Message par Xameal » 19 Mars 2020 21:58

En réalite je suis en étude informatique, et j'apprend le java et le C en ce moment ( Le C = pire langage :pleur4: ), et comme moi et d'autres potes voulont faire un projet unity qui utilise le C#, j'essaie de m'y intéresser pour apprendre un 3ème langages ...
J'ai déjà énormément chercher pour attraper un objet et j'avais réussi partiellement, c'est pour cela que je trifouille et demande des informations / conseils à droite à gauche

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6221
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Attraper un objet facilement en Vr !

Message par boubouk50 » 19 Mars 2020 22:30

Je ne peux pas faire mieux que t'expliquer le principe et te donner des sources utiles.
Peut-être un autre membre aura une réponse plus précise.
Bon dev.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Xameal
Messages : 13
Inscription : 15 Mars 2020 23:56

Re: Attraper un objet facilement en Vr !

Message par Xameal » 20 Mars 2020 01:03

C'est bon ! J'ai trouvé ! En tous cas pour l'instant ....
Pour ceux qui ont atterris ici, et qui veulent la solution elle est vraiment simple :
Un script de Unity ( ou Unity Integration ) s'appelle : Distance Grabbable que vous devait ajouter à votre objet.
Ce script, une fois ajouté, contient 2 options qui nous intéresse : "Grab Point" et " Snap Offset"

Pour le premier ("Grab Point"), il permet de déterminer un point d'accroche à l'objet. Pour ce faire, vous avez juste à créer un cube ( ou une sphère etc... ) avec un box collider que vous choisirez ( c'est la zone à laquelle il va pouvoir attraper l'objet ) que vous mettrez dans votre objet ( évidemment il ne faut pas qu'il dépasse pour que ce ne soit pas dérangeant à l’œil, faîtes le plus petit même ) et que vous définissez comme enfant de l'objet ( pour suivre les déplacements tous ça tous ça ).
Ensuite vous glissez votre cube dans l'option " Grab Point"

Ensuite, pour "Snap Offset", il va déterminer la position de base de l'objet ( rotation, à quel hauteur pour une batte par exemple etc... ), pour cela, créer un gameObject, qu'on met à la position voulu, et qu'on rend enfant de notre objet.
Ensuite, vous glissez votre gameObject, dans votre "Snap Offset".

Et bam, vous pouvez attraper la batte de n'importe ou, elle arrivera toujours dans la bonne position, pas la peine de remanier la prise jusqu'à ce qu'elle soit correctement mise !

En bref, si vous j'ai mal expliquer ( ce qui est possible à 90% ), voilà ma source, la vidéo est de Vahem, et est en anglais mais explique vachement bien, et vous montre directement les résultats :
https://www.youtube.com/watch?v=98gfkursxYI

Merci boubouk, ( les recherches en anglais sa aide :lol: )

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6221
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [RESOLU] Attraper un objet facilement en Vr !

Message par boubouk50 » 20 Mars 2020 09:56

Tu vois que c'est déjà presque tout maché ;)

Lorsque tu trouves solution à ton problème, tu peux le marquer comme [RESOLU]. Pour cela, il te suffit d'éditer le titre du premier message et d'ajouter [RESOLU] en début de celui-ci.
Je m'en suis occupé cette fois-ci.

Bon dev.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Unity le logiciel »