Sistema elástico — MRTK2

Sistema Elástico

O MRTK inclui um sistema de simulação elástica que inclui uma grande variedade de subclasses extensíveis e flexíveis, oferecendo enlaces para molas de quaterno 4 dimensões, molas de volume tridimensionais e sistemas de mola linear simples.

Atualmente, os seguintes componentes do MRTK que suportam o gestor de elásticos podem tirar partido da funcionalidade elástica:

Gestor de elásticos

Sistema Elástico2

O gestor de elásticos processa as transformações transmitidas e alimenta-as no sistema elástico.

A ativação de elásticos para componentes personalizados pode ser obtida através de dois passos:

  1. Ao chamar o método Initialize no início da manipulação, atualize o sistema com a transformação do anfitrião atual.
  2. Consultar ApplyHostTransform sempre que um cálculo elástico deve ser efetuado na transformação de destino atualizada.

Tenha em atenção que os elásticos continuarão a simular assim que a manipulação terminar (através do ciclo de atualização do gestor de elásticos). Para bloquear o comportamento, a atualização automática elástica EnableElasticsUpdate pode ser definida como falsa.

Por predefinição, o componente elastics manager, quando adicionado a um objeto de jogo, não terá elásticos ativados para qualquer tipo de transformação. O campo Manipulation types using elastic feedback tem de ser ativado para tipos de transformação específicos para criar a configuração e extensões elásticas para o tipo selecionado.

Configurações de elásticos

Semelhante às configurações de controlo de limites, o gestor elástico inclui um conjunto de objetos de configuração que podem ser armazenados como objetos passíveis de script e partilhados entre diferentes instâncias ou pré-fabricados. As configurações podem ser partilhadas e associadas como ficheiros de recursos passíveis de script individuais ou recursos aninhados de script dentro de pré-fabricados. Outras configurações também podem ser definidas diretamente na instância sem ligar a um recurso scriptável externo ou aninhado.

O inspetor do gestor de elásticos indicará se uma configuração é partilhada ou indicada como parte da instância atual ao mostrar uma mensagem no inspetor de propriedades. Além disso, as instâncias partilhadas não serão editáveis diretamente na própria janela de propriedades do gestor de elásticos, mas o recurso ao qual está a ligar tem de ser diretamente modfied para evitar alterações acidentais nas configurações partilhadas.

O gestor de elásticos oferece opções de objetos de configuração para os seguintes tipos de transformação, cada um deles representado por um objeto de configuração elástica:

  • Elástico de Tradução
  • Rotação Elástica
  • Dimensionar Elástico

Objeto de configuração elástica

Uma configuração elástica define propriedades para um sistema diferencial de oscilador harmónico húmido. As seguintes propriedades podem ser ajustadas, mas já vêm com um conjunto de predefinições no MRTK:

  • Massa: massa do elemento oscilador simulado.
  • HandK: constante de mola da mão.
  • EndK: end cap spring constant.
  • SnapK: constante de mola de ponto de encaixe.
  • Arrastar: fator de arrastar/mper, proporcional à velocidade.

Extensões elásticas

As definições de extensões elásticas variam consoante o tipo de manipulação. A tradução e o dimensionamento são representados por extensões elásticas de volume e a rotação é representada por uma extensão elástica de quaternion.

Extensão elástica do volume

As extensões de volume definem um espaço tridimensional no qual o oscilador harmónico húmido é livre de mover.

Limites elásticos de alongamento de volume

  • StretchBounds: representa os limites inferiores do espaço elástico.
  • UseBounds: se os limites dispersos devem ser respeitados pelo sistema. Se for verdadeiro, quando a iteração atual da posição de destino estiver fora dos limites dispersos, a força final será aplicada.
  • SnapPoints: aponta para dentro do espaço para o qual o sistema será encaixado.
  • RepeatSnapPoints: repete o ajuste aponta para o infinito. Os pontos de encaixe existentes servirão como um módulo onde os pontos de ajuste reais são mapeados para os múltiplos inteiros mais próximos de cada ponto de ajuste.
  • SnapRadius: a distância a que os pontos de encaixe começam a forçar a primavera.

Grelha de Ajuste de Volume Elástico

Extensão elástica da quaternion

As extensões de quaternion definem um espaço de rotação four dimensional no qual o oscilador harmónico húmido é livre de rodar.

Exemplo de Rotação Elástica

  • SnapPoints: ângulos de euler para os quais o sistema será encaixado.
  • RepeatSnapPoints: repete os pontos de ajuste. Os pontos de encaixe existentes servirão como um módulo onde os pontos de ajuste reais são mapeados para os múltiplos inteiros mais próximos de cada ponto de ajuste.
  • SnapRadius: ângulo do arco em que os pontos de encaixe começam a forçar a primavera em graus euler.

Cenário de exemplo de elásticos

Pode encontrar exemplos de configurações elásticas no ElasticSystemExample cenário.

Cenário de Exemplo de Elásticos