Assistant de contrainte MassFX

L'assistant de contrainte dans MassFX permet à deux corps rigides de fonctionner ensemble, comme pour une porte avec son cadre lors de l'utilisation de la contrainte charnière. Vous pouvez sinon utiliser une contrainte pour lier un seul corps rigide à un point dans l'espace. Pour obtenir une présentation générale des contraintes, reportez-vous à la rubrique Contraindre des objets physiques.

L'interface de l'assistant de contrainte se compose de plusieurs panneaux déroulants du groupe de fonctions Modifier et de deux niveaux de sous-objet de la pile des modificateurs. Ces contrôles sont disponibles pour une seule contrainte à la fois. Si plusieurs contraintes sont sélectionnées, les panneaux déroulants n'apparaissent pas. Toutefois, vous pouvez modifier une sélection de plusieurs contraintes dans le groupe de fonctions Editeur multi-objet de la boîte de dialogue Outils MassFX. La plupart des commandes du groupe de fonctions Editeur multi-objet sont les mêmes que celles du groupe de fonctions Modifier.

Procédure

Pour utiliser la contrainte MassFX:

    Le moyen le plus pratique d'appliquer une contrainte MassFX consiste à effectuer cette opération à partir de la barre d'outils MassFX :

  1. Créez le ou les objets à contraindre. Utilisez le groupe de fonctions Hiérarchie Commandes Pivot pour positionner leurs pivots aux endroits où vous souhaitez que les contraintes soient attachées.

    Par exemple, si un objet représente une porte, positionnez son pivot le long de l'arête verticale à l'endroit où les charnières seraient placées dans une situation réelle.

  2. Si vous souhaitez contraindre un corps rigide sur un point dans l'espace, sélectionnez un objet. Si vous souhaitez contraindre ce même corps sur autre corps rigide, sélectionnez dans ce cas deux objets.

    Avec deux objets, sélectionnez d'abord l'objet parent, puis l'objet enfant. L'objet enfant est celui qui est affecté par la contrainte; par exemple, dans le cas d'une une porte à charnières, la porte constitue l'enfant et le cadre de la porte est le parent.

    Conseil : Les contraintes fonctionnent avec les modificateurs de corps rigides plutôt qu'avec les objets eux-mêmes, mais il n'est pas nécessaire d'appliquer d'abord le modificateur. Si le modificateur n'est pas présent, vous êtes invité à l'ajouter lorsque vous appliquez la contrainte. Si vous confirmez l'invite, MassFX ajoute automatiquement les modificateurs.
  3. Dans la barre d'outils MassFX, cliquez sur la contrainte active prédéfinie ou sélectionnez-en une autre avec l'icône déroulante Contrainte.

    Si vous êtes invité à appliquer le modificateur de corps rigides MassFX, cliquez sur Oui pour continuer.

    Remarque : Dans tous les cas, vous ajoutez le même objet assistant : ContrainteU. Les différentes valeurs prédéfinies permettent simplement d'appliquer divers paramètres en fonction du type d'action de contrainte à exécuter. Après avoir appliqué l'assistant, vous pouvez ajuster ces valeurs pour créer tout type de contrainte.
  4. Déplacez le curseur horizontalement d'avant en arrière dans une fenêtre pour ajuster la taille d'affichage de la contrainte, puis cliquez pour définir la taille.

    Le groupe de fonctions de commandes bascule vers le groupe de fonctions Modifier et affiche les paramètres ContrainteU.

  5. Ajustez les paramètres autant que nécessaire, puis positionnez les objets et la contrainte à l'endroit où vous souhaitez qu'ils démarrent dans la simulation.
    Conseil : Vous pouvez ajuster plusieurs contraintes simultanément à l'aide du groupe de fonctions Editeur multi-objet.

Interface

Vous pouvez déplacer et faire pivoter la contrainte pour spécifier la portée du mouvement autorisé. Par exemple, faites pivoter une contrainte charnière pour indiquer la portée de rotation de l'objet enfant auquel la charnière est appliquée.

Pile de modificateurs - niveaux de sous-objet

La pile de modificateurs des contraintes MassFX permet d'accéder aux paramètres qui influent sur la simulation. Lorsqu'un niveau de sous-objet est actif, vous pouvez modifier le comportement des contraintes en transformant le gizmo correspondant.

Point d'attache enfant
L'emplacement où la contrainte se connecte au corps rigide enfant est représenté sous la forme d'un cube en mode filaire.

Lorsque vous accédez à ce niveau de sous-objet, MassFX sélectionne automatiquement le gizmo du point d'attache enfant et active l'outil Déplacement.

Contrainte universelle avec sous-objet Point d'attache enfant actif. La flèche rouge, ajoutée à des fins d'illustration, indique le point d'attache.

Torsion initiale enfant
Le centre par défaut du mouvement angulaire dans les limites de la contrainte est représenté sous la forme d'une flèche en mode filaire.

Lorsque vous accédez à ce niveau de sous-objet, MassFX sélectionne automatiquement le gizmo Torsion initiale enfant et active l'outil Rotation.

Contrainte universelle avec sous-objet Torsion initiale enfant (flèche blanche) actif. La flèche rouge, ajoutée à des fins d'illustration, indique le sous-objet Torsion initiale.

Panneau déroulant Général

Groupe Connexion

Utilisez ces contrôles pour affecter des corps rigides à la contrainte. Vous pouvez assigner des objets parents et enfants à une contrainte, ou un objet enfant uniquement. Le parent peut correspondre à tout type de corps rigide, tandis que l'enfant doit être dynamique.

Si vous assignez des objets parent et enfant, le mouvement du parent (s'il est dynamique) est affecté par la simulation et celui de l'enfant est affecté par le mouvement du parent, la contrainte et la simulation. Si vous assignez un objet enfant uniquement, l'enfant est affecté par la contrainte et la simulation.

Vous pouvez également utiliser ces contrôles pour supprimer des objets de la contrainte, modifier les points d'attache entre les objets contraints et la contrainte, et inverser la relation parent/enfant.

Parent
Définit le corps rigide à utiliser en tant que parent de la contrainte. Cliquez sur le bouton portant le même nom que l'objet associé, puis sélectionnez le corps rigide à utiliser en tant que nouveau parent dans la fenêtre. La contrainte est ensuite liée à l'objet parent, de sorte qu'elle pivote et se déplace avec ce dernier. L'objet parent peut être dynamique ou cinématique, mais il n'est pas statique.

Pour supprimer l'objet parent, cliquez sur le bouton X. Lorsque le parent n'est pas défini (non lié à un corps rigide), comme cela est indiqué par l'étiquette "Aucun", la contrainte est ancrée à l'espace global (c'est-à-dire à son emplacement actuel). La création d'une contrainte avec un seul corps rigide sélectionné définit ce corps rigide en tant qu'enfant sans parent, le contraignant ainsi par rapport à l'espace global.

Déplacer vers le pivot parent
Définit la position de la contrainte sur le pivot de l'objet parent. Cette option est utile pour les contraintes où l'objet enfant doit pivoter autour du pivot du parent, comme par exemple une boule de démolition contrainte vers l'extrémité d'une grue.
Basculer parent/enfant
Inverse la relation parent/enfant de sorte que le parent précédent devienne l'enfant et inversement.
Child
Définit le corps rigide à utiliser en tant qu'enfant de la contrainte. Cliquez sur le bouton portant le même nom que l'objet associé, puis sélectionnez le corps rigide à utiliser en tant que nouvel enfant dans la fenêtre. L'objet enfant peut constituer uniquement un corps rigide dynamique sans pour autant être un corps cinématique ou statique.

Vous pouvez utiliser le bouton X pour supprimer l'objet enfant, mais dans ce cas, cela donnera une contrainte incorrecte.

Déplacer vers le pivot enfant
Ajuste la position de la contrainte pour la situer sur le pivot de l'objet enfant. Cette option est utile pour des contraintes entre deux structures, par exemple.
Groupe Comportement
Comportement de contrainte
Choisissez si la contrainte utilise l'accélération ou la force des corps contraints pour déterminer le comportement.
  • Utiliser accélérationTient compte de l'accélération lors de l'application de comportements de ressort et d'amortissement. Les masses des corps rigides contraints n'interviennent pas dans ces comportements lorsque cette option est utilisée.

    L'option Utiliser accélération contribue à la solidité globale du joint, mais l'équilibrage des masses au niveau du joint peut ne pas être parfait.

  • Utiliser la forceLorsque ce mode est actif, toutes les équations relatives aux comportements de ressort et d'amortissement incluent la masse, ce qui génère des forces plutôt qu'une accélération. Les résultats risquent d'être plus difficiles à contrôler, mais peuvent engendrer un comportement physiquement plus précis.
    Remarque : (Pour les utilisateurs avancés) Lorsque vous utilisez ce mode, n'oubliez pas que les constantes de ressort et d'amortissement déterminent la masse et la structure du centre de gravité par rapport à la contrainte. L'utilisation du mode Force ne permet pas d'effectuer des calculs de conversion automatique afin de conserver le même comportement. En effet, cette fonctionnalité n'est pas conçue pour maintenir le même comportement que le mode Utiliser accélération. Pour employer le comportement du mode Utiliser accélération, augmentez ces valeurs manuellement lors de l'utilisation de l'option Limites adoucies (voir ci-dessous). Les calculs de solution fondamentaux étant différents dans MassFX, une conversion basée sur des correspondances exactes est impossible pour ce mode. Il peut être utile de commencer par multiplier les masses du parent et de l'enfant.
Limites de contrainte
Sélectionnez le comportement adopté par la contrainte lorsque le corps enfant atteint les limites définies par les paramètres des panneaux déroulants Limites de translation et Limites Balancement & Torsion (voir ci-dessous) :
  • Limites fortesLorsque le corps rigide enfant atteint le bord de l'intervalle de mouvement, il rebondit sur la limite en fonction de la valeur Rebond définie.

    Lorsque l'option Limites fortes est active, seuls les contrôles Limite et Rebond sont disponibles. Les paramètres de ressort et d'amortissement s'appliquent uniquement aux limites fortes.

  • Limites adoucies

    Ces limites sont dites "adoucies" car l'enfant peut les dépasser. Lorsque le corps rigide enfant atteint le bord de l'intervalle de mouvement (limite), il active les comportements de ressort et d'amortissement pour ralentir l'enfant et/ou appliquer une force permettant de le replacer dans la limite.

    Remarque : Si les forces sont suffisantes (ou, de la même façon, si les valeurs Ressort sont trop faibles), il peut rester hors de la limite indéfiniment, car celle-ci correspond simplement à l'étendue pour laquelle les comportements de ressort et d'amortissement sont activés.

    Lorsque les limites adoucies sont actives, seuls les contrôles Limite, Ressort et Amortissement sont disponibles. Les paramètres de rebond s'appliquent uniquement aux limites fortes.

Taille icône
Taille du dessin de l'assistant de contrainte dans les fenêtres. Cette propriété n'a pas d'effet sur la simulation; elle existe tout simplement pour que vous puissiez effectuer des contraintes suffisamment grandes afin qu'elles ne soient pas masquées dans les objets que ces assistants contraignent. Cependant, cette propriété n'agrandit pas vos contraintes de façon significative

Panneau déroulant Limites de translation

Ces paramètres permettent de spécifier l'étendue autorisée pour le mouvement linéaire de l'enfant contraint.

Remarque : Les paramètres numériques sont disponibles uniquement lorsqu'un axe au moins est défini sur Limité.
X/Y/Z
Pour chaque axe, sélectionnez la façon de contraindre le mouvement le long de l'axe :
  • Verrouillé Empêche les corps rigides de se déplacer le long de cet axe local.
  • LimitéPermet aux objets de se déplacer le long de cet axe local en fonction d'une valeur de limite de rayon (indépendamment du décalage initial entre le parent et l'enfant). Si plusieurs axes sont définis sur Limité, le mouvement est limité de façon radiale : à l'intérieur d'un cercle ou d'une sphère et non d'un carré ou d'une boîte. La distance de la limite du rayon est représentée visuellement dans les fenêtres pour chaque axe limité.
  • LibreLe mouvement des corps rigides le long de l'axe correspondant est illimité.
Rayon limite
Distance au long de l'axe limité ou de l'axe dans laquelle le parent et l'enfant peuvent se déplacer hors de leur décalage initial.
Rebond
Pour tout axe limité, il s'agit de l'amplitude dans laquelle les objets vont rebondir hors de la limite lorsqu'ils sont touchés. Une valeur de 0,0 indique un rebond nul, tandis qu'une valeur de 1,0 représente un rebond complet. Ce paramètre est disponible uniquement lorsque l'option Limites de contrainte est définie sur Limites fortes.
Spring
Pour tous les axes limités, il s'agit de la force du "ressort" qui permet de remettre les objets dans la limite si celle-ci est dépassée. Les valeurs faibles indiquent une faible force de ressort, tandis que les valeurs élevées remettent les objets dans la limite avec une force plus importante. Une valeur de 0,0 est une valeur spéciale indiquant une limite fixe, destinée à éviter que les objets ne dépassent les limites de la translation. Ce paramètre est disponible uniquement lorsque l'option Limites de contrainte est définie sur Limites adoucies.
Atténuation
Si la translation excède les limites pour tout axe limité, il s'agit de la quantité de "boue" que les objets traversent au-delà de la limite. Ce paramètre est disponible uniquement lorsque l'option Limites de contrainte est définie sur Limites adoucies.

Panneau déroulant Limites Balancement & Torsion

Ces paramètres permettent de spécifier l'étendue autorisée pour le mouvement angulaire de l'enfant contraint.

Remarque : Les paramètres numériques sont disponibles uniquement lorsque l'option Limité est sélectionnée.
Groupes Balancement Y et Balancement Z

Les balancements Y et Z font respectivement référence à la rotation de la contrainte autour des axes Y et Z locaux. Sélectionnez l'une des options suivantes pour chacun d'entre eux :

  • VerrouilléEmpêche l'objet parent et l'objet enfant d'effectuer une rotation autour de l'axe correspondant de la contrainte.
  • LimitéPermet au parent et à l'enfant d'effectuer une rotation autour du centre de l'axe selon un nombre de degrés fixe, spécifié par le paramètre Angle Limite.

    Pour décaler le point de centre, faites pivoter la contrainte. L'affichage de l'assistant Contrainte dans les fenêtres fait apparaître les limites.

  • LibrePermet au parent et à l'enfant une rotation non limitée autour de l'axe local de la contrainte.
Angle limite
Lorsque le balancement est défini sur Limité, il s'agit du nombre de degrés par rapport à son centre, nécessaire pour autoriser la rotation. Cette option est appliquée aux deux côtés. Par conséquent, l'intervalle de mouvement total représente deux fois cette valeur. Par exemple, si vous définissez Angle limite sur 45 degrés, l'angle total de la rotation autorisée est égal à 90 degrés.
Rebond
Lorsque le balancement est défini sur Limité, il s'agit de l'amplitude dans laquelle les objets vont rebondir hors de la limite lorsqu'ils sont touchés. Une valeur de 0,0 indique un rebond nul, tandis qu'une valeur de 1,0 représente un rebond complet. Ce paramètre est disponible uniquement lorsque l'option Limites de contrainte est définie sur Limites fortes.
Spring
Lorsque l'ouverture est définie sur Limitée, il s'agit de la force du ressort qui permet de remettre les objets dans la limite si celle-ci est dépassée. Les valeurs faibles indiquent une faible force de ressort, tandis que les valeurs élevées remettent les objets dans la limite avec une force plus importante. Une valeur de 0,0 est une valeur spéciale indiquant une limite fixe, destinée à éviter que les objets ne dépassent les limites de la torsion. Ce paramètre est disponible uniquement lorsque l'option Limites de contrainte est définie sur Limites adoucies.
Atténuation
Lorsque Torsion est défini sur Limité et que la limite est dépassée, il s'agit de la quantité de "boue" dans laquelle les objets pivotent au-delà de cette limite. Ce paramètre est disponible uniquement lorsque l'option Limites de contrainte est définie sur Limites adoucies.
Zone Torsion

Torsion signifie la rotation autour de l'axe X local de la contrainte.

  • VerrouilléEmpêche l'objet parent et l'objet enfant de pivoter autour de l'axe X local de la contrainte.
  • LimitéAutorise le parent et l'enfant à pivoter autour de l'axe X local dans une fourchette de degrés définie.
  • LibreAutorise le parent et l'enfant à pivoter librement autour de l'axe X local de la contrainte.
Limite
Lorsque Torsion est définie sur Limité, les valeurs Droite et Gauche sont exprimées en degrés absolus pour chaque arête de la limite. (L'affichage de ces limites dans les fenêtres peuvent vous aider à les modifier en fonction de vos besoins).
Rebond
Lorsque Torsion est définie sur Limité, il s'agit de l'amplitude à laquelle les objets vont rebondir hors de la limite lorsqu'ils sont touchés. Chaque limite peut avoir une valeur unique. Une valeur de 0,0 indique un rebond nul, tandis qu'une valeur de 1,0 représente un rebond complet. Ce paramètre est disponible uniquement lorsque l'option Limites de contrainte est définie sur Limites fortes.
Spring
Lorsque Torsion est défini sur Limité, il s'agit de la force du ressort qui permet de remettre les objets dans la limite si l'une des limites est dépassée. Chaque limite peut avoir une valeur unique. Les valeurs faibles indiquent une faible force de ressort, tandis que les valeurs élevées remettent les objets dans la limite avec une force plus importante. Une valeur de 0,0 est une valeur spéciale indiquant une limite fixe, destinée à éviter que les objets ne dépassent les limites de la torsion. Ce paramètre est disponible uniquement lorsque l'option Limites de contrainte est définie sur Limites adoucies.
Amortissement
Lorsque Torsion est défini sur Limité, il s'agit du degré de resistance que les objets peuvent supporter. Chaque limite peut avoir une valeur unique. Ce paramètre est disponible uniquement lorsque l'option Limites de contrainte est définie sur Limites adoucies.

Panneau déroulant Ressort

Les paramètres Rebond et Ressort des limites de contrainte (voir ci(dessus) contrôlent le comportement de la contrainte au-delà des arêtes de la limite, alors que les paramètres du panneau déroulant Ressorts sont toujours appliqués. Ces paramètres correspondent plutôt à ce que nous pourrions appeler un "ressort" dans une situation réelle.

Groupe Passer à position de repos
Ressort
Quantité de force qui remet systématiquement la translation de l'objet parent et de l'objet enfant dans leurs positions de décalage initiales. Des valeurs faibles indiquent une faible force de ressort, tandis que des valeurs élevées replacent les objets dans leur décalage initial avec une force plus importante. Une valeur de 0,0 indique une force de ressort nulle.
Amortissement
Si la valeur du ressort n'est pas égale à zéro, il s'agit de la quantité de "boue" qui limite la force du ressort. Ce paramètre n'entraîne pas l'effet de déplacement des objets dans la boue, mais diminue plutôt l'effet de ressort.
Groupe Passer à balanc. de repos

Cette option est similaire à l'option Passer à position de repos, à la différence qu'elle remet les objets dans leur décalage de rotation d'origine autour des axes Y et Z locaux, au lieu de les remettre dans leur position de décalage.

Groupe Passer à torsion de repos

Cette option est similaire à l'option Passer à balance de repos, à la différence qu'elle remet les objets dans leur décalage de rotation d'origine autour de l'axe X local.

Panneau déroulant Avancé

Collision Parent/Enfant
Lorsqu'elle est désactivée (par défaut), les corps rigides parents et enfants reliés par une contrainte ne peuvent pas entrer en collision les uns avec les autres. Par exemple, cela permet à des corps rigides destinés à une cuisse ou une jambe de se chevaucher au niveau du genou sans problème. Activez cette option pour permettre aux deux corps rigides de réagir l'un à l'autre, ainsi qu'aux autres.
Groupe Contrainte sécable
Cassable
Lorsque cette option est activée, la contrainte peut être interrompue au cours de la simulation. Si une force linéaire dépassant la valeur maximale ou si une force de torsion dépassant la valeur maximale (voir ci-dessous) est appliquée entre l'objet parent et l'objet enfant, la contrainte se "rompt" ; c'est-à-dire qu'elle est désactivée et qu'elle n'est plus appliquée.
Force max
Lorsque l'option Fragile est activée, il s'agit de la quantité de force linéaire au-delà de laquelle la contrainte sera supprimée. Pour faire en sorte que la contrainte soit plus difficile à rompre, augmentez la valeur de ce paramètre.
Remarque : Dans le groupe de fonctions Editeur multi-objet, ce paramètre est appelé "Force de rupture".
Torque max
Lorsque l'option Fragile est activée, il s'agit de la quantité de force de torsion au-delà de laquelle la contrainte sera supprimée. Pour faire en sorte que la contrainte soit plus difficile à rompre, augmentez la valeur de ce paramètre.
Remarque : Dans le groupe de fonctions Editeur multi-objet, ce paramètre est appelé "Couple de rupture".
Groupe projection
Type de projection
Lorsque les objets parents et enfants dépassent les limites de la contrainte, la projection résout le problème en les forçant à respecter ces limites.

La projection jointe est comparable à un "instrument contondant". Elle déplace juste un acteur, quelles que soient les collisions qui pourraient intervenir autrement. Ceci peut conduire à une pénétration des géométries de collision. Il est donc recommandé d'éviter l'utilisation de la projection jointe, sauf s'il existe de réels problèmes concernant des violations jointes. Dans ce cas, il convient d'utiliser cette option de manière judicieuse.

Choisissez une méthode de projection et définissez les valeurs correspondantes :

  • Aucune projectionLa projection n'est pas effectuée.
  • LinéaireProjette les distances linéaires uniquement. Définir la valeur de distance.

    Avec cette option, la simulation est plus rapide que si vous utilisez Linéaire et angulaire.

  • Linéaire et angulaireEffectue des projections linéaires et angulaires. Définissez les valeurs de distance et d'angle.

    Avec l'option Linéaire et angulaire, la simulation est plus lente, mais peut s'avérer plus précise.

Distance
Il s'agit de la distance minimale que la violation de contrainte doit dépasser afin que la projection prennent effet. Les erreurs inférieures à la valeur de cette distance n'utilisent pas de projection. Si cette valeur est trop faible, cela peut provoquer des oscillations indésirables dans la simulation.
Angle
Il s'agit de la valeur minimale de l'angle (en degrés) que la violation de contrainte doit dépasser afin que la projection prennent effet. Les erreurs inférieures à la valeur de cette distance n'utilisent pas de projection.

Panneau déroulant Noeuds relatifs

Ce panneau déroulant est disponible uniquement lorsque la contrainte fait partie d'un objet Poupée de chiffon.

Sélection d'une poupée de chiffon
Sélectionne l'objet Poupée de chiffon auquel la contrainte appartient.