Unity XR Interaction Toolkit 開發|一、OpenXR 與 XRI 概述【3.0 以上版本】

目錄
Unity XR Interaction Toolkit 開發|一、OpenXR 與XRI 概述【3.0 以上版本】

 

Unity XR Interaction Toolkit 教學說明

 

這期教學我將介紹使用 Unity 官方推出的 XR Interaction Toolkit 開發 XR 應用的基礎準備,包括軟硬體需求、如何安裝和設置 XR Interaction Toolkit、常見互動模組的運用,以及基於不同平台的相容性調整與優化。透過本期教學的學習,您將掌握使用 Unity XR Interaction Toolkit 開發跨平台 XR 應用的核心技術,為後續深入開發 XR 應用奠定堅實的基礎。

抓取互動課程內容:

  • 配置抓取相關腳本,講解腳本上的常用參數
  • 遠距離抓取時使射線不彎曲
  • 遠距離抓取時保持手部與物體的相對距離不變
  • 抓取物體時讓物體能夠被其他碰撞體阻擋
  • Unity 磁碰產生的條件
  • 優化 VR 場景的陰影效果
  • 設置抓取點
  • 雙手抓取物體(以其他物體抓取為例)
  • 雙手縮放物體
  • 互動探測範圍
  • 抓取物體時鬆開抓取鍵也能保持抓取狀態

 

 

 

XR Interaction Toolkit 是什麼

 

XR Interaction Toolkit 是 Unity 官方推出的一套跨平台互動開發工具包,專為 XR(擴增實境、虛擬實境及混合實境)應用設計,提供常見互動功能的封裝模組,幫助開發者快速高效地實現 XR 應用的互動需求。

 

這張圖展示使用 XR Interaction Toolkit 的模擬器進行控制器操作,模擬抓取和互動,方便開發者測試功能。

 

 

Unity XR 開發架構

 

使用 Unity 開發 XR 應用的整體架構由底層插件和高層 SDK 組成。
在本套系列教學中,會使用 OpenXR + XR Interaction Toolkit 的開發方案。

 

底層插件(對接硬體

不同的底層插件對接對應的 XR 硬體平台,讓 Unity 程式相容到對應的硬體設備上,適配硬體的特性和使用者的輸入。

開發者通常只要在 Unity 的 XR Plug-in Management 中選擇對應的 XR 插件供應商,然後進行設置,Unity 會自動處理程序與硬體的兼容,使得開發的應用能夠成功接入設備的 XR 能力,在設備上正常運作。

範例: OpenXR ,Apple vision OSOculusPico XR 插件。

 

XR Plug-in Management 設置面板,用於管理 XR(擴增實境/虛擬實境)應用開發的插件。

 

XR Plug-in Management 面板,針對 Apple visionOS 的配置設定。

 

高層 SDK(面向應用交互層)

將 XR 應用開發中常用的互動功能封裝成模組給開發者使用。開發者會在開發流程中經常使用高階SDK。

應用層的互動例如:抓取、UI 互動、MR 環境辨識…。

經典的高層 SDK:XR Interaction Toolkit,Meta XR SDKPolySpatialSteamVR SDK
 

 

OpenXR

 

圖示展示 OpenXR 作為標準接口,連接 XR 應用與多平台硬體,實現一次開發,多設備適配。

 

在早期,不同的 XR 裝置都維護它們各自的 SDK,供開發人員製作出能在對應裝置上運作的程式。但尷尬的地方就在於,可能利用廠商 A 提供的 SDK 開發的程式無法相容到廠商 B 的硬體設備。不像如今已經比較成熟的安卓行動端,只需用 Android SDK  開發一款程序,就能相容於不同的安卓手機上。

而 OpenXR 就是為了簡化 XR 開發而製定的一套標準。相當於在編寫的 XR 應用程式和不同的硬體設備間新增了一個中間層,向上提供一套統一的開發 API,不同的開發引擎對該 API 進行二次封裝,提供給 XR 應用開發者使用。而不同的設備廠商為硬體編寫支援 OpenXR 標準的接口,使得中間層能夠向下相容對應的硬體設備。如今,越來越多的 XR 裝置開始支援 OpenXR 標準,這意味著選用 OpenXR 進行 XR 裝置的開發可以成為通用的方案。

有了統一的標準後只要寫一次程式碼,就能相容於所有的裝置。這樣開發者只要專注於程式開發本身,而不用在意設備間的差異。

 

 

XR Interaction Toolkit

 

特點

  1. 簡稱 XRI。
  2. Unity 推出的跨平台 XR 互動開發工具包,跨平台機制體現在以下幾個面向:
    • 封裝了通用的X R 互動模組,如抓取、點觸、射線、移動。
    • 使用 Unity 的 Input System 處理不同平台的輸入。
    • 支援 OpenXR 標準(但蘋果不支援)。
    • 能結合 AR Foundation  開發 AR/MR 應用。
  3. 逐漸成為業界流行的標準,許多平台推行使用 XRI 作為互動開發包,結合自家 SDK(包含了硬體的特性),完成整套開發流程。

 

XRI 能夠實現的互動類型

  • 3D 物體互動:抓取物體,遠距離操控物體,點選物體…。
  • UI 互動:點擊按鈕,拖曳滑動條…。
  • 移動:持續移動,傳送,攀爬…。


XR 互動參與的對象

Interactor:啟動互動的對象。

Interactable:互動的對象。

XRI 中透過 XR Interaction Manager 腳本統一管理場景中所有的 Interactor 和 Interactable。

 

XRI 中與互動相關的狀態

Hover 懸停

  • 當 Interactor 接近 Interactable,準備互動的時候,會進入到 Hover 狀態。
  • 範例:使用手柄射線點擊 UI 按鈕,當射線射到 UI 按鈕上時,就進入到 Hover 狀態,此時點擊動作未發生,還未正式進行交互。

Select 選中

  • 在進入到 Hover 狀態的前提下,做出額外的輸入動作發起交互,進入到 Select 狀態。
  • 範例:使用手柄射線點擊UI 按鈕,當射線射到 UI 按鈕上時,進入到 Hover 狀態,然後按下手柄的扳機鍵,相當於做出點擊按鈕的動作,進入到 Select 狀態。

Focus 獲得焦點

  • 當物件進入 Select 狀態時,同時也會處於 Focus 狀態,直到再次選取 Interactable 或選取另外一個 Interactable 或明確不選擇任何內容時退出 Focus 狀態。
  • 例:使用手柄抓取物體,手柄靠近物體時進入到 Hover 狀態,然後按下手柄抓取鍵把物體抓起時會同時進入到 Select 和 Focus 狀態,鬆開手柄抓取鍵結束抓取,會退出 Select 狀態,但是不會退出 Focus 狀態。重新抓起物體,才會先退出 Focus 狀態,再同時進入新的 Select 和 Focus 狀態。鬆開後單獨按下手柄抓取鍵但不抓起物體,也能退出 Focus 狀態(明確不選擇任何內容)。

Activate 激活

  • 在進入到 Select 狀態的前提下,做出額外的輸入動作可進一步對當前的交互對象進行交互。
  • 範例:用手柄抓取鍵拿起手槍,進入 Select 狀態,然後按下手柄扳機鍵進行射擊,進入 Activate 狀態。

 

下一步: Unity XR Interaction Toolkit 開發|二、導入 SDK【3.0 以上版本】

————————————————

以上內容來自 CSDN 作者:YY-nb

 

 

 

本文原創(或整理)於亞洲電玩通,未經作者與本站同意不得隨意引用、轉載、改編或截錄。

特約作家簡介

X
A
Y
B
JamXu的頭像
JamXu
十年遊戲研發
二十年遊戲台主
三十年遊戲玩家

經中華網龍遊戲企劃進入遊戲圈,然後被雷打到去學程式前後端又學了點設計帶帶幾個研發團隊,見證了 3D 渲染技術及遊戲引擎互相進步,也見證了研發代理的更迭與博弈遊戲的興起,再毅然研究起 SEO 網路行銷社群廣告投放,深信自研自賣才是最大贏家,期望能為台灣研發重回輝煌時光貢獻一點力量。如果你也有遊戲夢,歡迎交流認識。


支持贊助 / DONATE

亞洲電玩通只是很小的力量,但仍希望為復甦台灣遊戲研發貢獻一點動能,如果您喜歡亞洲電玩通的文章,或是覺得它們對您有幫助,歡迎給予一些支持鼓勵,不論是按讚追蹤或是贊助,讓亞洲電玩通持續產出,感謝。

亞洲電玩通AsiaGameMaster - Steam 遊戲鑑賞家
亞洲電玩通AsiaGameMaster - FB 粉絲專頁
亞洲電玩通AsiaGameMaster - IG 粉絲專頁
亞洲電玩通AsiaGameMaster - Twitter
亞洲電玩通AsiaGameMaster - Yoytube 粉絲專頁
亞洲電玩通AsiaGameMaster - Tiktok

BTC

亞洲電玩通AsiaGameMaster - BTC 鏈贊助地址

352Bw8r46rfXv6jno8qt9Bc3xx6ptTcPze

 

ETH

亞洲電玩通AsiaGameMaster - ETH 鏈贊助地址

0x795442E321a953363a442C76d39f3fbf9b6bC666

 

TRON

亞洲電玩通AsiaGameMaster - TRON 鏈贊助地址

TCNcVmin18LbnXfdWZsY5pzcFvYe1MoD6f

延伸閱讀