Exemplo de Física com Bloqueio de Mundo.

O Exemplo de Raio de Física oferece algumas experiências de física virtual habilitadas pelo sistema de coordenadas com bloqueio de mundo do World Locking Tools.

Histórico

No HoloLens, a relação entre uma âncora espacial e a cabeça ou outras âncoras espaciais pode ser alterada a qualquer momento, devido aos dados do sensor de entrada ou até mesmo ao reprocessamento dos dados existentes.

As âncoras espaciais do Unity reagem às alterações na pose da âncora espacial subjacente, arrastando o GameObject anexado juntamente com ela. Esse movimento causa dificuldades para a simulação de física:

  • Como a pose do GameObject com âncora espacial é definida explicitamente pela âncora espacial a cada quadro, ela não pode ser definida pela simulação (por exemplo, momento).
  • Como a âncora espacial está frequentemente atualizando a pose do GameObject, ela não parecerá estar em repouso em relação a outros RigidBodies ainda.
  • Devido aos deslocamentos implícitos do sistema de coordenadas do Unity, à medida que as âncoras espaciais ajustam as coordenadas dos Hologramas estáticos para mantê-los fixos em relação ao mundo real, os cálculos físicos, como rotas e trajetórias, serão desativados. Por exemplo, um projétil perfeitamente apontado para um Holograma ainda errará, se o Holograma for reposicionado pela âncora espacial entre o cálculo da trajetória e a chegada ao destino.

Quando as relações entre as âncoras espaciais medidas e os objetos virtuais visíveis bloqueados para elas se tornam inconsistentes, em vez de ajustar os objetos virtuais como as âncoras espaciais do Unity, o World Locking Tools ajusta a transformação da cabeça para minimizar os artefatos percebidos dessas inconsistências. Isso permite que os objetos virtuais pareçam consistentes em um espaço de coordenadas estável, eliminando os problemas acima.

Compilando o exemplo

O exemplo requer o recurso SpatialPerception. O recurso Microfone também é necessário para comandos de voz.

Este exemplo requer que as seguintes camadas sejam adicionadas às Marcas & Camadas do projeto:

  • Com pilares
  • SpatialMapping

Execução da demonstração

Os controles HUD

Este HUD básico não é específico para este Exemplo de Raio de Física, mas permite apenas o controle de runtime do comportamento do World Locking Tools para explorar suas funcionalidades. Ele está disponível como drop-in para desenvolvimento em qualquer aplicativo usando o World Locking Tools, conforme descrito na Configuração Inicial do World Locking Tools.

Captura de tela dos exemplos hud

As estatísticas de diagnóstico são exibidas por padrão, mas podem ser desabilitadas no Controle HUD.

Os botões de opção dos modos

A qualquer momento, o exemplo pode estar em qualquer um dos seguintes modos:

  • Ocioso – O exemplo de física não está processando a entrada no momento. O HUD e o menu de botões de opção, é claro, continuam processando as entradas.

  • Lançar Dardos – Uma trajetória é calculada de acordo com as leis básicas de física e exibida. O arco exibido mostra o caminho que um projetil disparado (por meio da seleção de gesto) seguirá. O dardo lançado seguirá uma trajetória balística, ricocheteando em qualquer superfície de colisão, incluindo malhas de Reconstrução Espacial (SR), que ele afeta.

    Esses Dardos são "removíveis", conforme descrito abaixo.

  • Adicionar Pilares – Em uma seleção de gesto, um raio é lançado para o mundo na direção indicada. Se ele encontrar uma superfície em que possa colidir, um pilar vertical será adicionado à cena nesse local.

    Cada Pilar adicionado pode colidir e pode servir como suporte de raio, conforme descrito abaixo. No entanto, há dois tipos de Pilares adicionados:

    • Se o pilar for colocado sobre uma superfície "removível", ele é simulado fisicamente (por exemplo, pode ser derrubado).
    • Caso contrário, o pilar pode colidir, mas é estático.

    Efetivamente, esta regra significa que se um pilar for adicionado na malha de SR, ele será estático, mas caso contrário, será dinâmico.

    Os pilares são "removíveis".

  • Adicionar Raio – Na primeira seleção, um raio é lançado na cena para encontrar o primeiro ponto de extremidade do raio. Depois disso, à medida que o raio de seleção é movido pela cena, uma linha é desenhada do primeiro ponto de extremidade para o ponto de extremidade atual. A segunda seleção de gesto criará um alongamento de raio entre o primeiro e os pontos de extremidade atuais.

    Equilibrar o Raio com pontos de extremidade nos Pilares exige claramente um espaço em que os Pilares do ponto de extremidade permanecerão fixos em relação uns aos outros.

    Os raios são "removíveis".

  • Remover Objetos – Na seleção, se o objeto de transmissão de raio for "removível", será removido da cena. Os objetos que são apoiados pelo objeto removido cairão.