Sistema elástico

Sistema Elástico

O MRTK vem com um sistema de simulação elástica que inclui uma grande variedade de subclasses extensíveis e flexíveis, oferecendo encadernações para molas de quaternion 4-dimensional, molas de volume 3-dimensional e sistemas de molas lineares simples.

Atualmente, os seguintes componentes MRTK que suportam o gestor de elásticos podem alavancar a funcionalidade dos elásticos:

Gestor de elásticos

Sistema Elástico2

Os processos de gestor de elásticos passados transformam-se e alimentam-nos no sistema elástico.

Permitir que os elásticos para componentes personalizados possam ser alcançados por dois passos:

  1. Chamando o método Initialize para iniciar a manipulação, atualizando o sistema com a transformação do hospedeiro atual.
  2. Consulta ApplyHostTransform sempre que um cálculo de elásticos deve ser realizado na transformação do alvo atualizado.

Note 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 de elásticos EnableElasticsUpdate pode ser configurada como falsa.

Por predefinição, o componente do gestor de elásticos, 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 deve ser ativado para tipos de transformação específicos para criar 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 vem com um conjunto de objetos de configuração que podem ser armazenados como objetos scriptable e partilhados entre diferentes instâncias ou pré-fabricados. As configurações podem ser partilhadas e ligadas quer como ficheiros de ativos scriptáveis individuais, quer como ativos scriptáveis aninhados dentro dos pré-fabricados. Outras configurações também podem ser definidas diretamente no caso sem ligar a um ativo scriptable externo ou aninhado.

O inspetor responsável pelo elástico indicará se uma configuração é partilhada ou inlinizada como parte da instância atual, mostrando uma mensagem no inspetor imobiliário. Além disso, as instâncias partilhadas não serão editáveis diretamente na própria janela de propriedade do gestor de elásticos, mas em vez disso o ativo a que está a ligar tem de ser diretamente modfied para evitar quaisquer 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
  • Elástico de rotação
  • Elástico de escala

Objeto de configuração elástica

Uma configuração elástica define propriedades para um sistema diferencial de oscilação harmónica amortecida. As seguintes propriedades podem ser ajustadas, mas já vêm com um conjunto de incumprimentos no MRTK:

  • Massa: massa do elemento oscilador simulado.
  • HandK: constante de mola da mão.
  • EndK: fim da mola da tampa constante.
  • SnapK: snap point spring constant.
  • Arrasto: fator arrastar/amortecedor, 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 a balança são representadas 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 se mover.

Limites elásticos de alongamento de volume

  • Alongamentos: representa os limites inferiores do espaço elástico.
  • Utilização Limites:se os limites de alongamento devem ser respeitados pelo sistema. Se for verdade, quando a iteração atual da posição do alvo estiver fora dos limites, a força final será aplicada.
  • SnapPoints: pontos dentro do espaço ao qual o sistema irá encaixar.
  • RepetiçõesSnapPoints: repete os pontos de encaixe para o infinito. Os pontos de encaixe existentes servirão como um modulo onde os pontos de encaixe reais são mapeados para os múltiplos inteiros mais próximos de cada ponto de encaixe.
  • SnapRadius: distância em que os pontos de estalido começam a forçar a mola.

Grelha de encaixe de volume elástico

Extensão elástica de quaternion

As extensões de quaternion definem um espaço de rotação de quatro dimensões em que o oscilador harmónico amortecida é livre de rodar.

Exemplo de rotação elástica

  • SnapPoints: ângulos euler aos quais o sistema irá estalar.
  • RepetiçõesSnapPoints: repete os pontos de encaixe. Os pontos de encaixe existentes servirão como um modulo onde os pontos de encaixe reais são mapeados para os múltiplos inteiros mais próximos de cada ponto de encaixe.
  • SnapRadius: ângulo de arco em que os pontos de encaixe começam a forçar a mola em graus euler.

Cena de exemplo de elásticos

Pode encontrar exemplos de configurações elásticas na ElasticSystemExample cena.

Cena de exemplo de elásticos