HTC: Contrôler une animation en poussant/ tirant un objet

Section dédiée à la VR avec Unity
Sam00
Messages : 26
Inscription : 07 Nov 2016 18:05

HTC: Contrôler une animation en poussant/ tirant un objet

Message par Sam00 » 14 Nov 2016 14:07

Bonjour,

Je souhaiterais déployer un objet pré-animé dans 3Ds Max et tirant sur un objet, pour arriver a ce résultat (a 3"40):

https://www.youtube.com/watch?v=IjSqQCbwWfk


Mon objet est déjà animé, j'ai placé un gameobject a la tete de celui ci. J'aimerais que l'ont puisse jouer sur l'animation (en allant vers l'avant ou vers l'arrière) selon si on tire ou pousse le gameobject. Cela est il possible ?

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

Re: HTC: Contrôler une animation en poussant/ tirant un objet

Message par boubouk50 » 14 Nov 2016 14:34

N'hésite pas à consulter la documentation, tout y est écrit noir sur blanc. (Bon, euh... là, à 13:30 le site est down mais normalement je mets un lien... :mrgreen: EDIT c'est revenu)
De tête donc: Tu dois pouvoir jouer sur le temps de ton AnimationState.
Le gameObject que tu attrapes doit être défini entre 2 positions min et max pour déterminer le début et la fin de ton animation. En fonction de la position de celui-ci entre ses deux positions tu peux déterminer le pourcentage de ton animation donc le temps de celui-ci.
"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

Sam00
Messages : 26
Inscription : 07 Nov 2016 18:05

Re: HTC: Contrôler une animation en poussant/ tirant un objet

Message par Sam00 » 16 Nov 2016 19:03

Ok merci !

Avec quoi puis-je définir mes deux positions de mon gameobject ? Et faire le lien avec l'animation de mon autre objet ?

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: HTC: Contrôler une animation en poussant/ tirant un objet

Message par Moi 1971 » 16 Nov 2016 20:12

Bonjour,
Avec quoi puis-je définir mes deux positions de mon gameobject
Comme l'a dit Boubouk:
Le gameObject que tu attrapes doit être défini entre 2 positions min et max pour déterminer le début et la fin de ton animation
Par exemple, si l'objet se déplace sur l'axe des x et si la position du min est x = 1 et celle du max est x = 3. Donc à la position x= 1 l'anime se joue jusqu’à 0%, à la position x = 1.5 l'anime se joue jusqu’à 50%, à la position x = 3 l'anime se joue jusqu’à 100%
Amplitude de déplacement sur l'axe x (max) => 3 - 1 = 2
D = déplacement réel sur l'axe x
Produit en croix pour les gens de mon époque, tableau de proportionnalité pour les plus jeunes (je vois pas en quoi c'est mieux.. mais bon...)
Max --> 100%
D ---> % d'animation à jouer

% d'animation à jouer * Max = D * 100%

% d'animation à jouer = ( D * 100% ) / Max

Exemples :
Quand l'objet est à la position x = 1, il a parcouru la distance D de 1 - 1 = 0 ... facile => % animation = (0 * 100%) / 2 => 0%
Quand l'objet est à la position x = 1.5, il a parcouru la distance D de 1.5 - 1 = 0.5 => % animation = ( 0.5 * 100%) / 2 => 25%
Quand l'objet est à la position x = 2, il a parcouru la distance D de 2 - 1 = 1 => % animation = ( 1 * 100%) / 2 => 50%
Quand l'objet est à la position x = 2.5, il a parcouru la distance D de 2.5 - 1 = 1.5 => % animation = ( 1.5 * 100%) / 2 => 75%
Quand l'objet est à la position x = 3, il a parcouru la distance D de 3 - 1 = 2 => % animation = ( 2 * 100%) / 2 => 100%
Et faire le lien avec l'animation de mon autre objet ?
L'animation n'est-elle pas sur l'objet animé?
L'autre objet ne dois pas bouger avec une animation mais avec les touches du clavier ou de la souris. Non?

Sam00
Messages : 26
Inscription : 07 Nov 2016 18:05

Re: HTC: Contrôler une animation en poussant/ tirant un objet

Message par Sam00 » 17 Nov 2016 15:54

D'accord, merci pour l'explication ;) Ma question est de savoir COMMENT définir mes deux positions de mon objet.

J'ai un objet A qui comprends une animation sur 30 frames, et un objet B qui n'est pas animé. Quand mon objet B est a x=0 (sa position 1 de base), l'animation de l'objet A est a la frame 0. Si je déplace l'objet B a x = 30 (par exemple, pour sa position 2), l'animation de l'objet A est a 100%.

Je peux rendre l'objet B interactif avec les manettes du HTC Vive pour que l'ont puisse le déplacer sur seulement un axe.
Seulement comment définir ses positions extrêmes et les associer avec l'animation de mon objet A ?

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

Re: HTC: Contrôler une animation en poussant/ tirant un objet

Message par boubouk50 » 17 Nov 2016 16:09

Ce qu'on te dit c'est simplement déterminer deux points fictifs qui te serviront de min et max et détermineront le pourcentage d'animation.
En gros quand tu accroches ton objet ça définit ta position 0 et en tirant tu iras vers une position 1 qui sera la fin de ton animation. S'il faut tirer 30 cm, et ben tu calcules la distance entre ta position actuelle et le point 0 selon 1, 2 ou 3 axes. Rien de bien sorcier. Si tu veux que ce soit automatisé, tu peux soit récupérer la boudingbox de ton objet (pour déterminer la distance), ou bien attacher une classe à tes objets avec la distance à tirer/pousser. Il y a plein de possibilités, à toi de choisir ou d'imaginer.

Je suis pas sûr d'avoir compris ce qui te chagrine. Mais si c'est un problème de règles de trois, rien de bien sorcier: y = x/30.f (y l'interpolant de ton animation compris entre 0 et 1, x la valeur en x comprise entre 0 et 30)
"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 et la VR »