[MY AL] [resolu] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
nigel
Messages : 166
Inscription : 05 Mai 2015 01:51

[MY AL] [resolu] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par nigel » 20 Fév 2017 11:05

Hello,
Je poste un peu partout cette question sur internet,
Je souhaite donc orienter mon rigidbody (non soumis à la gravité)
vers une rotation cible d'un autre gameObject.
La méthode d'AJOUT de vélocité n'est pas choisi hasard,
On peut par exemple faire
Rigidbody. AngularVelocity += vélocitéAngulaireAjouté * facteurMultiplicateur;
Si le facteurMultiplicateur est egal a zéro cela ne stop pas la progression du rigidbody qui continu sa route sans contrainte.
J'ai réussi avec la position d'un gameObject, mais la rotation c'est autre chose. Les angles des vector3 se reinitialise au dela de 360 et fausse les résultats.
Je ne sais pas me servir des quaternions.
J'ai exposé mon problème avec plus de détails ici
[Physics unity] How to target a rotation by Adding velocity ?
Dernière édition par nigel le 21 Fév 2017 10:37, édité 1 fois.
ça explose -> Atomic Command
ca vole -> Long Range Black Cat

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

Re: [MY AL] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par boubouk50 » 20 Fév 2017 11:13

Ton message a été supprimé apparemment.
Était-ce le doublon de celui-ci? https://www.reddit.com/r/learnmath/comm ... to_target/
Il vaut mieux réexpliquer en français ici... C'est un peu le but d'avoir un forum français: ne pas se taper l'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

nigel
Messages : 166
Inscription : 05 Mai 2015 01:51

Re: [MY AL] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par nigel » 20 Fév 2017 11:29

Oui, mais de chez moi c'est pas supprimé..
Désolé pour le lien en anglais mais c'est dur de tout re-écrire sur un mobile.
Et puis je n'ai rien écrit en anglais sur Unity France :ange:
ça explose -> Atomic Command
ca vole -> Long Range Black Cat

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

Re: [MY AL] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par boubouk50 » 20 Fév 2017 11:42

nigel a écrit :Oui, mais de chez moi c'est pas supprimé..
Et faut aller chez toi pour avoir plus de détail?
nigel a écrit :Désolé pour le lien en anglais mais c'est dur de tout re-écrire sur un mobile.
Est-ce donc à nous de le faire ou d'apprendre l'anglais?
nigel a écrit :Et puis je n'ai rien écrit en anglais sur Unity France :ange:
Effectivement, nous allons donc nous passer des détails de ton explication...

La documentation: RigidBody.AngularVelocity
Elle nous apprend que la vélocité angulaire est exprimée en Radian par secondes. Donc pas d'angles -> Donc que mesures-tu? Il s'agit ici de vitesse et dans ton explication tu parles d'angles.
Elle nous avertit également de ne pas modifier directement cette variable, sauf pour des cas non réalistes ou déterminés.
"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

nigel
Messages : 166
Inscription : 05 Mai 2015 01:51

Re: [MY AL] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par nigel » 20 Fév 2017 18:12

On peut faire:
rigidbody. AddForce(force, forceMode.changingVelocity);
Ca fait la même chose, mais ici je parle d'ajouter de la vélocité parce que, bah, on aime bien les trucs simples en français :)
Et le comportement de "ressort rotationnel" qui en résulte est ce que je cherche.
ça explose -> Atomic Command
ca vole -> Long Range Black Cat

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

Re: [MY AL] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par boubouk50 » 20 Fév 2017 18:18

nigel a écrit :Les angles des vector3 se reinitialise au dela de 360 et fausse les résultats.
Et donc? quel est le rapport entre la rotation et la vélocité? Je ne cerne toujours pas ton problème, c'est la vélocité ou bien la rotation?
"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

nigel
Messages : 166
Inscription : 05 Mai 2015 01:51

Re: [MY AL] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par nigel » 20 Fév 2017 18:33

Le problème c'est que je ne sais pas déduire l'ajout d'une vélocité angulaire nécessaire pour orienter un rigidbody dand une rotation cible.
Donc je tente des trucs qui sont pas forcément bon. Et c'est pour ca que j'appelle a l'aide sur des forums, en précisant ce que j'ai fait de pas bon, dans l'espoir qu'on m'explique les trucs bon.
ça explose -> Atomic Command
ca vole -> Long Range Black Cat

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

Re: [MY AL] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par boubouk50 » 20 Fév 2017 18:52

Ok, mais c'est quoi ton problème? Je veux dire que cherches-tu à faire? Nous n'avons que ta solution qui ne marche pas. Il nous faut l'énoncé du problème:
Tu as un rigidBody qui se déplace dans l'espace et qui peut être entraîné dans une orbite autour d'un autre GameObject? Comment est-il contrôlé? Pourquoi la physique pour cela et pas pour le déplacement? (Je souhaite donc orienter mon rigidbody (non soumis à la gravité) vers une rotation cible d'un autre gameObject. )
"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

nigel
Messages : 166
Inscription : 05 Mai 2015 01:51

Re: [MY AL] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par nigel » 20 Fév 2017 19:10

Je veux déduire le couple nécessaire pour orienter un rigidBody non kinematic, non soumis a gravité, vers une orientation cible, par exemple
la rotation d'un autre GameObject, a une certaine vitesse.
Donc a la fin de la résolution du problème, la rotation de mon GameObject avec RigidBody devra être semblable a la rotation du GameObjet cible, d’où ma tentative avec les angles vector3. [edit]
Ah oui, tout ça indépendamment de la masse du rigidBody. Donc on parle bien de touché a la vélocité directement.
ça explose -> Atomic Command
ca vole -> Long Range Black Cat

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

Re: [MY AL] Orienter un rigidbody vers une rotation cible en ajoutant de la vélocité ?

Message par boubouk50 » 20 Fév 2017 19:21

Si je comprends bien il te faut interpoler entre la vélocité angulaire du rigidbody vers celle du GameObject source (qui n'en a pas forcément s'il n'a pas de rigidBody).
La vélocité angulaire se calcule en radians par secondes:
Soit tu as la vitesse de rotation de ton gameObject, dans ce cas il te faut convertir l'angle parcouru en une seconde en radians.
Soit tu retrouves l'angle effectué entre deux frames, tu le calcules pour une seconde (1/deltaTime) et tu le convertis ensuite en radians.
"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 « (C#) CSharp »