MRTK profili yapılandırma kılavuzu
Karma Gerçeklik Araç Seti, araç setlerini yönetmek için gereken yapılandırmanın mümkün olduğunca büyük bir fazlasını merkezi hale getiriyor (gerçek çalışma zamanı "şeyler" dışında).
Bu kılavuz, şu anda araç seti için kullanılabilen yapılandırma profili ekranlarının her biri için basit bir kılavuz sağlar.
Ana Karma Gerçeklik Araç Seti yapılandırma profili
Sahneniz'de MixedRealityToolkit GameObject'e eklenen ana yapılandırma profili, projenizin Toolkit için ana giriş noktasını sağlar.
Not
Karma Gerçeklik Araç Seti, projeniz için her zaman ortak bir başlangıç noktasına sahip olduğundan ve projeniz geliştikçe kendi ayarlarınızı tanımlamaya başlamanız için varsayılan yapılandırma ekranlarını "kilitler". MRTK yapılandırması, oynatma modu sırasında düzenlenemez.
Karma Gerçeklik Araç Seti için tüm "varsayılan" profiller Varlıklar/MRTK/SDK/Profiller klasöründeKI SDK projesinde bulunabilir.
Önemli
DefaultHoloLens2ConfigurationProfile, HoloLens 2 için iyileştirilmiştir. Ayrıntılar için bkz. Profiller.
Ana Karma Gerçeklik Araç Seti Yapılandırma Profili'ne bakarak denetçide aşağıdaki ekranı görürsünüz:
Sahnede MixedRealityToolkit olmadan bir MixedRealityToolkitConfigurationProfile varlığı seçersiniz, MRTK'nın sahneyi sizin için otomatik olarak ayarlamasını istemeniz size sorar. Bu isteğe bağlıdır, ancak tüm yapılandırma ekranlarına erişmek için sahnede etkin bir MixedRealityToolkit nesnesi olması gerekir.
Bu, proje için geçerli etkin çalışma zamanı yapılandırmasını içerir.
Buradan MRTK için aşağıdakiler dahil olmak üzere tüm yapılandırma profillerine gidin:
- Karma Gerçeklik Araç Seti profil yapılandırma kılavuzu
- Ana Karma Gerçeklik Araç Seti yapılandırma profili
- Deneyim ayarları
- Kamera ayarları
- Giriş sistemi ayarları
- Sınır görselleştirme ayarları
- Işınlanma sistemi seçimi
- Uzamsal farkındalık ayarları
- Tanılama ayarları
- Sahne sistemi ayarları
- Ek hizmet ayarları
- Giriş eylemleri ayarları
- Giriş eylemleri kuralları
- İşaretçi yapılandırması
- Hareket yapılandırması
- Konuşma komutları
- Denetleyici eşleme yapılandırması
- Denetleyici görselleştirme ayarları
- Düzenleyici yardımcı programları
- Çalışma zamanında profilleri değiştirme
- Ayrıca bkz.
Bu yapılandırma profilleri, ilgili bölümlerinde aşağıda ayrıntılı olarak açıklanmıştır:
Deneyim ayarları
Ana Karma Gerçeklik Araç Seti yapılandırma sayfasında bulunan bu ayar, projeniz için Karma Gerçeklik ortam ölçeğinin varsayılan işlemi tanımlar.
Kamera ayarları
Kamera ayarları, karma gerçeklik projeniz için kameranın nasıl ayar olacağını tanımlar ve genel kırpma, kalite ve saydamlık ayarlarını tanımlar.
Giriş sistemi ayarları
Karma Gerçeklik Project, varsayılan olarak seçilen projenin etrafında tüm giriş olaylarını yönlendirmeye olanak sağlayan sağlam ve iyi eğitilmiş bir giriş sistemi sağlar.
MRTK tarafından sağlanan Giriş Sistemi'nin ardında birçok farklı sistem vardır ve bunlar çok platformlu/karma gerçeklik çerçevesinin karmaşıklıklarını soyutlamak için gereken karmaşık iç yapıtları yönetmeye yardımcı olur.
Profillerden her biri aşağıda ayrıntılı olarak açıklanmıştır:
- Odak Ayarlar
- Giriş eylemleri ayarları
- Giriş eylemleri kuralları
- İşaretçi yapılandırması
- Hareket yapılandırması
- Konuşma komutları
- Denetleyici eşleme yapılandırması
- Denetleyici görselleştirme ayarları
Sınır görselleştirme ayarları
Sınır sistemi, temel platform sınırı /koruyucu sistem tarafından bildirilen algılanan sınırı çevirir. Sınır görselleştiricisi yapılandırması, kaydedilen sınırı kullanıcının konumuyla ilgili olarak sahneniz içinde otomatik olarak gösterme olanağı sağlar. Sınır ayrıca kullanıcının sahne içinde bulunduğu yere göre tepki ve güncelleştirme de sağlar.
Işınlanma sistemi seçimi
Karma Gerçeklik Project, projede varsayılan olarak seçilen iş geri tınlama olaylarını yönetmek için tam özellikli bir Teleportation sistemi sağlar.
Uzamsal farkındalık ayarları
Karma Gerçeklik Project, projede varsayılan olarak seçilen uzamsal tarama sistemleriyle çalışmak için yeniden oluşturulmuş bir uzamsal farkındalık sistemi sağlar.
Karma Gerçeklik Araç Seti uzamsal farkındalık yapılandırması, uygulama başlatıldığında veya daha sonra program aracılığıyla otomatik olarak olup olmadığını ve görünüm alanı için kapsamları ayarlamanın yanı sıra sistemin nasıl başlatılmış olduğunu uyarlamanıza olanak sağlar.
Ayrıca örgü ve yüzey ayarlarını yapılandırmanıza ve projenizin çevrenizin ortamını nasıl anlayacaklarını özelleştirmenize de olanak sağlar.
Bu yalnızca taranmış bir ortam sağlayabiliyor cihazlar için geçerlidir.
Tanılama ayarları
MRTK'nin isteğe bağlı ancak son derece yararlı bir özelliği eklenti tanılama işlevidir.
Tanılama profili, proje çalışırken izlenmesi gereken birkaç basit sistem sağlar. Ayrıca ekranda ekran panelini etkinleştirmek/devre dışı bırakmak için kullanışlı bir Açık/Kapalı anahtarı da vardır.
Sahne sistemi ayarları
MRTK, karmaşık ek sahne yükleme/kaldırmayı yönetmenize yardımcı olmak için bu isteğe bağlı hizmeti sağlar. Scene System'in projenize uygun olup olmayacaklarını karar vermek için Scene System Başlarken Kılavuzu'Başlarken okuyun.
Ek hizmet ayarları
Karma Gerçeklik Araç Seti'nin en gelişmiş alanlarından biri, herhangi bir "Hizmetin" çerçeveye kaydolmasını sağlayan hizmet bulucu düzeni uygulamasıdır. Bu, çerçevenin hem yeni özelliklerle/ sistemlerle kolayca genişlet hem de projelerin kendi çalışma zamanı bileşenlerini kaydetmek için bu özelliklerden yararlanmasını sağlar.
Kayıtlı hizmetler yine de MonoBehaviour veya clunky tekil desenlerini uygulamanın ek yükü ve maliyeti olmadan tüm Unity olaylarının tam avantajına sahip olur. Bu, hem ön plan hem de arka plan işlemlerini çalıştırmaya yönelik sahne yüküne sahip saf C# bileşenlerine (örneğin, sistemleri, çalışma zamanı oyun mantığını veya hemen her şeyi) sağlar.
Giriş eylemleri ayarları
Giriş eylemleri, bir çalışma zamanı projesinden gelen tüm fiziksel etkileşimleri ve girişleri soyutlamanın bir yolunu sağlar. Tüm fiziksel girişler (denetleyicilerden / ellerden/ fareden / vb.) çalışma zamanı projeniz için bir mantıksal giriş eylemine çevrilir. Bu, girişin nereden geldiği fark etmez, projeniz bu eylemleri sahnenize "Yapmanız gerekenler" veya "Etkileşim kurma" olarak uygulamanızı sağlar.
Yeni bir giriş eylemi oluşturmak için "Yeni Eylem Ekle" düğmesine tıklamanız ve temsil ettiği değer için kolay bir metin adı girmeniz gerekir. Daha sonra yalnızca eylemin iletmesi gereken bir eksen (veri türü) seçmeniz veya fiziksel denetleyicilerin bağlı olduğu fiziksel giriş türünü seçmeniz gerekir, örneğin:
|Eksen Kısıtlaması||Veri Türü||Açıklama||Örnek kullanım|
|Hiçbiri||Veri yok||Boş bir eylem veya olay için kullanılır||Olay Tetikleyicisi|
|Ham (ayrılmış)||object||Gelecekteki kullanım için ayrılmıştır||Yok|
|Dijital||bool||Boole türü verileri||Denetleyici düğmesi|
|Tek Eksen||float||Tek duyarlıklı veri değeri||Aralıklı giriş, örneğin tetikleyici|
|Çift Eksen||Vector2||Birden çok eksen için çift float türü tarihi||Bir Dpad veya Thumbstick|
|Üç Dof Konumu||Vektör3||3 float eksenine sahip konumsal tür verileri||3D konum stili yalnızca denetleyici|
|Üç Dof Döndürme||Quaternion||Yalnızca 4 kayan eksenli dönüş girişi||Üç derecelik stil denetleyicisi, örneğin Oculus Go denetleyicisi|
|Altı Dof||Karma Gerçeklik Duruşu (Vector3, Quaternion)||Hem Vector3 hem de Quaternion bileşenlerine sahip bir konum ve döndürme stili girişi||Hareket denetleyicisi veya İşaretçi|
Giriş eylemlerini kullanan olaylar fiziksel denetleyiciler ile sınırlı değildir ve çalışma zamanı etkilerinin yeni eylemler oluşturması için proje içinde hala kullanılabilir.
Not
Giriş eylemleri, çalışma zamanında düzenlenemez olan birkaç bileşenden yalnızca bir tasarım zamanı yapılandırmasıdır. Her eylem için oluşturulan kimliklere yönelik çerçeve (ve projeleriniz) bağımlılığı nedeniyle proje çalışırken bu profil değiştirilsin.
Giriş eylemleri kuralları
Giriş eylemi kuralları, içinde bir giriş eylemi için bir olayı veri değerine göre farklı eylemlere otomatik olarak çevirmek için bir yol sağlar. Bunlar çerçeve içinde sorunsuz bir şekilde yönetilir ve herhangi bir performans maliyetine neden olmaz.
Örneğin, içinde bir DPad'den tek çift eksenli giriş olayına karşılık gelen 4 "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" eylemlerine dönüştürebilirsiniz (aşağıdaki resimde gösterildiği gibi).
Bu, kendi kodunda da yapılabilir. Ancak, bunun çok yaygın bir desen olduğu için çerçeve bunu "her zaman" yapmak için bir mekanizma sağlar
Giriş eylemi Kuralları, kullanılabilir giriş ekseninin herhangi biri için yalıtılmıştır. Ancak, bir eksen türünden gelen giriş eylemleri aynı eksen türünde başka bir giriş eylemine çevrilebilir. Çift eksenli eylemi başka bir çift eksen eylemiyle eşlersiniz, ancak dijital veya hiçbiri eylemiyle eşleyemebilirsiniz.
İşaretçi yapılandırması
İşaretçiler, herhangi bir giriş cihazından sahnede etkileşime yol vermek için kullanılır ve hem yön verir hem de bir sahnenin herhangi bir nesnesiyle test eder (bağlı bir harmanlayıcıya sahip olan veya kullanıcı arabirimi bileşeni olan). İşaretçiler denetleyiciler, başlığı (bakış / odak) ve fare/dokunma girişi için varsayılan olarak otomatik olarak yapılandırılır.
İşaretçiler, Karma Gerçeklik Araç Seti tarafından sağlanan birçok satır bileşeninden birini veya MRTK IMixedRealityPointer arabirimini uygulayan herhangi biri kullanılarak etkin sahne içinde görselleştirilebilirsiniz.
- İşaretçi Kapsamı: Bakış dahil olmak üzere tüm işaretçiler için genel işaret uzantısını belirler.
- Raycast Katmanı Maskelerini İşaretleme: İşaretçilerin hangi katmanlara yayınlanacaklarını belirler.
- Draw Pointing Rays'de Hata Ayıklama: Yayın için kullanılan rayları görselleştirmeye yardımcı olan bir hata ayıklama yardımcısı.
- Draw Pointing Rays Renklerinin Hata Ayıklaması: Görselleştirmek için kullanılan bir renk kümesi.
- Imleç önceden bakış: Herhangi bir sahne için genel bakış imleç belirtmeyi kolaylaştırır.
Gerekirse Gaze için bazı belirli değerleri geçersiz kılmak üzere Gaze Sağlayıcısına hızlıca atlamanızı sağlayacak ek bir yardımcı düğmesi vardır.
Hareket yapılandırması
Hareketler, çeşitli SDK'lar tarafından sağlanan çeşitli "Hareket" giriş yöntemlerine giriş eylemleri atamanıza olanak sağlayan sisteme özgü bir uygulamadır (örneğin, HoloLens).
Not
Geçerli Hareketlerin uygulaması yalnızca HoloLens ve gelecekte Toolkit'e eklendiklerine göre (henüz tarih yok) diğer sistemler için geliştireceğiz.
Konuşma komutları
Hareketlerde olduğu gibi bazı çalışma zamanı platformları da Unity Konuşmayı Metne Dönüştürme tarafından alınabiliyor komutlar oluşturma özelliğiyle akıllı "özel" işlevler sağlar. Bu yapılandırma profili, şunları yapılandırmaya olanak sağlar:
- Genel Ayarlar - "Başlatma Davranışı", Otomatik Başlat veya El ile Başlat olarak ayarlanır. Giriş sistemi başlangıcında KeywordRecognizer'ın başlatıp başlatmay kararını projenin vermesine izin verin. Unity'nin KeywordRecognizer API'sini başlatmak için "Tanıma Güven Düzeyi" kullanılır
- Konuşma Komutları - "sözcükleri" kaydettirerek projeniz tarafından alınarak giriş eylemlerine çevirir. Gerekirse klavye eylemlerine de iliştirilmiş olabilir.
Önemli
Sistem şu anda yalnızca HoloLens ve Windows 10 masaüstü gibi Windows 10 platformlarında çalıştırıldıklarında konuşmayı destekler ve gelecekte MRTK'ye eklendiklerine göre (henüz tarih yok) diğer sistemler için iyileştirilmiş olacaktır.
Denetleyici eşleme yapılandırması
Karma Gerçeklik Araç Seti'nin temel yapılandırma ekranlarından biri, projeniz tarafından kullanılan çeşitli denetleyici türlerini yapılandırma ve eşleme özelliğidir.
Aşağıdaki yapılandırma ekranı, araç seti tarafından tanınan denetleyicilerden herhangi birini yapılandırmaya olanak sağlar.
MRTK, aşağıdaki denetleyiciler /sistemler için varsayılan bir yapılandırma sağlar:
- Fare (3D uzamsal fare desteği dahil)
- Dokunmatik Ekran
- Xbox denetleyicileri
- Windows Mixed Reality denetleyicileri
- HoloLens Hareket
- WAN Vive wand denetleyicileri
- Oculus Touch denetleyicileri
- Oculus Uzak denetleyici
- Genel OpenVR cihazları (yalnızca ileri düzey kullanıcılar)
Önceden yapılandırılmış denetleyici sistemlerinden herhangi biri için Görüntü'ye tıklayarak tüm ilgili girişler için tek bir giriş eylemi yapılandırmanız gerekir. Örneğin, aşağıdaki Oculus Touch denetleyici yapılandırma ekranına bakın:
Ayrıca, yukarıda tanımlanmaz diğer OpenVR veya Unity giriş denetleyicilerini yapılandırmak için gelişmiş bir ekran da vardır.
Denetleyici görselleştirme ayarları
Denetleyici eşlemeye ek olarak, denetleyicilerinizin sahneleri içinde nasıl sunlllarını özelleştirmek için ayrı bir yapılandırma profili sağlanır.
Bu bir "Genel" (belirli bir el için bir denetleyicinin tüm örnekleri) veya tek bir denetleyici türüne/ele özgü olarak yalıtabilirsiniz.
MRTK, yerel SDK denetleyicisi modellerini de Windows Mixed Reality OpenVR için destekler. Bunlar sahnenize GameObjects olarak yüklenir ve platformun denetleyici izlemesi kullanılarak konumlanmıştır.
Sahnenin denetleyici gösteriminin fiziksel denetleyici konumundan uzaklığın olması gerekirse, bu uzaklığı denetleyici modelinin prefab değerine göre ayarlayın (örneğin, denetleyici prefab'ın dönüştürme konumunu uzaklık konumuyla ayarlama).
Düzenleyici yardımcı programları
Aşağıdaki yardımcı programlar yalnızca düzenleyicide çalışır ve geliştirme üretkenliğini artırmak için yararlıdır.
Hizmet denetçileri
Hizmet Denetçileri, etkin hizmetleri temsil eden sahne nesneleri oluşturan yalnızca düzenleyici özelliğidir. Bu nesnelerin seçiminde belge bağlantıları sunan denetçiler, düzenleyici görselleştirmeleri üzerinde denetim ve hizmetin durumuyla ilgili içgörüler görüntülenir.
Yapılandırma Profili'nde Düzenleyici'nin altındaki Hizmet Denetçilerini Kullan'Ayarlar hizmet denetçilerini etkinleştirebilirsiniz.
Derinlik arabelleği işleyicisi
Derinlik arabelleğinin bazı karma gerçeklik platformları ile paylaşılmış olması hologram sabitlemeyi geliştirebilmektedir. Örneğin, Windows Mixed Reality platform, bir karenin işlenecek olduğu süre boyunca hafif baş hareketlerini hesaba vermek için piksel başına işlenen sahneyi değiştirebilir. Ancak bu teknikler, geometrinin kullanıcıya ne kadar uzak olduğunu ve nerede olduğunu bilmek için doğru verilerle derinlik arabellekleri gerektirir.
Bir sahnenin gerekli tüm verileri derinlik arabelleğine işlemesi için geliştiriciler, Yapılandırma Profilinde Düzenleyici ve Ayarlar İşleme Derinliği Arabelleği özelliğini açıp açıp açıp b ilerler. Bu, geçerli derinlik arabelleği alır ve ana kameraya bir işleme sonrası etkisi uygulayarak sahne görünümüne
DepthBufferRenderer renk olarak işler.
silindiri, ZWrite kapalı olan bir malzemeye sahip olduğu için derinlik verisi yazılabilir
Çalışma zamanında profilleri değiştirme
Çalışma zamanında profilleri güncelleştirmek mümkündür ve genellikle bunun yararlı olduğu iki farklı senaryo ve zaman vardır:
- MRTK başlatma öncesi profil anahtarı: Başlangıçta, MRTK başlatılmadan ve profil etkin hale gelmeden önce, cihaz özelliklerine bağlı olarak farklı özellikleri etkinleştirmek/devre dışı bırakmak için henüz kullanılamadı profilinin yerine geçebilirsiniz. Örneğin, deneyim uzamsal eşleme donanımı olmayan VR'de çalışıyorsa uzamsal eşleme bileşeninin etkinleştirilmesi büyük olasılıkla anlamlı değildir.
- Etkin profil anahtarı: Başlatmadan sonra MRTK başlatıldıktan ve bir profil etkin hale geldikten sonra, belirli özelliklerin davranış şekillerini değiştirmek için şu anda kullanılan profili değiştirin. Örneğin, uygulamada uzak işaretçilerin tamamen kaldırılmasını isteyen belirli bir alt deneyim olabilir.
MRTK başlatma öncesi profil anahtarı
Bu, MRTK başlatmadan önce çalışan bir Monodavranış (Aşağıdaki örnek) eklenerek gerçekleştirilebilir (yani, Uyanıt ()). Betik
SetProfileBeforeInitialization
MixedRealityToolkit yürütme sırası ayarlarıayarlanarak elde edilen betiğin (yani çağrısı), betikten daha önce yürütülmesi gerektiğini aklınızda bulabilirsiniz.
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); } }
"profiltouse" yerine, belirli platformlar için uygulanan (örneğin, biri HoloLens 1 için biri, HoloLens 2 için bir tane) bir tane olmak üzere bazı rastgele bir profil kümesine sahip olmak mümkündür. Hangi profilin yükleneceğini anlamak için çeşitli başka göstergeler (ör. https://docs.unity3d.com/ScriptReference/SystemInfo.html veya kameranın donuk/saydam olması) kullanılabilir.
Etkin profil anahtarı
Bu,
MixedRealityToolkit.Instance.ActiveProfile özelliği etkin profilin yerini aldığı yeni bir profile ayarlayarak gerçekleştirilebilir.
MixedRealityToolkit.Instance.ActiveProfile = profileToUse;
Note
ActiveProfile çalışma zamanı sırasında ayarlandığında, çalışmakta olan hizmetlerin yok etme işlemi tüm hizmetlerin son LateUpdate () sonrasında gerçekleşir ve yeni profille ilişkili hizmetlerin örneklenmesi ve başlatılması, tüm hizmetlerin Ilk güncelleştirmesinden () önce gerçekleşecektir.
Bu işlem sırasında fark edilebilir bir uygulama durumu oluşabilir. Ayrıca, komut dosyasına kıyasla daha yüksek öncelikli bir betik,
MixedRealityToolkit Yeni profil düzgün bir şekilde kurulumdan önce güncelleştirmesini girebilir. Betik önceliği hakkında daha fazla bilgi için bkz. betik yürütme sırası ayarları .
Profil değiştirme işleminde, mevcut kullanıcı arabirimi Kamerası değişmeden kalır, böylece tuval gerektiren Unity Kullanıcı arabirimi bileşenleri anahtar sonrasında çalışmaya devam eder.