Przewodnik konfiguracji profilu MRTK2
Mixed Reality Toolkit centralizuje jak najwięcej 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, stanowi główny punkt wejścia dla zestawu narzędzi w projekcie.
Uwaga
Mixed Reality Zestaw narzędzi "blokuje" domyślne ekrany konfiguracji, aby zawsze mieć 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.
Wszystkie "domyślne" profile zestawu narzędzi Mixed Reality Toolkit 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:
W przypadku wybrania elementu zawartości MixedRealityToolkitConfigurationProfile bez zestawu MixedRealityToolkit w scenie zostanie wyświetlony monit o automatyczne skonfigurowanie sceny przez zestaw narzędzi MRTK. Jest to opcjonalne; Jednak w scenie musi istnieć aktywny obiekt MixedRealityToolkit, aby uzyskać dostęp do wszystkich ekranów konfiguracji.
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:
- Główny profil konfiguracji zestawu narzędzi Mixed Reality Toolkit
- Ustawienia środowiska
- Ustawienia aparatu
- Ustawienia systemu wejściowego
- Ustawienia wizualizacji granic
- Wybór systemu teleportacji
- Ustawienia świadomości przestrzennej
- Ustawienia diagnostyki
- Ustawienia systemowe sceny
- Dodatkowe ustawienia usług
- Ustawienia akcji wejściowych
- Reguły akcji wejściowych
- Konfiguracja wskaźnika
- Konfiguracja gestów
- Polecenia mowy
- Konfiguracja mapowania kontrolera
- Ustawienia wizualizacji kontrolera
- Narzędzia edytora
- Zmienianie profilów w czasie wykonywania
- Zobacz też
Te profile konfiguracji zostały szczegółowo opisane poniżej w odpowiednich sekcjach:
Ustawienia środowiska
To ustawienie znajduje się na głównej stronie konfiguracji zestawu narzędzi Mixed Reality Toolkit, które definiuje domyślną operację skalowania środowiska Mixed Reality dla projektu.
Ustawienia aparatu
Ustawienia aparatu definiują sposób konfigurowania aparatu dla projektu Mixed Reality, definiując ogólne ustawienia przycinania, jakości i przezroczystości.
Ustawienia systemu wejściowego
Projekt Mixed Reality zapewnia niezawodny i dobrze wytrenowany system wejściowy do kierowania wszystkich zdarzeń wejściowych wokół projektu, który jest domyślnie wybierany.
Za systemem wejściowym dostarczanym przez zestaw narzędzi MRTK znajduje się kilka innych systemów, które ułatwiają zarządzanie złożonymi przeplotami wymaganymi do wyodrębnienia złożoności wieloplatformowej/mieszanej platformy.
Poszczególne profile zostały szczegółowo opisane poniżej:
- Ustawienia fokusu
- Ustawienia akcji wejściowych
- Reguły akcji wejściowych
- Konfiguracja wskaźnika
- Konfiguracja gestów
- Polecenia mowy
- Konfiguracja mapowania kontrolera
- Ustawienia wizualizacji kontrolera
Ustawienia wizualizacji granic
System granic tłumaczy postrzeganą granicę zgłoszoną przez podstawowy system granic/strażników platform. Konfiguracja wizualizatora granic umożliwia automatyczne pokazywanie zarejestrowanej granicy w scenie względem pozycji użytkownika. Granica będzie również reagować / aktualizować w zależności od tego, gdzie użytkownik teleportuje w scenie.
Wybór systemu teleportacji
Projekt Mixed Reality zapewnia w pełni funkcjonalny system teleportacji do zarządzania zdarzeniami teleportacji w projekcie, który jest domyślnie wybrany.
Ustawienia świadomości przestrzennej
Projekt Mixed Reality udostępnia przebudowany system rozpoznawania przestrzennego do pracy z systemami skanowania przestrzennego w projekcie, który jest domyślnie wybierany.
Mixed Reality Toolkit spatial awareness configuration (Konfiguracja rozpoznawania przestrzennego zestawu narzędzi) pozwala dostosować sposób uruchamiania systemu, niezależnie od tego, czy jest on automatycznie uruchamiany, czy później, a także ustawia zakresy dla pola widoku.
Umożliwia również skonfigurowanie ustawień siatki i powierzchni, a także dalsze dostosowywanie sposobu, w jaki projekt rozumie środowisko wokół Ciebie.
Dotyczy to tylko urządzeń, które mogą zapewnić zeskanowane środowisko.
Ustawienia diagnostyki
Opcjonalna, ale bardzo przydatna funkcja zestawu narzędzi MRTK to funkcja diagnostyki wtyczki.
Profil diagnostyki udostępnia kilka prostych systemów do monitorowania, gdy projekt jest uruchomiony, w tym poręczny przełącznik Włączania/wyłączania w celu włączenia/wyłączenia panelu wyświetlania w scenie.
Ustawienia systemowe sceny
Zestaw narzędzi MRTK udostępnia tę opcjonalną usługę, która ułatwia zarządzanie złożonym ładowaniem/zwalnianiem sceny addytywnej. Aby zdecydować, czy system sceny byłby dobrym rozwiązaniem dla projektu, przeczytaj Przewodnik po systemie sceny Wprowadzenie.
Dodatkowe ustawienia usług
Jednym z bardziej zaawansowanych obszarów zestawu narzędzi Mixed Reality Toolkit jest implementacja wzorca lokalizatora usług, która umożliwia rejestrowanie dowolnego "usługi" za pomocą platformy. Dzięki temu platforma może być rozszerzona o nowe funkcje /systemy łatwo, ale także umożliwia projektom korzystanie z tych funkcji do rejestrowania własnych składników środowiska uruchomieniowego.
Każda zarejestrowana usługa nadal uzyskuje pełną zaletę wszystkich zdarzeń aparatu Unity bez narzutów i kosztów implementacji wzorców MonoBehaviour lub clunky singleton. Dzięki temu można używać czystych składników języka C# bez nakładu pracy sceny na potrzeby uruchamiania procesów na pierwszym planie i w tle, np. systemów spawningu, logiki gry w czasie wykonywania lub praktycznie niczego innego.
Ustawienia akcji wejściowych
Akcje wejściowe umożliwiają abstrakcję 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ą danych wejściowych 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.
Reguły akcji wejściowych
Reguły akcji wejściowych umożliwiają automatyczne tłumaczenie zdarzenia zgłoszonego dla jednej akcji wejściowej w ramach różnych akcji na podstawie jej 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ą.
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 Mixed Reality Toolkit lub dowolny z własnych, jeśli implementują interfejs MRTK IMixedRealityPointer.
- 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 urządzenia HoloLens i zostanie rozszerzona dla innych systemów, ponieważ zostaną one dodane do zestawu narzędzi w przyszłości (nie ma jeszcze dat).
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:
- Ustawienia ogólne — 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
- 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 obsługuje obecnie tylko mowę podczas uruchamiania na platformach Windows 10, np. HoloLens i Windows 10 desktop, i zostanie rozszerzony dla innych systemów, ponieważ zostaną dodane do zestawu narzędzi MRTK w przyszłości (bez dat).
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.
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:
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 pozycji przekształcenia prefab kontrolera z położeniem przesunięcia).
Narzędzia edytora
Następujące narzędzia działają tylko w edytorze i są przydatne do poprawy produktywności deweloperskiej.
Inspektorzy usług
Inspektorzy usług to funkcja tylko 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.
Inspektorzy usług można włączyć, zaznaczając pozycję Użyj inspektorów usług w obszarze Ustawienia edytora 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 podczas 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 Ustawienia edytora 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.
Niebieski cylindr w scenie ma materiał z ZWrite off, więc żadne dane głębokości nie są zapisywane
Zmienianie profilów w czasie wykonywania
Istnieje możliwość zaktualizowania profilów w czasie wykonywania i zazwyczaj istnieją dwa różne scenariusze i czasy, w których w tym przypadku jest to przydatne:
- Przełącznik profilu inicjowania przed rozpoczęciem zestawu narzędzi MRTK: przed zainicjowaniem zestawu narzędzi MRTK, a profil staje się aktywny, zastępując profil nieumyślnie używany do włączania/wyłączania różnych funkcji na podstawie możliwości urządzenia. Jeśli na przykład środowisko działa w vr, które nie ma sprzętu do mapowania przestrzennego, prawdopodobnie nie ma sensu mieć włączonego składnika mapowania przestrzennego.
- Przełącznik profilu aktywnego: po uruchomieniu, po zainicjowaniu zestawu narzędzi MRTK, a profil stał się aktywny, zamieniając profil aktualnie 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 z daleka.
Przełącznik profilu inicjowania przed narzędziem 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ę, że skrypt (tj. wywołanie SetProfileBeforeInitialization
metody ) musi zostać wykonany wcześniej niż MixedRealityToolkit
skrypt, co 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 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 urządzenia HoloLens 1, jeden dla vr, jeden dla HoloLens 2 itp.). Można użyć 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ąc 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łowym skonfigurowaniem 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.