A ajuda de Restrição do MassFX permite que dois corpos rígidos trabalhem juntos, como ocorre com uma porta e sua estrutura, usando a Restrição de articulação. Alternativamente, é possível utilizar uma restrição para vincular um único corpo rígido a um ponto no espaço. Para obter uma visão geral de restrições, consulte Restrição física de objetos.
A interface da ajuda de Restrição consiste em diversas implementações no painel Modificar e alguns níveis de subobjetos de pilha de modificadores. Esses controles estão disponíveis somente para uma restrição por vez; se várias restrições forem selecionadas, as implementações não aparecerão. No entanto, é possível editar várias restrições selecionadas no painel do Editor de vários objetos da caixa de diálogo Ferramentas do MassFX. A maioria dos controles do painel do Editor de vários objetos são iguais aos do painel Modificar.
Procedimento
Para utilizar a restrição do MassFX:
A forma mais conveniente para aplicar uma restrição do MassFX é usar a barra de ferramentas do MassFX:
- Crie o objeto ou os objetos alvo da restrição. Utilize o painel de Hierarquia Controles de ponto de giro para posicionar os pontos de giro onde você deseja que as restrições sejam anexadas.
Por exemplo, se um objeto for uma porta, posicione seu ponto de giro ao longo da aresta vertical onde a dobradiça seria colocada no mundo real.
- Dependendo de sua preferência, se você quiser restringir um corpo rígido a um ponto no espaço ou a outro corpo rígido, selecione um ou dois objetos, respectivamente.
Com dois objetos, selecione o objeto pai e, em seguida, o filho. O objeto filho é o principal afetado pela restrição; por exemplo, em uma porta articulada, a porta é filho e a moldura da porta é o pai.
Dica: As restrições funcionam com os
modificadores de Corpo rígido, e não com os objetos em si, mas não é necessário aplicar o modificador primeiro. Se o modificador não estiver presente, você será solicitado a adicioná-lo ao aplicar a restrição. Se você confirmar a solicitação, o MassFX adicionará os modificadores automaticamente.
- Na barra de ferramentas do MassFX, clique na restrição ativa predefinida ou selecione outra no submenu Restrição.
Se solicitado a aplicar um modificador de corpo rígido do MassFX, clique em Sim para continuar.
Nota: Em todos os casos, você estará adicionando o mesmo objeto auxiliar: um UConstraint. As diferentes predefinições apenas aplicam várias configurações com base no tipo de ação de restrição a ser aplicado. Após aplicar a ajuda, é possível ajustar conforme necessário para criar qualquer tipo de restrição.
- Mova o mouse para frente e para trás horizontalmente em um viewport para ajustar o tamanho de exibição da restrição e clique para definir o tamanho.
O painel de comando alterna para o painel Modificar e exibe as configurações de UConstraint.
- Ajuste as configurações conforme necessário e posicione os objetos e a restrição onde eles devem começar na simulação.
Interface
Você pode mover e girar a restrição para especificar sua faixa de movimento permitida. Por exemplo, gire uma restrição de Articulação para indicar extensões de rotação do filho articulado.
Pilha de modificadores - Níveis de subobjeto
A pilha de modificadores para restrições do MassFX fornece acesso a configurações que afetam a simulação. Quando um nível de subobjeto está ativo, é possível alterar o modo como as restrições se comportam ao transformar a respectiva meta-alça.
- Ponto de vínculo filho
- O local onde a restrição se conecta ao corpo rígido filho, representado como um cubo com estrutura de arame.
Quando se acessa esse nível de subobjeto, o MassFX seleciona automaticamente a meta-alça do Ponto de vínculo filho e ativa a ferramenta Mover.
Restrição universal com subobjeto de Ponto de vínculo filho ativo. A seta vermelha, adicionada a título de ilustração, indica o ponto de vínculo.
- Torção inicial filho
- O centro padrão da movimentação angular dentro dos limites da restrição, representado como uma seta com estrutura de arame.
Quando se acessa esse nível de subobjeto, o MassFX seleciona automaticamente a meta-alça de Torção inicial filho e ativa a ferramenta Rotacionar.
Restrição universal com subobjeto de Torção inicial filho (seta branca) ativo. A seta vermelha, adicionada a título de ilustração, indica o subobjeto de Torção inicial.
Implementação geral
Grupo de conexão
Use estes controles para atribuir corpos rígidos à restrição. Você pode atribuir objetos pais e filhos a uma restrição, ou apenas um objeto filho. O pai pode ser qualquer tipo de corpo rígido; o filho deve ser dinâmico.
Se você atribuir objetos pais e filhos, o movimento do principal (se Dinâmico) é afetado pela simulação, e o do filho é afetado pelo movimento principal, pela restrição e pela simulação. Se você atribuir um objeto filho somente, ele é afetado pela restrição e pela simulação.
Também é possível utilizar estes controles para remover objetos da restrição, alterar os pontos de vínculo entre os objetos restritos e a restrição, e reverter as relações pai/filho.
- Principal
- Define o corpo rígido a ser usado como pai da restrição. Clique no botão com o nome do objeto associado e, em seguida, no viewport. Selecione o corpo rígido a ser usado como o novo pai. A restrição é vinculada ao objeto pai, girando e se movimentando com ele. O objeto pai pode ser dinâmico ou cinemático, mas não estático.
Para remover o objeto pai, clique no botão X. Quando o pai está indefinido (não vinculado a nenhum corpo rígido), como indicado pela legenda "Nenhum", a restrição é ancorada ao espaço global (isto é, sua localização atual). Criar uma restrição com um único corpo rígido selecionado define esse corpo rígido como filho, sem pai, restringindo o corpo rígido em relação ao espaço universal.
- Mover para ponto de giro do pai
- Define a posição da restrição no ponto de giro do objeto pai. Esta opção é útil para restrições em que o objeto filho deve girar em torno do ponto de giro do pai, como uma bola de demolição restrita à ponta de um guindaste.
- Alternar pai/filho
- Reverte as relações pai/filho, de modo que o pai anterior se torne o filho e vice-versa.
- Secundário
- Define o corpo rígido a ser usado como filho da restrição. Clique no botão com o nome do objeto associado e, em seguido, no viewport. Selecione o corpo rígido para utilizar como o novo filho. O objeto filho pode ser apenas um corpo rígido dinâmico, não cinemático ou estático.
É possível utilizar o botão X para remover o objeto filho, mas isso resulta em uma restrição inválida.
- Mover para ponto de giro do filho
- Ajuste a posição da restrição para ser situada no ponto de giro do objeto filho. Essa opção é útil para restrições entre dois ossos, por exemplo.
Grupo de comportamentos
- Comportamento de restrição
- Escolha se a restrição utiliza a aceleração ou a força dos corpos restritos para determinar o comportamento.
- Usar aceleração Leva em conta a aceleração ao executar o comportamento de mola e amortecimento. As massas do corpos rígidos restritos não influem no comportamento com esta opção.
A opção Usar aceleração beneficia a firmeza geral da junta, mas o equilíbrio da massa na junta pode não funcionar perfeitamente.
- Usar força Com este modo ativo, todas as equações de comportamento de mola e amortecimento incluem massa, o que resulta em forças em vez de aceleração. O controle dos resultados pode ser mais difícil, mas pode-se produzir um comportamento fisicamente mais preciso.
Nota: (Para usuários avançados) Quando você usar este modo, saiba que as constantes de mola e amortecimento, consideram a massa e o centro da estrutura de massa relativos à restrição. O uso do Modo de força não realiza cálculos de conversão automática para manter o mesmo comportamento, já que esse recurso não visa a manter o mesmo comportamento do modo Usar aceleração. Para coincidir com o comportamento do modo Usar aceleração, aumente esses valores manualmente ao usar a opção Limites flexíveis (veja a seguir). Os cálculos fundamentais do solucionador dentro do MassFX são diferentes; portanto, a conversão com correspondência exata para esse modo não é possível. Como ponto de partida útil, multiplique a massa do pai e filho.
- Limites de restrição
- Escolha como a restrição se comporta quando o corpo filho alcança os limites, como definido pelas configurações de Limites de conversão e pelas implementações de Limites de oscilação e torção (veja a seguir):
- Limites fixos Quando o corpo rígido filho encontra a aresta da faixa de movimento, ele quica no limite com base no valor de Ressalto definido.
Quando a opção Limites fixos está ativa, somente os controles de Limite e Ressalto estão disponíveis. As configurações de Mola e Amortecimento se aplicam apenas aos limites flexíveis.
-
Limites flexíveis
Esse tipo de limite é chamado de "flexível" porque o filho pode exceder o limite. Quando o corpo rígido filho encontra a aresta da faixa de movimento (limite), ativa o comportamento de mola e amortecimento para diminuir o filho e/ou aplicar força para trazê-lo de volta ao limite.
Nota: se as forças forem suficientemente fortes (ou, de forma semelhante, se os valores de Mola forem muito baixos), ele pode permanecer fora do limite indefinidamente, já que o limite é somente a extensão até a qual o comportamento de mola e amortecimento é ativado.
Quando a opção Limites flexíveis estiver ativa, somente os controles de Limite, Mola e Amortecimento estarão disponíveis. As configurações de Ressalto se aplicam somente a limites fixos.
- Tamanho do ícone
- O tamanho para o desenho da ajuda de restrição nos viewports. Esta propriedade não tem efeito na simulação; ela serve apenas para que você possa tornar suas restrições grandes o suficiente para não ficarem ocultas dentro dos objetos que restrinjam, mas não muito maiores.
Implementação de Limites de conversão
Use essas configurações para especificar os limites permissíveis de movimento linear do filho restrito.
Nota: As configurações numéricas só estão disponíveis quando pelo menos um eixo está definido como Limitado.
- X/Y/Z
- Para cada eixo, selecione como restringir o movimento ao longo do eixo:
- Bloqueado Impede que os corpos rígidos se movam ao longo desse eixo local.
- Limitado Permite que os objetos se movam ao longo desse eixo local em um valor do Raio do limite (afastando-se do deslocamento inicial entre o pai e o filho). Se mais de um eixo for definido como Limitado, o movimento é limitado radialmente: dentro de um círculo ou de uma esfera, não um quadrado ou caixa. A distância do Raio do limite é representada visualmente nos viewports para cada eixo Limitado.
- Livre O movimento de corpos rígidos ao longo do respectivo eixo é irrestrito.
- Raio do limite
- Distância ao longo do eixo limitado ou do eixo no qual pai e filho podem se afastar do seu deslocamento inicial.
- Avançar
- Para todos os eixos limitados, o volume do ressalto dos objetos em relação ao limite quando atingidos. Um valor 0,0 indica que não há ressalto; um valor 1,0 indica ressalto completo. Disponível somente quando a opção Limites de restrição estiver definida como Limites fixos.
- Mola
- Em todos os eixos limitados, a resistência da "mola" que puxa os objetos de volta ao limite, se o limite for excedido. Valores baixos indicam baixa força de mola; valores mais altos puxam os objetos com força crescente de volta ao limite. O valor 0,0 é especial e indica um limite fixo, que tenta evitar que os objetos excedam o limite de conversão. Disponível somente quando a opção Limites de restrição está definida como Limites flexíveis.
- Amortecimento
- Em todos os eixos limitados, se a conversão exceder o limite, é o volume de "lama" no qual eles se movem além do limite. Disponível somente quando a opção Limites de restrição está definida como Limites flexíveis.
Implementação de Limites de oscilação e torção
Utilize essas configurações para especificar os limites permissíveis de movimento angular do filho restrito.
Nota: As configurações numéricas estão disponíveis somente quando a opção Limite é selecionada.
Grupos Oscilação Y e Oscilação Z
Oscilação Y e Oscilação Z se referem à rotação em torno dos eixos locais Y e Z, respectivamente, da restrição. Selecione uma das seguintes opções para cada uma:
- Limite do ângulo
- Quando a opção Oscilação está definida como Limitado, o número de graus de afastamento do centro para permitir a rotação. Aplica-se a ambos os lados, de maneira que a faixa de movimento total seja o dobro desse valor. Por exemplo, se você definir o Limite do ângulo em 45 graus, a rotação total permitida será 90 graus.
- Avançar
- Quando a opção Oscilação está definida como Limitado, é o volume de ressalto dos objetos em relação ao limite quando atingidos. Um valor 0,0 indica que não há ressalto; um valor 1,0 indica ressalto completo. Disponível somente quando a opção Limites de restrição estiver definida como Limites fixos.
- Mola
- Quando a opção Oscilação está definida como Limitado, é a resistência da mola que puxa os objetos de volta ao limite, se o limite for excedido. Valores baixos indicam baixa força de mola; valores mais altos puxam os objetos com força crescente de volta ao limite. O valor 0,0 é especial e indica um limite fixo, que tenta evitar que os objetos excedam o limite de oscilação. Disponível somente quando a opção Limites de restrição está definida como Limites flexíveis.
- Amortecimento
- Quando a opção Oscilação está definida como Limitado e o limite é excedido, é o volume de "lama" em que os objetos girarão além do limite. Disponível somente quando a opção Limites de restrição está definida como Limites flexíveis.
Grupo de torção
Torção se refere à rotação em torno do eixo X local da restrição.
- Bloqueado Impede a rotação de objetos pai e filho em torno do eixo X local da restrição.
- Limitado Permite a rotação de pai e filho dentro de uma faixa de graus fixa em torno do eixo X local.
- Livre Permite a rotação irrestrita de pai e filho ao redor do eixo X local da restrição.
- Limite
- Quando a opção Torção está definida como Limitado, os valores de Esquerda e Direita são graus absolutos graus para cada aresta do limite. (A visualização desses limites nos viewports pode ajudar a ajustá-los conforme desejado.)
- Avançar
- Quando a opção Ressalto está definida como Limitado, é o volume de ressalto dos objetos em relação ao limite quando atingidos. Cada limite pode especificar um valor único. Um valor 0,0 indica que não há ressalto; um valor 1,0 indica ressalto completo. Disponível somente quando a opção Limites de restrição estiver definida como Limites fixos.
- Mola
- Quando a opção Torção está definida como Limitado, é a resistência da mola que puxa os objetos de volta ao limite, se o limite for excedido. Cada limite pode especificar um valor único. Valores baixos indicam baixa força de mola; valores mais altos puxam os objetos com força crescente de volta ao limite. O valor 0,0 é especial e indica um limite fixo, que tenta evitar que os objetos excedam o limite de oscilação. Disponível somente quando a opção Limites de restrição está definida como Limites flexíveis.
- Amortecimento
- Quando a opção Torção está definida como Limitado e qualquer limite é excedido, é o volume de "lama" em que os objetos girarão além do limite. Cada limite pode especificar um valor único. Disponível somente quando a opção Limites de restrição está definida como Limites flexíveis.
Implementação de Mola
As configurações de Ressalto e Mola para os limites de restrição (veja anterior) controlam como a restrição se comporta após as arestas dos limites, enquanto as configurações de implementação de Mola sempre são aplicadas. Essas configurações são mais parecidas com o que se pode chamar de "mola" no mundo real.
Grupo Saltar para posição de repouso
- Intensidade do salto
- É a quantidade de força que sempre puxa a conversão de objetos pai e filho de volta às suas posições de deslocamento iniciais. Os valores baixos indicam baixa força de mola; valores mais altos conduzem os objetos com força crescente de volta ao deslocamento inicial. Um valor 0,0 indica que não há força de mola.
- Amortecimento
- Se a Intensidade do salto for diferente de zero, é o volume de "lama" que restringe a força de mola. Ela não faz com que os objetos em si pareçam se mover através da lama, mas sim diminui o efeito da mola.
Grupo Saltar para oscilação de repouso
Semelhante à opção Saltar para posição de repouso, mas puxa os objetos de volta ao deslocamento da rotação inicial em torno dos eixos locais Y e Z, e não ao deslocamento de posição.
Grupo Saltar para torção de repouso
Semelhante a Saltar para oscilação de repouso, mas puxa os objetos de volta ao seu deslocamento da rotação inicial em torno do eixo X local.
Implementação Avançado
- Colisão principal/secundária
- Quando desativada (o padrão), os corpos rígidos pai e filho conectados por uma restrição não podem colidir um com o outro. Isso permite, por exemplo, que corpos rígidos para coxa e perna se sobreponham no joelho sem problemas. Ative esta opção para permitir que os dois corpos rígidos reajam entre si e aos outros.
Grupo Restrição quebrável
- Quebrável
- Quando ativada, a restrição pode ser quebrada durante a simulação. Se uma força linear exceder a Força máxima ou se uma força de torção que excede o Torque máximo (veja a seguir) for aplicada entre o objeto pai e o filho, a restrição é "quebrada", ou seja, é desativada e não é mais aplicada.
- Força máxima
- Quando a opção Quebrável estiver ativada, é a quantidade de força linear além da qual a restrição será quebrada. Para dificultar a quebra da restrição, aumente o valor.
Nota: No painel do Editor de vários objetos, esta configuração é denominada "Força de quebra".
- Torque máximo
- Quando a opção Quebrável estiver ativada, é a quantidade além da qual a restrição será quebrada. Para dificultar a quebra da restrição, aumente o valor.
Nota: No painel do Editor de vários objetos, essa configuração é denominada "Torque de quebra".
Grupo Projeção
- Tipo de projeção
- Quando os objetos pai e filho violam os limites da restrição, a projeção corrige a situação, forçando-os aos limites.
A Projeção da junta é um "instrumento grosseiro". Ela apenas move um ator, desconsiderando quaisquer conflitos que podem interferir. Isso pode levar à penetração de geometrias de colisão; portanto, é recomendável evitar o uso da projeção da junta, a não ser que haja problemas reais em termos de violação de junta, e, mesmo assim, usá-la cuidadosamente.
Escolha um método de projeção e defina os valores correspondentes:
- Sem projeção A projeção não é executada.
- Linear Projeta apenas distâncias lineares. Definir o valor de distância.
Esta opção simula mais rápido do que Linear e angular.
- Linear e angular Executa projeções linear e angular. Definir valores de distância e ângulo.
A opção Linear e angular simula mais lentamente, mas pode ser mais precisa.
- Distância
- É a distância mínima da violação de restrição a ser excedida para que a projeção tenha efeito. Erros abaixo dessa distância não usam projeção. A definição muito baixa desse valor pode trazer oscilações indesejadas para a simulação.
- Ângulo
- É o ângulo mínimo (em graus) de excesso da violação de restrição para que a projeção tenha efeito. Erros abaixo desse ângulo não usam projeção.
Implementação de nós relativos
Essa implementação só está disponível quando a restrição é parte de um objeto Ragdoll.
- Selecione "ragdoll"
- Seleciona a Ragdoll à qual pertence a restrição.