[RESOLU] Effectuer une rotation avec un rigidbody

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
Avatar de l’utilisateur
macbeth04
Messages : 3
Inscription : 25 Juin 2020 13:55

[RESOLU] Effectuer une rotation avec un rigidbody

Message par macbeth04 » 25 Juin 2020 15:01

Bonjour, j'ai besoin d'effectuer des rotations sur la axes yaw et pitch ( voir screen ) et pour cela j'utilise la méthode .AddRelativeTorque().

Mais le problème c'est qu'en faisant ça l'axe Z est aussi modifié, même en activant les constraints.

Voici mon script :

Code : Tout sélectionner

	mouse_h = Input.GetAxis("Mouse X")  * sensivity * Time.deltaTime;
        mouse_v = Input.GetAxis("Mouse Y") * sensivity* Time.deltaTime ;

        rb.AddRelativeTorque(mouse_h, mouse_v, 0);
Image
Dernière édition par macbeth04 le 27 Juin 2020 17:29, édité 1 fois.

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7874
Inscription : 30 Juil 2011 13:57

Re: [DB-AL] Effectuer une rotation avec un rigidbody

Message par Max » 26 Juin 2020 07:57

Bonjour,

Ouille, la physique ...
Quelles sont les autres forces appliquées à ton rigidbody ? Déjà je suppose qu'il doit déjà y avoir la gravité. En suite, ton avion doit avoir une poussé (ou traction, c'est selon) lié à sa motorisation. Appliquer un couple de rotation sur un des axes, engendre forcément des réactions globales sur l'ensemble de l'objet et qui sont liés aux différentes interactions qui le définisse à l’instant T.
La gestion de la physique est un exercice très délicat, à fortiori quand on lorgne du coté de la simulation.

Si ton but n'est pas là (une simultion basé sur la physique), pourquoi alors ne pas rester au niveau
simple des transform ?
Si c'est vraiment la simulation qui te branche, alors un lien sympa (regarder parfois ce que font les
autres est souvent une très bonne source d'inspirations): https://www.youtube.com/watch?v=87N7S0islxU
(lien vers le github fournis dans la description)
;)
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
macbeth04
Messages : 3
Inscription : 25 Juin 2020 13:55

Re: [DB-AL] Effectuer une rotation avec un rigidbody

Message par macbeth04 » 26 Juin 2020 08:36

Salut, j'ai désactivé toute les autres force pour éviter justement d'être influencé, je préfère me concentrer sur cet aspect la au début. J'étais déjà tombé sur la chaîne de cette personne il y a quelques temps mais faut dire qu'il a un sacré niveau et c'est pas toujours simple à comprendre :gene:

Mais bon, j'avais jamais vus cette vidéo la donc pourquoi pas...

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7874
Inscription : 30 Juil 2011 13:57

Re: [DB-AL] Effectuer une rotation avec un rigidbody

Message par Max » 26 Juin 2020 11:40

macbeth04 a écrit :
26 Juin 2020 08:36
Salut, j'ai désactivé toute les autres force pour éviter justement d'être influencé
Tu as désactivé la gravité aussi ?
Même en verrouillant l'axe Z avec des rotations simultanées sur les deux autres axes, pas sûr que cela soit efficace.
Essais de passer plutôt par RigidBody.MoveRotation(), tu auras peut-être moins d'effets indésirables qu'en passant par une gestion toujours très pointue de forces et autres torques.
macbeth04 a écrit :
26 Juin 2020 08:36
, je préfère me concentrer sur cet aspect la au début. J'étais déjà tombé sur la chaîne de cette personne il y a quelques temps mais faut dire qu'il a un sacré niveau et c'est pas toujours simple à comprendre :gene:

Mais bon, j'avais jamais vus cette vidéo la donc pourquoi pas...
Oui, pas simple de rentrer dans l'appli d'un autre même si on en tire toujours quelque chose.
Ceci dit, comme souligné plus haut, la gestion de la physique reste un domaine compliqué quoiqu'il arrive, et par voie de conséquence très rarement conseillé aux débutants ;)

Après quel objectif poursuis-tu finalement ? Un vrai système de simulation (bon courage) ou plus simplement un comportement plus dédié à ce que l'on rencontre dans l'arcade ?
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
macbeth04
Messages : 3
Inscription : 25 Juin 2020 13:55

Re: [DB-AL] Effectuer une rotation avec un rigidbody

Message par macbeth04 » 27 Juin 2020 13:26

Max a écrit :
26 Juin 2020 11:40
macbeth04 a écrit :
26 Juin 2020 08:36
Salut, j'ai désactivé toute les autres force pour éviter justement d'être influencé
Tu as désactivé la gravité aussi ?
Même en verrouillant l'axe Z avec des rotations simultanées sur les deux autres axes, pas sûr que cela soit efficace.
Essais de passer plutôt par RigidBody.MoveRotation(), tu auras peut-être moins d'effets indésirables qu'en passant par une gestion toujours très pointue de forces et autres torques.
J'ai désactivé la gravité oui et je pense qu'effectivement utiliser des "torques" n'est finalement pas une bonne idée dans mon cas.
Max a écrit :
26 Juin 2020 11:40
macbeth04 a écrit :
26 Juin 2020 08:36
, je préfère me concentrer sur cet aspect la au début. J'étais déjà tombé sur la chaîne de cette personne il y a quelques temps mais faut dire qu'il a un sacré niveau et c'est pas toujours simple à comprendre :gene:

Mais bon, j'avais jamais vus cette vidéo la donc pourquoi pas...
Oui, pas simple de rentrer dans l'appli d'un autre même si on en tire toujours quelque chose.
Ceci dit, comme souligné plus haut, la gestion de la physique reste un domaine compliqué quoiqu'il arrive, et par voie de conséquence très rarement conseillé aux débutants ;)

Après quel objectif poursuis-tu finalement ? Un vrai système de simulation (bon courage) ou plus simplement un comportement plus dédié à ce que l'on rencontre dans l'arcade ?
Mon objectif c'est clairement du arcade enfaîte et du coup comme dis plus haut je pense essayer comme tu me la dis au début et rester sur des transform.

Répondre

Revenir vers « (C#) CSharp »