Aller au contenu


RigidBody coincés l'un dans l'autre


  • Vous ne pouvez pas répondre à ce sujet
2 réponses à ce sujet

#1 dZastreux

    Ceinture Marron

  • Members
  • 162 messages

Posté 21 juillet 2009 - 03:20

Bonjour les bandit.gif , icon_biggrin.gif ...Tout est dans le titre : Je suis aussi coincé ( ...Merci de ne pas rire icon_mrgreen.gif ) que mes RigidBody entre eux...

Dans ma démo shockwave3D, j'utilise une caméra "subjective" : Une caméra associée, pour ses déplacements "au sol" à un RigidBody #dynamic
Ce RigidBody #dynamic est de type #box et est lui-même crée à partir d'un ModelRessource de type #Cylinder

Note: Bien que ça fonctionne pour les RigidBody #static, j'obtiens une erreur si à la place de #box j'essaye #concaveShape en mode #dynamic ; du coup, vu que de modifier mon cylindre à quand même certaines incidences sur les déplacements de ma caméra, je ne suis pas bien sûr de comment est calculée ma physique ( Boîte ou Cylindre ? ... )
Cela étant dit, même si je continue à me poser la question, en tâtonnant, je suis parvenu à des déplacements corrects donc ce n'est pas là, je pense mon principal problème...

En effet, ce qui est ennuyeux, c'est que lors de certaines collisions entre le RigidBody #dynamic de ma caméra et d'autres RigidBody ( #static ou #dynamic, peu importe ) je viens "engluer" mon RigidBody de caméra dans l'autre.
En général, cela se produit quand je "pousse" un peu trop longtemps ma caméra vers un de ces objets.

Je déplace mon RigidBody de caméra avec de "gros" applyForce ( et un ConstraintDesc sur l'axe Y (vertical) pour ne pas "chavirer" ) :
J'ai bien essayé de modifier la valeur worldPhysX.contactTolerance et la même valeur, individuellement, pour les différents RigidBody ( en essayant aussi de tenir compte des 2% de la "dimension"(?)conseillés sur la doc... ) mais rien à faire :
En passant de 0.001 à 1 ...Cela fait peut-être une petite différence mais je ne m'en rends pas compte et le bug continue de se produire... (!)
J'ose pas aller trop loin avec ce chiffre puisqu'ils parlent d'instabilité...
A noter aussi, avant cela, que j'ai eu plusieurs crashs de l'application shockwave projector ( ou de firefox en mode plugin ) en déplaçant mon RigidBody #dynamic de caméra sur certaines "arrêtes" d'autres RigidBody ( en #static et #concaveShape , ceux-ci )


icon_arrow.gif Voilà, si quelqu'un aurait une idée ou quelques conseils à me proposer pour ne plus avoir autant d'erreurs de ce genre, ce serait très sympa ! icon_redface.gif

Modifié par dZastreux, 21 juillet 2009 - 03:21 .


#2 dZastreux

    Ceinture Marron

  • Members
  • 162 messages

Posté 23 juillet 2009 - 08:37

...Bon ben apparemment, pour l'instant tout du moins, il semblerait que j'ai réussi à corriger mon problème de RigidBody à tendances priapiques(!) icon_razz.gif

D'abord, j'ai limité au maximum la propriété .contactTolerance du RigidBody associé à ma caméra :
C-à-d que je l'ai mise à Zéro
( J'ai aussi essayé une valeur négative, juste pour voir, et c'est rigolo, ça fait "sauter" automatiquement le rigidBody #dynamic sur place icon_lol.gif M'enfin, pour une caméra subjective, c'est pas le top, on a vite mal au cou icon_mrgreen.gif )

...Mais, surtout, j'ai "triché" en créant différemment le model-ressource utilisé pour l'instanciation de mon RigidBody #dynamic ; en effet, j'ai remplacé ça :

Lingo

mrCambox = gWorld3d.newmodelresource("mrCamboxN", #cylinder, #front)
...Pourtant théoriquement tout à fait suffisant pour des collisions correctes avec les autres rigidBody #static ou #dynamic eux aussi crées avec des model-resources dont le paramètre est #front, ... Par ça :

Lingo

mrCambox = gWorld3d.newmodelresource("mrCamboxN", #cylinder, #both)
#both : A deux, c'est tout de suite mieux !
J'ai également fait ça pour quelques autres RigidBody #dynamic encore un peu excités entre eux, et, depuis, tout s'emboîte à merveille :
ça glisse à la vaseline ! bandit.gif


Comme mes géométries de collisions sont actuellement des plus simples, je ne crois pas que ma solution soit trop problématique au niveau des performances (ben ui, ça compte, quoiqu'on en dise!)... Par contre, évidemment, ça doit pas être le fin du fin en la matière, d'utiliser ce système de "capote réversible" (!) ; du coup si un obsédé du safe-code vient à passer par là, je reste preneur de nouvelles positions sur ce sujet icon_biggrin.gif

Modifié par dZastreux, 23 juillet 2009 - 08:39 .


#3 dZastreux

    Ceinture Marron

  • Members
  • 162 messages

Posté 24 juillet 2009 - 05:03

Argh, non, sans que je ne sache pourquoi ça a recommencé. #Both ne résouds rien icon_neutral.gif
A l'aide ! icon_confused.gif





1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS - Tel. 0826 466 613 - Fax. 01 72 70 31 38

FFP