Przewodnik konfiguracji profilu zestawu narzędzi MRTK

Zestaw Mixed Reality Toolkit centralizuje jak największą część konfiguracji wymaganej do zarządzania zestawem narzędzi (z wyjątkiem prawdziwego środowiska uruchomieniowego "rzeczy").

Ten przewodnik jest prostym przewodnikiem dla każdego z ekranów profilu konfiguracji, które są obecnie dostępne dla zestawu narzędzi.

Główny profil konfiguracji zestawu narzędzi Mixed Reality Toolkit

Główny profil konfiguracji, który jest dołączony do obiektu GameObject MixedRealityToolkit w scenie, zapewnia główny punkt wejścia dla zestawu narzędzi w projekcie.

Uwaga

Zestaw narzędzi Mixed Reality Toolkit "blokuje" domyślne ekrany konfiguracji, aby zapewnić, że zawsze masz wspólny punkt początkowy dla projektu i zachęcamy do rozpoczęcia definiowania własnych ustawień w miarę rozwoju projektu. Konfiguracja zestawu narzędzi MRTK nie jest edytowalna podczas trybu odtwarzania.

MRTK configuration profile

Wszystkie "domyślne" profile zestawu narzędzi Mixed Reality można znaleźć w projekcie zestawu SDK w folderze Assets/MRTK/SDK/Profiles.

Ważne

DefaultHoloLens2ConfigurationProfile jest zoptymalizowany pod kątem HoloLens 2. Aby uzyskać szczegółowe informacje, zobacz Profile .

Po otwarciu głównego profilu konfiguracji zestawu narzędzi Mixed Reality zobaczysz następujący ekran w inspektorze:

MRTK configuration scene

Jeśli wybierzesz zasób MixedRealityToolkitConfigurationProfile bez zestawu MixedRealityToolkit w scenie, zostanie wyświetlony monit o automatyczne skonfigurowanie sceny przez zestaw NARZĘDZI MRTK. Jest to jednak opcjonalne, aby uzyskać dostęp do wszystkich ekranów konfiguracji, musi istnieć aktywny obiekt MixedRealityToolkit.

Zawiera bieżącą konfigurację aktywnego środowiska uruchomieniowego dla projektu.

W tym miejscu możesz przejść do wszystkich profilów konfiguracji zestawu narzędzi MRTK, w tym:

Te profile konfiguracji zostały szczegółowo opisane w odpowiednich sekcjach:


Ustawienia środowiska

To ustawienie znajduje się na głównej stronie konfiguracji zestawu narzędzi Mixed Reality, to ustawienie definiuje domyślną operację skalowania środowiska Mixed Reality dla projektu.

Experiance settings

Ustawienia aparatu

Ustawienia aparatu określają sposób konfigurowania aparatu dla projektu Mixed Reality, definiując ogólne ustawienia wycinków, jakości i przezroczystości.

Camera Profile

Ustawienia systemu wejściowego

Mixed Reality Project zapewnia niezawodny i dobrze wytrenowany system wejściowy do routingu wszystkich zdarzeń wejściowych wokół projektu, który jest domyślnie wybierany.

Input System settings 1

Za systemem wejściowym udostępnianym przez MRTK znajdują się kilka innych systemów, które ułatwiają zarządzanie złożonymi weavingami wymaganymi do wyodrębnienia złożoności platformy wieloplatformowej /platformy rzeczywistości mieszanej.

Input System settings 2

Poszczególne profile zostały szczegółowo opisane poniżej:


Ustawienia wizualizacji granic

System granic tłumaczy postrzeganą granicę zgłoszoną przez podstawowy system granic platform / strażników. Konfiguracja wizualizatora granic umożliwia automatyczne wyświetlanie zarejestrowanej granicy w scenie względem pozycji użytkownika. Granica będzie również reagować / aktualizować na podstawie miejsca, w którym użytkownik teleportuje w scenie.

Boundry Visualization Settings

Wybór systemu teleportacji

Mixed Reality Project udostępnia w pełni funkcjonalny system teleportacji do zarządzania zdarzeniami teleportacji w projekcie, który jest domyślnie wybierany.

Teleport System settings

Ustawienia świadomości przestrzennej

Mixed Reality Project udostępnia przebudowany system rozpoznawania przestrzennego do pracy z systemami skanowania przestrzennego w projekcie, który jest domyślnie wybierany.

Spatial Awareness settings 1

Konfiguracja rozpoznawania przestrzennego zestawu narzędzi Mixed Reality Toolkit umożliwia dostosowanie sposobu uruchamiania systemu, niezależnie od tego, czy jest automatycznie uruchamiana, czy później, a także ustawia zakresy dla pola widoku.

Umożliwia również skonfigurowanie ustawień siatki i powierzchni, dalsze dostosowywanie sposobu, w jaki projekt rozumie środowisko wokół Ciebie.

Dotyczy to tylko urządzeń, które mogą zapewnić zeskanowane środowisko.

Spatial Awareness settings 2

Ustawienia diagnostyki

Opcjonalną, ale wysoce przydatną funkcją zestawu narzędzi MRTK jest funkcja diagnostyki wtyczek.

Diagnostics settings

Profil diagnostyki udostępnia kilka prostych systemów do monitorowania, gdy projekt jest uruchomiony, w tym poręczny przełącznik włączony/wyłączony, aby włączyć/wyłączyć panel wyświetlania w scenie.

Diagnostics settings System settings 2

Ustawienia systemu sceny

Zestaw NARZĘDZI MRTK zapewnia tę opcjonalną usługę, która ułatwia zarządzanie złożonym ładowaniem/zwalnianiem sceny addytywnej. Aby zdecydować, czy system scen będzie dobrym rozwiązaniem dla projektu, przeczytaj Przewodnik po systemie sceny Wprowadzenie.

Scene System settings 1

Dodatkowe ustawienia usług

Jednym z bardziej zaawansowanych obszarów zestawu narzędzi Mixed Reality jest implementacja wzorca lokalizatora usług, która umożliwia rejestrowanie dowolnego "usługi" za pomocą platformy. Dzięki temu platforma może zostać rozszerzona o nowe funkcje/systemy w łatwy sposób, ale także umożliwia projektom korzystanie z tych funkcji w celu rejestrowania własnych składników środowiska uruchomieniowego.

Każda zarejestrowana usługa nadal uzyskuje pełną przewagę wszystkich zdarzeń aparatu Unity bez nakładu pracy i kosztów implementacji wzorców monoBehaviour lub clunky singleton. Umożliwia to korzystanie z czystych składników języka C# bez narzutów sceny na uruchamianie zarówno procesów pierwszego planu, jak i procesów w tle, np. systemów spawningu, logiki gier środowiska uruchomieniowego lub praktycznie wszystkich innych.

additional System settings

Ustawienia akcji wejściowych

Akcje wejściowe umożliwiają abstrakcje wszelkich interakcji fizycznych i danych wejściowych z projektu środowiska uruchomieniowego. Wszystkie dane wejściowe fizyczne (z kontrolerów/ rąk/myszy/ itp.) są tłumaczone na akcję logiczną wejściową do użycia w projekcie środowiska uruchomieniowego. Gwarantuje to, że niezależnie od tego, skąd pochodzą dane wejściowe, projekt po prostu implementuje te akcje jako "Rzeczy do zrobienia" lub "Interakcja z" w scenach.

Aby utworzyć nową akcję wejściową, po prostu kliknij przycisk "Dodaj nową akcję" i wprowadź przyjazną nazwę tekstową tego, co reprezentuje. Następnie wystarczy wybrać oś (typ danych), do której ma zostać przekazana akcja, lub w przypadku kontrolerów fizycznych, do którego można dołączyć fizyczny typ danych wejściowych, na przykład:

Ograniczenie osi Typ danych Opis Przykładowe użycie
Brak Brak danych Używane do pustej akcji lub zdarzenia Wyzwalacz zdarzenia
Nieprzetworzone (zarezerwowane) object Zarezerwowane do użytku w przyszłości Nie dotyczy
Digital bool Wartość logiczna typu włączonego lub wyłączonego Przycisk kontrolera
Pojedyncza oś float Pojedyncza wartość danych precyzji Dane wejściowe z zakresem, np. wyzwalacz
Podwójna oś Vector2 Data podwójnego typu zmiennoprzecinkowego dla wielu osi Dpad lub kciuk
Trzy położenie narzędzia Dof Wektor3 Dane typu pozycyjnego z 3 osi zmiennoprzecinkowej Tylko kontroler położenia 3D
Trzy obracanie dof Quaternion Wejście obrotowe tylko z 4 osiami zmiennoprzecinkowymi Kontroler stylu trzech stopni, np. kontroler Oculus Go
Sześć dof Mixed Reality Pose (Vector3, Quaternion) Wejście stylu położenia i rotacji zarówno ze składnikami Vector3, jak i Quaternion Kontroler ruchu lub wskaźnik

Zdarzenia korzystające z akcji wejściowych nie są ograniczone do kontrolerów fizycznych i mogą być nadal używane w projekcie w celu wygenerowania nowych akcji przez efekty środowiska uruchomieniowego.

Uwaga

Akcje wejściowe są jednym z niewielu składników, które nie są edytowalne w czasie wykonywania, są tylko konfiguracją czasu projektowania. Ten profil nie powinien zostać zamieniony, podczas gdy projekt jest uruchomiony ze względu na zależność struktury (i projektów) od identyfikatora wygenerowanego dla każdej akcji.

Configuration Profile

Reguły akcji wejściowych

Reguły akcji wejściowych umożliwiają automatyczne tłumaczenie zdarzenia zgłoszonego dla jednej akcji wejściowej w różnych akcjach na podstawie jego wartości danych. Są one bezproblemowo zarządzane w ramach platformy i nie generują żadnych kosztów wydajności.

Na przykład przekonwertowanie zdarzenia wejściowego pojedynczej osi podwójnej z DPad na 4 odpowiadające "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" akcji (jak pokazano na poniższej ilustracji).

Można to również zrobić we własnym kodzie. Jednak, widząc, że był to bardzo typowy wzorzec, struktura zapewnia mechanizm wykonywania tego "gotowego do użycia"

Reguły akcji wejściowej można skonfigurować dla dowolnej z dostępnych osi wejściowych. Jednak akcje wejściowe z jednego typu osi można przetłumaczyć na inną akcję wejściową tego samego typu osi. Możesz zamapować akcję osi podwójnej na inną akcję osi podwójnej, ale nie na akcję cyfrową lub brakową.

Input action rules profile


Konfiguracja wskaźnika

Wskaźniki służą do kierowania interakcyjnością w scenie z dowolnego urządzenia wejściowego, dając zarówno kierunek, jak i test trafienia z dowolnym obiektem w scenie (który ma dołączony zderzacz lub jest składnikiem interfejsu użytkownika). Wskaźniki są domyślnie automatycznie konfigurowane dla kontrolerów, zestawów nagłownych (spojrzenie /koncentracja) i myszy / dotyku wejścia.

Wskaźniki można również wizualizować w aktywnej scenie przy użyciu jednego z wielu składników linii dostarczonych przez zestaw narzędzi Mixed Reality lub dowolny z własnych, jeśli implementują interfejs MRTK IMixedRealityPointer.

Input Pointer Profile
  • Zakres wskazujący: określa globalny zakres wskazywania dla wszystkich wskaźników, w tym spojrzenia.
  • Wskazywanie maski warstwy Raycast: określa, które warstwy wskaźniki będą promieniować przeciwko.
  • Debugowanie promieni wskazujących rysowanie: pomocnik debugowania do wizualizowania promieni używanych do raycastingu.
  • Debugowanie kolorów promieni wskazujących na rysowanie: zestaw kolorów do użycia do wizualizacji.
  • Spojrzenie kursor prefab: ułatwia określenie globalnego kursora spojrzenia dla każdej sceny.

Istnieje dodatkowy przycisk pomocnika, który umożliwia szybkie przejście do dostawcy spojrzenia, aby w razie potrzeby zastąpić niektóre określone wartości dla funkcji Gaze.


Konfiguracja gestów

Gesty to implementacja specyficzna dla systemu umożliwiająca przypisywanie akcji wejściowych do różnych metod wejściowych "Gest" dostarczanych przez różne zestawy SDK (np. HoloLens).

Uwaga

Bieżąca implementacja gestów dotyczy tylko HoloLens i zostanie rozszerzona dla innych systemów, ponieważ zostaną one dodane do zestawu narzędzi w przyszłości (nie ma jeszcze dat).

Gesture configuration

Polecenia mowy

Podobnie jak w przypadku gestów, niektóre platformy środowiska uruchomieniowego zapewniają również inteligentną funkcję zamiany mowy na tekst z możliwością generowania poleceń, które mogą być odbierane przez projekt aparatu Unity. Ten profil konfiguracji umożliwia skonfigurowanie następujących elementów:

  1. Ogólne Ustawienia — ustawienie "Zachowanie podczas uruchamiania początkowego" na uruchamianie automatyczne lub uruchamianie ręczne określa, czy zainicjować element KeywordRecognizer podczas uruchamiania systemu wejściowego, czy pozwolić projektowi zdecydować, kiedy zainicjować element KeywordRecognizer. Element "Recognition Confidence Level" służy do inicjowania interfejsu API Słowa kluczowegoRecognizer aparatu Unity
  2. Polecenia mowy — rejestruje "wyrazy" i tłumaczy je na akcje wejściowe, które mogą być odbierane przez projekt. W razie potrzeby można je również dołączyć do akcji klawiatury.

Ważne

System obecnie obsługuje mowę tylko podczas uruchamiania na platformach Windows 10, np. HoloLens i Windows 10 desktop i zostanie rozszerzony dla innych systemów, ponieważ zostaną one dodane do zestawu narzędzi MRTK w przyszłości (bez dat).

Configuration Profile screens

Konfiguracja mapowania kontrolera

Jednym z podstawowych ekranów konfiguracji zestawu narzędzi Mixed Reality Toolkit jest możliwość konfigurowania i mapowania różnych typów kontrolerów, które mogą być używane przez projekt.

Poniższy ekran konfiguracji umożliwia skonfigurowanie dowolnego kontrolera, który jest obecnie rozpoznawany przez zestaw narzędzi.

Controller Mapping

Zestaw narzędzi MRTK zapewnia domyślną konfigurację dla następujących kontrolerów/systemów:

  • Mysz (w tym obsługa myszy przestrzennej 3D)
  • Telefony z ekranem
  • Kontrolery xbox
  • kontrolery Windows Mixed Reality
  • gesty HoloLens
  • Kontrolery różdżek HTC Vive
  • Kontrolery Oculus Touch
  • Oculus Remote Controller
  • Ogólne urządzenia OpenVR (tylko użytkownicy zaawansowani)

Kliknięcie obrazu dla dowolnego wstępnie utworzonego systemu kontrolera umożliwia skonfigurowanie pojedynczej akcji wejściowej dla wszystkich odpowiednich danych wejściowych, na przykład zobacz ekran konfiguracji kontrolera Oculus Touch poniżej:

Controller config screen

Istnieje również zaawansowany ekran konfigurowania innych kontrolerów wejściowych OpenVR lub Unity, które nie zostały zidentyfikowane powyżej.


Ustawienia wizualizacji kontrolera

Oprócz mapowania kontrolera dostępny jest oddzielny profil konfiguracji, który umożliwia dostosowanie sposobu prezentowania kontrolerów w scenach.

Można to skonfigurować w lokalizacji "Globalnej" (wszystkie wystąpienia kontrolera dla określonej ręki) lub specyficzne dla pojedynczego typu /ręki kontrolera.

Zestaw NARZĘDZI MRTK obsługuje również natywne modele kontrolera zestawu SDK dla Windows Mixed Reality i openVR. Są one ładowane jako obiekty GameObject w scenie i umieszczone przy użyciu śledzenia kontrolera platformy.

Jeśli reprezentacja kontrolera w scenie musi zostać zrównoważona z pozycji kontrolera fizycznego, po prostu ustaw to przesunięcie względem prefab modelu kontrolera (np. ustawienie położenia przekształcenia prefab kontrolera z przesunięciem).

Visualization profile

Narzędzia edytora

Poniższe narzędzia działają tylko w edytorze i są przydatne do poprawy produktywności programistycznej.

MRTK Editor Configuration Utilities

Inspektorzy usług

Inspektorzy usług to funkcja tylko do edytora, która generuje obiekty w scenie reprezentujące aktywne usługi. Wybranie tych obiektów powoduje wyświetlenie inspektorów oferujących linki do dokumentacji, kontrolę nad wizualizacjami edytora i wgląd w stan usługi.

Service Inspectors

Inspektorzy usług można włączyć, zaznaczając pozycję Użyj inspektorów usług w obszarze Edytor Ustawienia w profilu konfiguracji.

Moduł renderowania buforu głębokości

Udostępnianie buforu głębokości niektórym platformom rzeczywistości mieszanej może poprawić stabilizację hologramu. Na przykład platforma Windows Mixed Reality może zmodyfikować renderowaną scenę na piksel, aby uwzględnić subtelne ruchy głowy w czasie renderowania ramki. Jednak te techniki wymagają buforów głębokości z dokładnymi danymi, aby dowiedzieć się, gdzie i jak daleko jest geometria od użytkownika.

Aby zapewnić, że scena renderuje wszystkie niezbędne dane do buforu głębokości, deweloperzy mogą przełączać funkcję Bufor głębokości renderowania w obszarze Edytor Ustawienia w profilu konfiguracji. Spowoduje to przejście do bieżącego buforu głębokości i renderowanie go jako koloru do widoku sceny przez zastosowanie efektu przetwarzania końcowego, DepthBufferRenderer, do głównego aparatu.

Render Depth Buffer UtilityNiebieski cylinder na scenie ma materiał z ZWrite off, więc nie są zapisywane żadne dane głębokości

Zmienianie profilów w czasie wykonywania

Istnieje możliwość aktualizowania profilów w czasie wykonywania i zwykle istnieją dwa różne scenariusze i czasy, w których jest to przydatne:

  1. Przełącznik profilu inicjowania zestawu narzędzi MRTK przed zainicjowaniem zestawu narzędzi MRTK, a profil staje się aktywny, zastępując profil nieumyślnie używany, aby włączyć/wyłączyć różne funkcje na podstawie możliwości urządzenia. Jeśli na przykład środowisko jest uruchomione w vr, które nie ma sprzętu mapowania przestrzennego, prawdopodobnie nie ma sensu mieć włączonego składnika mapowania przestrzennego.
  2. Przełącznik profilu aktywnego: po uruchomieniu po zainicjowaniu zestawu narzędzi MRTK i aktywowania profilu zamieniono profil, który jest obecnie używany w celu zmiany sposobu zachowania niektórych funkcji. Na przykład w aplikacji może istnieć określone środowisko podrzędne, które chce całkowicie usunąć wskaźniki o dużej ręki.

Przełącznik profilu inicjowania przed zestawem narzędzi MRTK

Można to osiągnąć, dołączając element MonoBehaviour (przykład poniżej), który jest uruchamiany przed zainicjowaniem zestawu narzędzi MRTK (tj. Awake()). Zwróć uwagę na to, że skrypt (tj. wywołanie metody SetProfileBeforeInitialization) musi zostać wykonany wcześniej niż MixedRealityToolkit skrypt, który można osiągnąć, ustawiając ustawienia Kolejność wykonywania skryptu.

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);
    }
}

Zamiast "profileToUse", można mieć dowolny zestaw profilów, które mają zastosowanie do określonych platform (na przykład jeden dla HoloLens 1, jeden dla VR, jeden dla HoloLens 2 itp.). Istnieje możliwość użycia różnych innych wskaźników (np. https://docs.unity3d.com/ScriptReference/SystemInfo.html, lub tego, czy aparat jest nieprzezroczysty/przezroczysty), aby ustalić, który profil ma być ładowany.

Przełącznik profilu aktywnego

Można to zrobić, ustawiając MixedRealityToolkit.Instance.ActiveProfile właściwość na nowy profil zastępujący aktywny profil.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Uwaga podczas ustawiania ActiveProfile w czasie wykonywania zniszczenie aktualnie uruchomionych usług nastąpi po ostatnim LateUpdate() wszystkich usług, a wystąpienie i inicjowanie usług skojarzonych z nowym profilem nastąpi przed pierwszą aktualizacją wszystkich usług.

Zauważalne wahania aplikacji mogą wystąpić podczas tego procesu. Ponadto każdy skrypt o wyższym priorytecie niż MixedRealityToolkit skrypt może wprowadzić jego aktualizację przed prawidłową konfiguracją nowego profilu. Aby uzyskać więcej informacji na temat priorytetu skryptu, zobacz Ustawienia kolejności wykonywania skryptu .

W procesie przełączania profilu istniejący aparat interfejsu użytkownika pozostanie niezmieniony, zapewniając składniki interfejsu użytkownika aparatu Unity, które wymagają kanwy nadal działają po przełączeniu.

Zobacz też