共用方式為


MRTK 中支援眼睛的流覽 - MRTK2

MRTK

假設您正在閱讀一個平板的資訊,而當您到達顯示文字的結尾時,文字會自動向上捲動以顯示更多內容。 或者,您可以流暢地放大您正在查看的位置。 地圖也會自動調整內容,以在檢視欄位中保留感興趣的專案。 另一個有趣的應用程式是 3D 全像投影的免手觀察,方法是自動將您查看的全像投影部分帶入前端。 這些是此頁面上說明的一些範例,以眼部支援的導覽內容說明。

下列描述假設您已熟悉如何在 MRTK 場景中設定眼球追蹤,以及存取 MRTK Unity 中 眼球追蹤數據 的基本概念。 下列討論的範例全都是 (Assets/MRTK/Examples/Demos/EyeTracking/Scenes/EyeTrackingDemo-03-Navigation) 場景的一部分 EyeTrackingDemo-03-Navigation

總結: 自動捲動文字、眼球注視支援的移動瀏覽和虛擬地圖的縮放、免手注視導向 3D 旋轉。

自動捲動

自動捲動可讓使用者捲動文字,而不需要手指。 只要繼續閱讀,文字就會根據使用者正在查看的位置自動向上或向下捲動。 您可以從 (Assets/MRTK/Examples/Demos/EyeTracking/Scenes) 中 EyeTrackingDemo-03-Navigation 提供的範例開始。 此範例會使用 TextMesh 元件,以彈性載入和格式化新文字。 若要啟用自動捲動,只要將下列兩個腳本新增至文本框的碰撞器元件:

ScrollRectTransf

若要捲動 TextMesh 或更普遍的 RectTransform 元件,您可以使用 ScrollRectTransf 腳本。 如果您想要捲動紋理而非 RectTransform,請使用 ScrollTexture 而不是 ScrollRectTransf。 在下列情況下,Unity 編輯器中提供的 ScrollRectTransf 參數會更詳細地說明:

參數 描述
LimitPanning 如果啟用,將會在其界限停止可捲動的內容。
RectTransfToNavigate 要捲動的 RectTransform 參考。
RefToViewport 可捲動內容的父 RectTransform 參考,以判斷正確的位移和界限。
AutoGazeScrollIsActive 如果啟用,如果使用者查看 使用中區域 (例如,如果垂直滾動速度不是零) ,則文字會自動捲動。
ScrollSpeed_x 如果設定為值不相等為零,則會啟用水平捲動。 負值表示卷動方向的變更:從左至右與從右至左。
ScrollSpeed_y 如果設定為值不相等為零,則會啟用垂直捲動。 負值表示卷動方向的變更:向上到向下和向下到向上。
MinDistFromCenterForAutoScroll 從目標點擊方塊中央 (0、0) 卷動的 x 和 y 中正規化最小距離。 因此,值的範圍必須介於0 (一律捲動) 和0.5 (沒有捲動) 。
UseSkimProofing 如果啟用,它會在快速查看時防止突然捲動移動。 不過,這可能會讓卷動感覺較不回應。 您可以使用 SkimProofUpdateSpeed 值進行調整。
SkimProofUpdateSpeed 值越低,捲動速度越慢,會在略過之後加速。 建議的值:5。

Unity 中支援眼睛的捲動設定

EyeTrackingTarget

附加 EyeTrackingTarget 元件可讓您彈性地處理眼球注視相關事件。 卷動範例示範當使用者 查看 面板時啟動的卷動文字,並在使用者 離開 面板時停止。 Unity 中支援眼睛的捲動設定:EyeTrackingTarget

注視支持的行動瀏覽和縮放

誰在搜尋首頁之前未使用虛擬地圖,或探索全新的位置? 眼球追蹤可讓您直接深入探討您感興趣的部分,一旦放大,您就可以順暢地遵循街道的課程來探索您的鄰近地區! 這不僅適用於探索地理地圖,也可用來查看相片、數據視覺效果或甚至即時串流醫療影像中的詳細數據。 若要在應用程式中使用這項功能很簡單! 針對轉譯至 紋理 (的內容,例如相片、串流數據) ,只需新增 PanZoomTexture 腳本即可。 針對 RectTransform ,請使用 PanZoomRectTransf。 延伸 自動捲 動功能,我們基本上能夠同時垂直和水平捲動,並直接放大使用者目前焦點點周圍的內容。

參數 描述
LimitPanning 如果啟用,將會在其界限停止可捲動的內容。
HandZoomEnabledOnStartup 指出是否自動啟用手勢來執行縮放手勢。 您一開始可能會想要停用它,以避免意外觸發縮放動作。
RendererOfTextureToBeNavigated 要巡覽之紋理的參考轉譯器。
Zoom_Acceleration 縮放加速,定義羅吉斯速度函式對應的尖峰度。
Zoom_SpeedMax 最大縮放速度。
Zoom_MinScale 縮放的紋理大小下限 - 例如 0.5f (原始大小的一半) 。
Zoom_MaxScale 縮小紋理的最大縮放比例-例如,1f (原始大小) 或 2.0f (原始大小) 倍。
Zoom_TimeInSecToZoom 計時縮放:觸發後,將會針對指定的時間量,以秒為單位執行放大/縮小。
Zoom_Gesture 用來放大/縮小的手勢類型。
--- ---
Pan_AutoScrollIsActive 如果啟用,如果使用者查看 使用中區域 (例如,如果垂直滾動速度不是零) ,則文字會自動捲動。
Pan_Speed_x 如果設定為值不相等為零,則會啟用水平捲動。 負值表示卷動方向的變更:從左至右與從右至左。
Pan_Speed_y 如果設定為值不相等為零,則會啟用垂直捲動。 負值表示卷動方向的變更:向上到向下和向下到向上。
Pan_MinDistFromCenter 從目標點擊方塊中央 (0、0) 卷動的 x 和 y 中正規化最小距離。 因此,值的範圍必須介於0 (一律捲動) 和0.5 (沒有捲動) 。
UseSkimProofing 如果啟用,它會在快速查看時防止突然捲動移動。 不過,這可能會讓卷動感覺較不回應。 您可以使用 SkimProofUpdateSpeed 值進行調整。
SkimProofUpdateSpeed 值越低,捲動速度越慢,會在略過之後加速。 建議的值:5。

Unity 中支援眼睛的移動瀏覽和縮放設定

以注意為基礎的 3D 旋轉

想像一下,查看 3D 物件和您想要更密切看到的部分會更接近您,就像系統會讀出您的心意並知道將項目轉向您一樣! 這是以注意力為基礎的 3D 旋轉概念,可讓您調查全像投影的所有側邊,而不需要手指。 若要啟用此行為,只要使用 Collider 元件將 OnLookAtRotateByEyeGaze 腳本新增至 GameObject 的一部分即可。 您可以調整以下所列的數個參數,以限制全像投影會旋轉的速度和方向。

如您所想像,讓此行為隨時都處於作用中狀態,可能會在密集的場景中變得相當令人分心。 這就是為什麼您可能想要從停用此行為開始,然後使用語音命令快速加以啟用的原因。 或者,我們在 (Assets/MRTK/Examples/Demos/EyeTracking/Scenes) 中新增了一個範例 EyeTrackingDemo-03-Navigation ,以使用 TargetMoveToCamera ,您可以選取焦點目標,並直接說 出「來我」

在接近模式中之後,會自動啟用自動旋轉模式。 在該模式中,您可以從所有側邊觀察它,只要向下傾斜並查看它、四處走動,或觸達手邊來抓取並旋轉它。 當您關閉目標 (看起來 & 捏合或說 「傳回」) 時,它會返回其原始位置,並停止從遠方回應您。

參數 描述
SpeedX 水平旋轉速度。
迅速 垂直旋轉速度。
InverseX 反轉水平旋轉方向。
反轉 反轉垂直旋轉方向。
RotationThreshInDegrees 如果 「注視目標」和「相機到目標」之間的角度小於此值,則不執行任何動作。 這是為了防止小型的抖動旋轉。
MinRotX 水平旋轉角度下限。 這是以不同方向限制旋轉。
MaxRotX 水平旋轉角度上限。 這是以不同方向限制旋轉。
MinRotY 最小垂直旋轉角度,以限制繞 x 軸的旋轉角度。
MaxRotY 垂直旋轉角度上限,以限制繞 Y 軸的旋轉角度。

Unity 中支援的 3D 旋轉設定

總而言之,上述腳本應該可讓您開始對各種輸入導覽工作使用眼球注視,例如捲動文字、縮放和移動流覽紋理,以及旋轉調查 3D 全像投影。

另請參閱


回到 「MixedRealityToolkit 中的眼球追蹤」