Question

Je travaille avec PhysX (essayer d'ajouter ik à ragdoll) au moment. Pour une raison quelconque, tous les joints de ragdoll sont sans frottement, et par conséquent, Ragdoll ont tendance à « wobble », surtout quand il est accroché dans l'air et est relié à plusieurs acteurs en mouvement cinématique.

Je voudrais ajouter la friction aux articulations et les rendre « raide ». Imaginez une porte (avec charnière extrêmement rouillés) qui doit être expulsé plusieurs fois pour être ouvert - à-dire qu'elle tourne autour de la charnière, mais pas beaucoup, arrête rapidement, et une grande force est nécessaire pour faire tourner. Ou pensez à l'art manikins (voir google images pour les images) -. Leurs membres se déplacent, mais ils ne balancent pas librement

Malheureusement, je ne peux pas trouver quoi que ce soit lié à la friction conjointe PhysX. J'ai vérifié la documentation, Google, et en-têtes, et ne pouvait pas trouver quelque chose d'utile.

Alors, comment puis-je mettre en œuvre des joints rigides / friction avec joint PhysX? (Je pense) que j'ai vu des jeux PhysX sans ce problème, donc apparemment il devrait y avoir une façon de le faire.

P.S. Je ne parle pas d'une instabilité articulaire / solveur ici. Ragdoll est stable (plus ou moins), et les articulations honorer degrés de liberté (limites communes), mais les joints ont pas de frottement, et je voudrais ajouter les frictions.

Était-ce utile?

La solution

J'ai posé une question sur les forums nvidia récemment qui pourraient être liés à ceci: lien

Malheureusement, je n'ai pas une vraie réponse à mes questions, mais a réussi à faire ce que je veux faire, en utilisant un ressort dans l'aide joint pourrait vous ici si vous ajoutez seulement une constante d'amortissement sans une constante de ressort. Cela fonctionne dans mon cas, mais je ne peux pas expliquer pourquoi alors que je suis heureux de l'utiliser, je ne suis pas tout à fait sûr que le recommander.

Je ne sais pas si vous pouvez également ajouter angulaire d'amortissement à toutes les différentes parties de la ragdoll, ce serait leur faire ralentir plus rapidement après qu'ils ont commencé à bouger, mais il pourrait ne pas regarder à droite. Probablement l'une de ces choses que vous devrez expérimenter.

Autres conseils

J'ai trouvé cette fil de forum sur les articulations bancal dans Physx, savoir si vous avez Do not vu, mais je l'espère, ça aide.

Pourquoi ne pas essayer pas:

d6Desc.swingDrive.driveType.raiseFlagMask (NX_D6JOINT_DRIVE_VELOCITY);  d6Desc.swingDrive.forceLimit = 0.1f;  d6Desc.twistDrive.driveType.raiseFlagMask (NX_D6JOINT_DRIVE_VELOCITY);  d6Desc.twistDrive.forceLimit = 0.1f;  d6Desc.driveAngularVelocity.x = 0;  d6Desc.driveAngularVelocity.y = 0;  d6Desc.driveAngularVelocity.z = 0;

Vous conduisez la vitesse à 0 avec une petite force, ce mouvement de manière sera réduite et vous arrête de se déplacer objets sur le sol. Ce n'est pas exactement comme la friction, mais près.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top