Guia de configuração de perfil MRTK


Configurações de experiência

Localizado na página principal de configuração do Mixed Reality Toolkit, esta definição define o funcionamento padrão da escala de ambiente de Realidade Mista para o seu projeto.

Definições de experiance

Definições de câmera

As definições da câmara definem como a câmara será configurada para o seu projeto de Realidade Mista, definindo as definições genéricas de clipping, qualidade e transparência.

Perfil da câmera

Definições do sistema de entrada

O Project de Realidade Mista fornece um sistema de entrada robusto e bem treinado para encaminhar todos os eventos de entrada em torno do projeto que é selecionado por padrão.

Definições do Sistema de Entrada 1

Por trás do Sistema de Entrada fornecido pelo MRTK estão vários outros sistemas, estes ajudam a conduzir e gerir as complexas inter-tecelagens necessárias para resumir as complexidades de um quadro de realidade multi-plataforma/mista.

Definições do Sistema de Entrada 2

Cada um dos perfis individuais é detalhado abaixo:


Definições de visualização de limites

O sistema de fronteira traduz a fronteira percebida relatada pelo sistema de fronteira/guardião das plataformas subjacentes. A configuração do visualizador de limites dá-lhe a capacidade de mostrar automaticamente o limite gravado dentro da sua cena em relação à posição do utilizador. O limite também reagirá/atualizará com base no local onde o utilizador teletransporta dentro da cena.

Definições de Visualização Boundry

Seleção do sistema de teletransporte

O Project de Realidade Mista fornece um sistema completo de teletransporte para gerir eventos de teletransporte no projeto que é selecionado por padrão.

Definições do Sistema de Teleport

Configurações de sensibilização espacial

O Project de Realidade Mista fornece um sistema de sensibilização espacial reconstruído para trabalhar com sistemas de digitalização espacial no projeto que é selecionado por padrão.

Definições de sensibilização espacial 1

A configuração de consciência espacial do Mixed Reality Toolkit permite adaptar o funcionamento do sistema, seja automaticamente quando a aplicação começa ou posteriormente programáticamente, bem como definir as extensões para o campo de visão.

Também permite configurar as definições de malha e superfície, personalizando ainda mais a forma como o seu projeto compreende o ambiente que o rodeia.

Isto só é aplicável para dispositivos que podem fornecer um ambiente digitalizado.

Configurações de Sensibilização Espacial 2

Definições de diagnóstico

Uma característica opcional, mas altamente útil, do MRTK é a funcionalidade de diagnóstico plugin.

Definições de diagnóstico

O perfil de diagnóstico fornece vários sistemas simples para monitorizar enquanto o projeto está em execução, incluindo um interruptor prático de ligar/desligar para ativar/desativar o painel de exibição na cena.

Definições de diagnóstico Definições do sistema 2

Configurações do sistema de cena

O MRTK fornece este serviço opcional para ajudá-lo a gerir a carga/descarga de cenas de aditivos complexos. Para decidir se o Sistema de Cena seria um bom ajuste para o seu projeto, leia o Guia de Início do Sistema de Cena.

Configurações do Sistema de Cena 1

Definições de serviços adicionais

Uma das áreas mais avançadas do Mixed Reality Toolkit é a implementação do padrão de localização de serviço que permite o registo de qualquer "Serviço" com a estrutura. Isto permite que o quadro seja alargado com novas funcionalidades/sistemas facilmente, mas também permite que os projetos aproveitem estas capacidades para registar os seus próprios componentes de tempo de execução.

Qualquer serviço registado ainda obtém a vantagem total de todos os eventos da Unidade, sem a sobrecarga e o custo de implementação de um MonoBehaviour ou padrões singleton desajeitados. Isto permite componentes C# puros sem cobertura de cena para executar processos de primeiro plano e de fundo, por exemplo, sistemas de desova, lógica de jogo de tempo de execução, ou praticamente qualquer outra coisa.

definições adicionais do sistema

Definições de ações de entrada

As ações de entrada fornecem uma forma de abstrair quaisquer interações físicas e entradas de um projeto de tempo de execução. Toda a entrada física (dos controladores / mãos / rato / etc) é traduzida para uma ação lógica de entrada para utilização no seu projeto de tempo de execução. Isto garante, independentemente de onde vem a entrada, o seu projeto simplesmente implementa estas ações como "Coisas a fazer" ou "Interagir com" nas suas cenas.

Para criar uma nova ação de entrada, basta clicar no botão "Adicionar uma nova Ação" e introduzir um nome de texto amigável para o que representa. Em seguida, basta selecionar um eixo (o tipo de dados) que a ação se destina a transmitir, ou no caso dos controladores físicos, o tipo de entrada física a que pode ser anexado, por exemplo:

Restrição do eixo Tipo de Dados Descrição Uso de exemplo
Nenhuma Sem dados Usado para uma ação ou evento vazio Gatilho do evento
Cru (reservado) objeto Reservado para uso futuro N/D
Digital bool Um boolean de dados do tipo ou fora Um botão de controlador
Eixo único float Um único valor de dados de precisão Uma entrada de alcance, por exemplo, um gatilho
Eixo Duplo Vetor2 Uma data de tipo flutuador duplo para vários eixos Um Dpad ou Polegar
Posição de Três Dof Vetor3 Dados do tipo posicional com 3 eixos flutuantes Controlador de estilo de posição 3D
Rotação de Três Dof Quaternion Entrada rotacional apenas com eixo de boia de 4 Um controlador de estilo de três graus, por exemplo, controlador Oculus Go
Seis Dof Pose de realidade mista (Vetor3, Quaternion) Uma entrada de estilo de posição e rotação com componentes vetor3 e quaternion Um controlador de movimento ou ponteiro

Os eventos que utilizam ações de entrada não se limitam a controladores físicos e ainda podem ser utilizados dentro do projeto para que os efeitos de tempo de execução gerem novas ações.

Nota

As ações de entrada são um dos poucos componentes que não são editáveis em tempo de execução, são apenas uma configuração de tempo de design. Este perfil não deve ser trocado enquanto o projeto estiver em execução devido à dependência do quadro (e dos seus projetos) sobre a iD gerada para cada ação.

Perfil de Configuração

Regras de ações de entrada

As regras de ação de entrada fornecem uma forma de traduzir automaticamente um evento angariado para uma ação de entrada em diferentes ações com base no seu valor de dados. Estes são geridos sem problemas no quadro e não incorrem em quaisquer custos de desempenho.

Por exemplo, converter o único evento de entrada de eixo duplo de um DPad para as 4 ações correspondentes "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" (como mostra a imagem abaixo).

Isto também pode ser feito no seu próprio código. No entanto, visto que este era um padrão muito comum, o quadro fornece um mecanismo para fazer isso "fora da caixa"

As regras de ação de entrada podem ser configuradas para qualquer um dos eixos de entrada disponíveis. No entanto, as ações de entrada de um tipo de eixo podem ser traduzidas para outra ação de entrada do mesmo tipo de eixo. Você pode mapear uma ação de eixo duplo para outra ação de eixo duplo, mas não para uma ação digital ou nenhuma.

Perfil das regras de ação de entrada


Configuração do ponteiro

Os ponteiros são utilizados para impulsionar a interatividade na cena a partir de qualquer dispositivo de entrada, dando simultaneamente uma direção e um teste de impacto com qualquer objeto numa cena (que tenha um colisor ligado, ou seja um componente de UI). Os ponteiros são configurados automaticamente para controladores, auscultadores (gaze/focus) e entrada rato/toque.

Os ponteiros também podem ser visualizados dentro da cena ativa usando um dos muitos componentes de linha fornecidos pelo Mixed Reality Toolkit, ou qualquer um dos seus se implementarem a interface MRTK IMixedRealityPointer.

Perfil do ponteiro de entrada
  • Extensão de indicação: Determina a extensão de indicação global para todos os ponteiros, incluindo o olhar.
  • A apontar máscaras de camada raycast: Determina quais as camadas contra as quais os ponteiros irão fazer raios.
  • Debug Draw Pointing Rays: Um ajudante de depurador para visualizar os raios usados para o raycasting.
  • Debug Draw Pointing Rays Colors: Um conjunto de cores para visualizar.
  • Gaze cursor prefab: Torna fácil especificar um cursor de olhar global para qualquer cena.

Há um botão de ajuda adicional para saltar rapidamente para o Gaze Provider para anular alguns valores específicos para Gaze, se necessário.


Configuração de gestos

Os gestos são uma implementação específica do sistema que lhe permite atribuir ações de entrada aos vários métodos de entrada "Gesto" fornecidos por vários SDKs (por exemplo, HoloLens).

Nota

A implementação atual do Gestures destina-se apenas ao HoloLens e será melhorada para outros sistemas, uma vez que são adicionados ao Toolkit no futuro (ainda sem datas).

Configuração do gesto

Comandos de fala

Tal como os gestos, algumas plataformas de tempo de execução também fornecem uma funcionalidade inteligente de "Falar ao Texto" com a capacidade de gerar comandos que podem ser recebidos por um projeto de Unidade. Este perfil de configuração permite-lhe configurar o seguinte:

  1. Geral Definições - "Iniciar o Comportamento" definido para Iniciar Automático ou Manual Começa se deve rubricar o KeywordRecognizer no arranque do sistema de entrada ou deixar o projeto decidir quando rubricar o KeywordRecognizer. "Nível de Confiança de Reconhecimento" é usado para rubricar a API do Conselho de Estado da Unidade
  2. Comandos de Fala - Regista "palavras" e traduz-as em ações de entrada que podem ser recebidas pelo seu projeto. Podem também ser anexados a ações de teclado, se necessário.

Importante

Atualmente, o sistema apenas suporta a fala quando funciona em plataformas Windows 10, por exemplo, HoloLens e Windows 10 desktop e será melhorado para outros sistemas, uma vez que são adicionados ao MRTK no futuro (ainda não há datas).

Ecrãs de perfil de configuração

Configuração de mapeamento do controlador

Um dos ecrãs de configuração do núcleo do Mixed Reality Toolkit é a capacidade de configurar e mapear os vários tipos de controladores que podem ser utilizados pelo seu projeto.

O ecrã de configuração abaixo permite configurar qualquer um dos controladores atualmente reconhecidos pelo conjunto de ferramentas.

Mapeamento do controlador

O MRTK fornece uma configuração predefinição para os seguintes controladores/sistemas:

  • Rato (incluindo suporte ao rato espacial 3D)
  • Telemóveis com
  • Controladores Xbox
  • Controladores Windows Mixed Reality
  • Gestos HoloLens
  • Controladores de varinha HTC Vive
  • Controladores Oculus Touch
  • Controlador remoto Oculus
  • Dispositivos Genéricos OpenVR (apenas utilizadores avançados)

Clicar na Imagem para qualquer um dos sistemas de controlador pré-construídos permite-lhe configurar uma única ação de entrada para todas as suas entradas correspondentes, por exemplo, ver o ecrã de configuração do controlador Oculus Touch abaixo:

Ecrã config do controlador

Existe também um ecrã avançado para configurar outros controladores de entrada OpenVR ou Unidade que não estão identificados acima.


Definições de visualização do controlador

Além do mapeamento do controlador, é fornecido um perfil de configuração separado para personalizar a forma como os seus controladores são apresentados dentro das suas cenas.

Isto pode ser configurado num "Global" (todas as instâncias de um controlador para uma mão específica) ou específico para um tipo/mão de controlador individual.

O MRTK também suporta modelos nativos do controlador SDK para Windows Mixed Reality e OpenVR. Estes são carregados como GameObjects na sua cena e posicionados usando o rastreio do controlador da plataforma.

Se a representação do controlador na cena tiver de ser compensada da posição do controlador físico, basta definir essa compensação em função do pré-fabricado do modelo do controlador (por exemplo, definir a posição de transformação do pré-fabricada do controlador com uma posição de compensação).

Perfil de visualização

Utilitários editoriais

Os seguintes utilitários funcionam apenas no editor e são úteis para melhorar a produtividade do desenvolvimento.

Utilitários de configuração de editor mrtk

Inspetores de serviço

Os Inspetores de Serviço são uma funcionalidade apenas para editores que gera objetos no local que representam serviços ativos. A seleção destes objetos exibe inspetores que oferecem ligações de documentação, controlam visualizações de editores e informações sobre o estado do serviço.

Inspetores de Serviço

Pode ativar os inspetores de serviço verificando inspetores de serviço de uso sob Definições editor no Perfil de Configuração.

Renderizador de tampão de profundidade

Partilhar o tampão de profundidade com algumas plataformas de realidade mista pode melhorar a estabilização do holograma. Por exemplo, a plataforma Windows Mixed Reality pode modificar a cena renderizada por pixel para ter em conta os movimentos subtis da cabeça durante o tempo que demorou a renderizar uma moldura. No entanto, estas técnicas requerem tampões de profundidade com dados precisos para saber onde e quão longe está a geometria do utilizador.

Para garantir que uma cena torna todos os dados necessários para o tampão de profundidade, os desenvolvedores podem alternar a funcionalidade tampão de profundidade de renderização sob o Definições do Editor no Perfil de Configuração. Isto levará o tampão de profundidade atual e torná-lo-á como cor para a vista da cena, aplicando um efeito pós-processamento, DepthBufferRenderer para a câmara principal.

Utilidade de tampão de profundidadeO cilindro azul na cena tem um material com ZWrite desligado para que nenhum dado de profundidade seja escrito

Mudança de perfis no tempo de execução

É possível atualizar perfis no tempo de execução, e geralmente existem dois cenários e momentos diferentes em que neste é útil:

  1. Interruptor de perfil de inicialização pré-MRTK: No arranque, antes da inicialização do MRTK e do perfil torna-se ativo, substituindo o perfil ainda não em uso para ativar/desativar diferentes funcionalidades com base nas capacidades do dispositivo. Por exemplo, se a experiência está a decorrer em VR que não tem hardware de mapeamento espacial provavelmente não faz sentido ter componente de mapeamento espacial ativado.
  2. Interruptor de perfil ativo: Após o arranque, após a inicialização do MRTK e um perfil tornou-se ativo, trocando o perfil atualmente em uso para alterar a forma como certas funcionalidades se comportam. Por exemplo, pode haver uma sub-experiência específica na aplicação que quer ponteiros de mãos distantes completamente removidos.

Interruptor de perfil de inicialização pré-MRTK

Isto pode ser conseguido anexando um MonoBehaviour (exemplo abaixo) que decorre antes da inicialização do MRTK (isto é, Acordado).). Note que o script (isto é, chamada SetProfileBeforeInitialization para) tem de ser executado mais cedo do que o script, o MixedRealityToolkit que pode ser alcançado através da definição das SetProfileBeforeInitialization.

using Microsoft.MixedReality.Toolkit;
using UnityEngine;

/// <summary>
/// Sample MonoBehaviour that will run before the MixedRealityToolkit object, and change
/// the profile, so that when the MRTK initializes it uses the profile specified below
/// rather than the one that is saved in its scene.
/// </summary>
/// <remarks>
/// Note that this script must have a higher priority in the script execution order compared
/// to that of MixedRealityToolkit.cs. See https://docs.unity3d.com/Manual/class-MonoManager.html
/// for more information on script execution order.
/// </remarks>
public class PreInitProfileSwapper : MonoBehaviour
{

    [SerializeField]
    private MixedRealityToolkitConfigurationProfile profileToUse = null;

    private void Awake()
    {
        // Here you could choose any arbitrary MixedRealityToolkitConfigurationProfile (for example, you could
        // add some platform checking code here to determine which profile to load).
        MixedRealityToolkit.SetProfileBeforeInitialization(profileToUse);
    }
}

Em vez de "profileToUse", é possível ter algum conjunto arbitrário de perfis que se aplicam a plataformas específicas (por exemplo, uma para HoloLens 1, uma para VR, uma para HoloLens 2, etc). É possível utilizar vários outros indicadores (por https://docs.unity3d.com/ScriptReference/SystemInfo.html exemplo, ou se a câmara é ou não opaca/transparente), para descobrir qual o perfil a carregar.

Interruptor de perfil ativo

Isto pode ser conseguido definindo a MixedRealityToolkit.Instance.ActiveProfile propriedade para um novo perfil substituindo o perfil ativo.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Note que ao definir ActiveProfile durante o tempo de funcionamento, a destruição dos serviços atualmente em execução ocorrerá após o último LateUpdate() de todos os serviços, e a instantânea e inicialização dos serviços associados ao novo perfil ocorrerá antes da primeira Atualização() de todos os serviços.

Pode ocorrer uma hesitação notável da aplicação durante este processo. Também qualquer script com maior prioridade do que o script pode introduzir a MixedRealityToolkit sua Atualização antes que o novo perfil esteja corretamente configurado. Consulte as definições da Ordem de Execução do Script para obter mais informações sobre a prioridade do script.

No processo de comutação de perfis, a câmara de UI existente permanecerá inalterada, garantindo que os componentes UI da Unidade que requerem lona ainda funcionam após o comutador.

Ver também

O Conjunto de Ferramentas de Realidade Mista centraliza o máximo possível de configuração necessária para gerir o conjunto de ferramentas (exceto para as verdadeiras "coisas" em tempo de execução).

Este guia é um simples walkthrough para cada um dos ecrãs de perfil de configuração atualmente disponíveis para o conjunto de ferramentas.

O principal perfil de configuração do Conjunto de Ferramentas de Realidade Mista

O perfil de configuração principal, que está ligado ao Jogo MistoRealityToolkit na sua Cena, fornece o principal ponto de entrada para o Toolkit no seu projeto.

Nota

O Mixed Reality Toolkit "bloqueia" os ecrãs de configuração predefinidos para garantir que tem sempre um ponto de partida comum para o seu projeto e é encorajado a começar a definir as suas próprias definições à medida que o seu projeto evolui. A configuração MRTK não é editável durante o modo de reprodução.

Perfil de configuração MRTK

Todos os perfis "predefinidos" do Conjunto de Ferramentas de Realidade Mista podem ser encontrados no projeto SDK na pasta Ativos/MRTK/SDK/Profiles.

Importante

DefaultHoloLens2ConfigurationProfile está otimizado para HoloLens 2. Consulte os perfis para obter os detalhes.

Ao abrir o principal perfil de configuração do conjunto de ferramentas de realidade mista, verá o seguinte ecrã no inspetor:

Cena de configuração MRTK

Se selecionar um ativo MixedRealityToolkitConfigurationProfile sem o MixedRealityToolkit na cena, perguntar-lhe-á se pretende que o MRTK configurar automaticamente a cena para si. Isto é opcional, no entanto, deve haver um objeto MistoRealityToolkit ativo na cena para aceder a todos os ecrãs de configuração.

Isto abriga a configuração atual do tempo de execução ativo para o projeto.

A partir daqui pode navegar para todos os perfis de configuração para o MRTK, incluindo:

Estes perfis de configuração são detalhados abaixo nas suas secções relevantes: