MRTK'de gözle desteklenen gezinti — MRTK2

MRTK

Bir sayfa üzerindeki bilgileri okuduğunuzda ve görüntülenen metnin sonuna ulaştığınızda, metin otomatik olarak yukarı kaydırılarak daha fazla içerik görüntülendiğini düşünün. Alternatif olarak, baktığınız yeri akıcı bir şekilde yakınlaştırabilirsiniz. Harita ayrıca, ilgilendiğiniz şeyleri görünüm alanınızda tutmak için içeriği otomatik olarak ayarlar. Başka bir ilginç uygulama, baktığınız hologram parçalarını otomatik olarak öne getirerek 3B hologramların tutmadan gözlemlenmesidir. Bunlar, bu sayfada gözle desteklenen gezinti bağlamında açıklanan örneklerden bazılarıdır.

Aşağıdaki açıklamalarda , MRTK sahnenizde göz izlemeyi ayarlamayı ve MRTK Unity'dekigöz izleme verilerine erişmenin temellerini zaten bildiğiniz varsayılır. Aşağıda açıklanan örneklerin tümü (Assets/MRTK/Examples/Demos/EyeTracking/Scenes/EyeTrackingDemo-03-Navigation) sahnesinin EyeTrackingDemo-03-Navigation bir parçasıdır.

Özet: Metnin otomatik kaydırması, göz bakışı destekli kaydırma ve sanal haritayı yakınlaştırma, eller serbest bakışlı 3B döndürme.

Otomatik kaydırma

Otomatik kaydırma, kullanıcının parmağınızı kaldırmadan metinler arasında kaydırmasını sağlar. Okumaya devam edin; kullanıcının nereye baktığına bağlı olarak metin otomatik olarak yukarı veya aşağı kaydırılır. (Assets/MRTK/Examples/Demos/EyeTracking/Scenes) içinde EyeTrackingDemo-03-Navigation sağlanan örnekten başlayabilirsiniz. Bu örnekte, yeni metnin esnek bir şekilde yüklenmesine ve biçimlendirebilmesine olanak sağlamak için bir TextMesh bileşeni kullanılır. Otomatik kaydırmayı etkinleştirmek için metin kutusunun harmanlama bileşenine aşağıdaki iki betik eklemeniz yeterlidir:

ScrollRectTransf

Bir TextMesh veya daha genel olarak bir RectTransform bileşeninde kaydırmak için ScrollRectTransf betiğini kullanabilirsiniz. RectTransform yerine dokuda kaydırmak istiyorsanız ScrollRectTransf yerine ScrollTexture kullanın. Aşağıda, Unity Düzenleyicisi'nde bulunan ScrollRectTransf parametreleri daha ayrıntılı olarak açıklanmıştır:

Parametreler Description
LimitPanning Etkinleştirilirse, kaydırılabilir içeriği sınırında durdurur.
RectTransfToNavigate Kaydırmak için RectTransform başvurusu.
RefToViewport Doğru uzaklığı ve sınırı belirlemek için kaydırılabilir içeriğin üst RectTransform öğesine başvuru.
AutoGazeScrollIsActive Etkinleştirilirse, kullanıcı etkin bir bölgeye bakarsa metin otomatik olarak kaydırılır (örneğin, dikey kaydırma hızı sıfır değilse kaydırma panelinizin üst ve alt kısmı).
ScrollSpeed_x Eşit olmayan bir değere sıfır olarak ayarlanırsa yatay kaydırma etkinleştirilir. Negatif değerler kaydırma yönünde bir değişiklik anlamına gelir: Soldan sağa ve sağdan sola.
ScrollSpeed_y Sıfıra eşit olmayan bir değere ayarlanırsa dikey kaydırma etkinleştirilir. Negatif değerler kaydırma yönünde bir değişiklik anlamına gelir: Yukarı aşağı ve aşağı yukarı.
MinDistFromCenterForAutoScroll Kaydırmak için hedefin isabet kutusunun (0, 0) ortasından x ve y olarak normalleştirilmiş minimum uzaklık. Bu nedenle, değerler 0 (her zaman kaydırma) ile 0,5 (kaydırma yok) arasında olmalıdır.
UseSkimProofing Etkinleştirilirse, hızla etrafa bakarken ani kaydırma hareketlerini önler. Bu, kaydırmanın daha az hızlı yanıt vermesini sağlayabilir. SkimProofUpdateSpeed değeriyle ayarlanabilir.
SkimProofUpdateSpeed Değer ne kadar düşük olursa kaydırma işlemi kayma sonrasında o kadar yavaş olur. Önerilen değer: 5.

Unity'de gözle desteklenen kaydırma kurulumu

EyeTrackingTarget

EyeTrackingTarget bileşeninin eklenmesi, gözle ilgili olayları esnek bir şekilde işlemenizi sağlar. Kaydırma örneği, kullanıcı panele baktığında başlayan ve kullanıcı panelden uzak durduğunda durdurulan kaydırma metnini gösterir. Unity' de gözle desteklenen kaydırma kurulumu: EyeTrackingTarget

Bakış destekli kaydırma ve yakınlaştırma

Daha önce evlerini aramak veya tamamen yeni yerleri keşfetmek için sanal harita kullanmamış olan var mı? Göz izleme, ilgilendiğiniz bölümleri doğrudan incelemenize olanak tanır ve yakınlaştırdıktan sonra, mahallenizi keşfetmek için bir caddenin rotasını sorunsuz bir şekilde izleyebilirsiniz! Bu yalnızca coğrafi haritaları keşfetmek için değil, fotoğraflardaki, veri görselleştirmelerindeki ve hatta canlı akışlı tıbbi görüntülerdeki ayrıntıları kontrol etmek için de yararlıdır. Bu özelliği uygulamanızda kullanmak kolaydır! Dokuya işlenen içerik (örneğin, fotoğraf, akış verileri) için PanZoomTexture betiğini eklemeniz yeterlidir. RectTransform için PanZoomRectTransf kullanın. Otomatik Kaydırma özelliğini genişleterek, temelde hem dikey hem de yatay olarak aynı anda kaydırmayı ve içeriği kullanıcının geçerli odak noktasının çevresinde büyütmeyi sağlarız.

Parametreler Description
LimitPanning Etkinleştirilirse, kaydırılabilir içeriği sınırında durdurur.
HandZoomEnabledOnStartup Yakınlaştırma hareketi gerçekleştirmek için el hareketlerinin otomatik olarak etkinleştirilip etkinleştirilmediğini gösterir. Yakınlaştırma eylemlerini yanlışlıkla tetiklememek için önce devre dışı bırakmak isteyebilirsiniz.
RendererOfTextureToBeNavigated Gezinilecek doku için başvuruda bulunılan işleyici.
Zoom_Acceleration Lojistik hızlı işlev eşlemesinin dikliğini tanımlayan yakınlaştırma hızlandırma.
Zoom_SpeedMax Maksimum yakınlaştırma hızı.
Zoom_MinScale Yakınlaştırmak için en düşük doku ölçeği : örneğin, 0,5f (özgün boyutun yarısı).
Zoom_MaxScale Uzaklaştırmak için dokunun maksimum ölçeği : örneğin, 1f (özgün boyut) veya 2,0f (özgün boyutun iki katı).
Zoom_TimeInSecToZoom Zamanlanmış yakınlaştırma: Tetiklendiğinde, saniyeler içinde belirli bir süre boyunca yakınlaştırma/uzaklaştırma gerçekleştirilir.
Zoom_Gesture Yakınlaştırmak/uzaklaştırmak için kullanılacak el hareketi türü.
--- ---
Pan_AutoScrollIsActive Etkinleştirilirse, kullanıcı etkin bir bölgeye bakarsa metin otomatik olarak kaydırılır (örneğin, dikey kaydırma hızı sıfır değilse kaydırma panelinizin üst ve alt kısmı).
Pan_Speed_x Eşit olmayan bir değere sıfır olarak ayarlanırsa yatay kaydırma etkinleştirilir. Negatif değerler kaydırma yönünde bir değişiklik anlamına gelir: Soldan sağa ve sağdan sola.
Pan_Speed_y Sıfıra eşit olmayan bir değere ayarlanırsa dikey kaydırma etkinleştirilir. Negatif değerler kaydırma yönünde bir değişiklik anlamına gelir: Yukarı aşağı ve aşağı yukarı.
Pan_MinDistFromCenter Kaydırmak için hedefin isabet kutusunun (0, 0) ortasından x ve y olarak normalleştirilmiş minimum uzaklık. Bu nedenle, değerler 0 (her zaman kaydırma) ile 0,5 (kaydırma yok) arasında olmalıdır.
UseSkimProofing Etkinleştirilirse, hızla etrafa bakarken ani kaydırma hareketlerini önler. Bu, kaydırmanın daha az hızlı yanıt vermesini sağlayabilir. SkimProofUpdateSpeed değeriyle ayarlanabilir.
SkimProofUpdateSpeed Değer ne kadar düşük olursa kaydırma işlemi kayma sonrasında o kadar yavaş olur. Önerilen değer: 5.

Unity'de gözle desteklenen kaydırma ve yakınlaştırma kurulumu

Dikkat tabanlı 3B döndürme

Bir 3B nesneye baktığınızı ve görmek istediğiniz parçaların size daha yakından baktığını düşünün; sanki sistem zihninizi okuyacak ve öğeyi size doğru çevirecekmiş gibi! Bu, parmağınızı kaldırmadan hologramın her tarafını araştırmanızı sağlayan dikkate dayalı 3B döndürmeler için bir fikirdir. Bu davranışı etkinleştirmek için, Bir Harmanlama bileşeniyle GameObject'inizin bölümüne OnLookAtRotateByEyeGaze betiğini eklemeniz yeterlidir. Hologramın ne kadar hızlı ve hangi yönde dönüşeceğini sınırlamak için aşağıda listelenen çeşitli parametreleri değiştirebilirsiniz.

Tahmin edebileceğiniz gibi, bu davranışın her zaman etkin olması, kalabalık bir sahnede hızla dikkatinizi dağıtabilir. Bu nedenle bu davranış devre dışı bırakılarak başlamak ve ardından sesli komutları kullanarak hızlı bir şekilde etkinleştirmek isteyebilirsiniz. Alternatif olarak, targetMoveToCamera'yı kullanmak için (Assets/MRTK/Examples/Demos/EyeTracking/Scenes) içinde odaklanmış bir hedef seçebileceğiniz ve önünüzde uçacak bir örnek EyeTrackingDemo-03-Navigation ekledik. Yalnızca "Bana gel" deyin.

Yakın moda geçtikten sonra otomatik döndürme modu otomatik olarak etkinleştirilir. Bu modda, tüm taraflardan sadece geriye yaslanarak ve ona bakarak, etrafında yürüyerek veya elinizle alıp döndürmek için uzanarak gözlemleyebilirsiniz. Hedefi kapattığınızda (& sıkıştırdığınızda veya "Geri gönder" dediğinizde), özgün konumuna döner ve size uzaktan tepki vermemeye başlayacaktır.

Parametreler Description
SpeedX Yatay döndürme hızı.
Hızlı Dikey döndürme hızı.
InverseX Yatay döndürme yönünü ters döndürmek için.
Ters Dikey döndürme yönünü ters döndürmek için.
RotationThreshInDegrees 'Hedefe Bakış' ile 'Kameradan Hedefe' arasındaki açı bu değerden küçükse hiçbir şey yapma. Bu, küçük titreşimli döndürmeleri önlemek için...
MinRotX En düşük yatay döndürme açısı. Bu, döndürmeyi farklı yönlerde sınırlamaktır.
MaxRotX Maksimum yatay dönüş açısı. Bu, döndürmeyi farklı yönlerde sınırlamaktır.
MinRoty X ekseni çevresinde döndürmeyi sınırlamak için minimum dikey döndürme açısı.
MaxRoty Y ekseni çevresinde döndürmeyi sınırlamak için maksimum dikey döndürme açısı.

Unity'de gözle desteklenen 3B döndürme kurulumu

Özetle, yukarıdaki betikler metinleri kaydırma, dokuları yakınlaştırma ve kaydırmanın yanı sıra 3B hologramları inceleme gibi çeşitli giriş gezinti görevleri için göz bakışı kullanmaya başlamanızı sağlamalıdır.

Ayrıca bkz.


"MixedRealityToolkit'te göz izleme"