Como o nome sugere, uma restrição (ou "articulação") do MassFX restringe o movimento de corpos rígidos na simulação. Alguns exemplos de restrições no mundo real incluem articulações, unhas, tirolesas e eixos.
Todas as predefinições de restrição criam o mesmo tipo de objeto de ajuda com as mesmas configurações. Os diferentes tipos de restrição, como Articulação e Esfera e soquete, definem alguns valores padrão úteis para a restrição resultante.
Um objeto de ajuda da Restrição pode vincular dois corpos rígidos ou fixar um único corpo rígido a uma posição fixa no espaço global. A restrição constitui uma relação hierárquica: o objeto filho deve ser um corpo rígido dinâmico, ao passo que o objeto pai pode ser dinâmico, cinemático ou nada (para fixar ao espaço global).
Por padrão, uma restrição é "inquebrável": independentemente da força aplicada ou da dimensão em que os limites são quebrados, ela permanecerá em vigor e tentará mover os corpos rígidos de volta para o alcance desejado. No entanto, é possível definir uma restrição como quebrável com limites de força e torção independentes além dos quais a restrição é desativada e já não se aplica à simulação.
A maioria das restrições liga dois corpos rígidos. A restrição é vinculada como um filho do corpo rígido pai, se movendo e rodando junto com ele e, como o pai do corpo filho, ao qual ele transmite o movimento do corpo pai. Por exemplo, em uma simulação, os modelos de um carro e sua porta podem ser conectados por uma restrição de articulação, com o carro como pai e a porta como filho. Os limites de abertura e fecho da porta não mudam à medida que o carro roda, mas são relativos à orientação do carro.
Uma restrição entre dois corpos rígidos dinâmicos se comporta de forma semelhante ao mundo real: forças aplicadas a um corpo rígido podem ser transferidas para o outro, em qualquer direção. Na maioria do tempo, a direção de um carro puxa a porta do carro junto com ele. No entanto, se alunos de uma fraternidade fortes (e possivelmente embriagados) ficarem sem combustível e empurrarem o carro pelas portas abertas, o corpo do carro também se move, assumindo que as portas não quebram. Se o objeto pai for dinâmico, ele tem uma probabilidade de movimento igual à do filho.
Para criar uma restrição entre dois objetos, selecione o objeto pai na cena, seguido pelo objeto filho e, em seguida, escolha uma das predefinições do submenu Restrições na barra de ferramentas do MassFX. A restrição é inserida automaticamente no ponto de giro do objeto pai. Em seguida, à medida que você move o mouse em uma viewport, o sistema rastreia o cursor do mouse para definir o tamanho de exibição da restrição. Quanto mais perto você mover o mouse para o objeto pai, menor a restrição. Para finalizar o tamanho de exibição da restrição e terminar a criação da restrição, clique no mouse.
Você pode alterar o tamanho de exibição mais tarde como uma propriedade da restrição. Ele apenas afeta a dimensão dos desenhos da restrição nas vistas e não tem nenhum efeito nos efeitos de simulação da restrição.
A colocação da restrição afeta o deslocamento desde o pai onde a restrição é aplicada. Em casos em que dois corpos rígidos de encontram, como uma porta se conectado a uma ombreira de porta, é possível inserir a restrição no ponto de giro do objeto filho. Mas, em casos em que dois corpos rígidos são separados, como uma bola oscilando em um gancho, a posição ideal para a restrição é o ponto de giro do objeto pai. A implementação Avançadas do auxiliar de Restrição do MassFX tem botões para mover a restrição automaticamente para qualquer uma destas localizações.
Você também pode restringir um corpo rígido em relação a uma localização na cena. Isso é feito definindo o Pai de uma restrição existente como nada ou "indefinido," clicando no botão X ao lado do botão Pai na implementação Geral do auxiliar de Restrição do MassFX. Em alternativa, basta atribuir uma restrição a um único corpo rígido; isto define automaticamente o corpo como o filho e fixa a restrição no lugar.
O auxiliar de Restrição do MassFX suporta três tipos de elasticidade:
As restrições têm visualizações personalizadas nas viewports para mostrar o status bloqueado/limitado/livre da transição, oscilação e torção, juntamente com uma representação desses limites. Esta visualização é útil para compreender a rotação e os limites de uma restrição. No entanto, desenhar estas visualizações afeta o desempenho da viewport.
Se estiver visualizando uma simulação que tem várias restrições, você pode desativar a exibição de auxiliares para melhorar a velocidade de atualização das viewports. Pode fazê-lo no painel de Exibição ativando os auxiliares Ocultar por categoria.