Table of Contents

使用 session 驗證工具

本文介紹了如何使用 session 驗證工具,在編輯器中快速驗證 session 工作流程以及使用 EIF 檔案進行模擬運行。

開始之前

模擬運行使用 EIF 檔案作為輸入,因此在開始之前需要先錄製 EIF 檔案:

另外還需要了解:

session 驗證工具

session 驗證工具用於幫助開發者在 Unity 編輯器中快速驗證 session 工作流程以及使用 EIF 檔案進行模擬運行。

默認情況下可以在 AR Session (EasyAR) 物件的 Inspector 窗口中看到 session 驗證工具,它是 DiagnosticsController 編輯器的一部分:

alt text

點擊工具右上角 按鈕可以將工具彈出為獨立窗口,方便查看和操作,在窗口關閉或按下 按鈕後,工具會重新在 Inspector 窗口中顯示。

alt text

工具運行時的效果如下面這個影片所示:

這段影片展示了 session 驗證工具的使用效果,錄製於 Unity 的 play 模式。影片上半部分左邊是 Hierarchy 視圖,中間是 Scene 視圖,右邊是 Game 視圖,影片下半部分是 session 驗證工具。Game 視圖的內容與用戶在現實世界中手機看到的內容是一樣的。

工具左邊偏上部分展示了 EIF 播放的進度條,可以看到它在隨著播放進度不斷變化。工具左邊偏下部分展示了當前 session 的狀態。工具右邊展示了 session 的組件和可用中心模式。

在場景中,可以看到同時工作的 3 個 AR 功能:

  • 運動跟蹤:它是由 frame player 提供的,藍色球體是 XR Origin,藍色錐體代表用戶位置。
  • 稠密空間建圖:可用看到隨著視角的移動,半透明的網格模型在不斷生成。
  • 稀疏空間跟蹤:影片中在被跟蹤的是一棵聖誕樹,疊加的虛擬物件是淺藍色點雲。

啟動工具

點擊工具頂部的 按鈕即可啟動工具。按下這個按鈕的效果與直接按下 Unity 工具列 按鈕是一樣的。

alt text

如果工具已經啟動,則按鈕會變為 ,點擊即可停止工具。

當工具以獨立窗口展示時, 按鈕右邊的選擇框可以選擇工具使用的 session 物件,如果窗口被重置導致 session 丟失,可以從這裡重新選擇。

控制 EIF 播放

要使用工具的 EIF 播放功能,需要在運行前勾選工具的 Frame Player 選項,這時工具會託管 session 組裝過程中 frame source 的選擇,無論 AssembleOptions.FrameSource 設置為何種值,都會啟用 frame player 組件。

alt text

因此,運行時會有彈窗提示,說明當前 session 所使用的 frame source 已被工具託管:

alt text

附註

工具只會在 Unity 編輯器上託管組裝過程中 frame source 的選擇,在應用打包運行時該選項沒有任何影響。

正常運行時,EIF 播放控制功能會顯示在工具的上方圖中框出的部分:

alt text

可以通過這些按鈕控制 EIF 檔案的播放:

  • :播放,從暫停或停止狀態恢復播放
  • ▮▮:暫停
  • :停止
  • ▮◀:跳到 5 秒之前(檔案支持時)
  • ◀◀:降低播放速度(檔案支持時)
  • ▶▶:提高播放速度(檔案支持時)
  • ▶▮:跳到 5 秒之後(檔案支持時)
  • :打開檔案
  • 進度條:點擊可以跳轉播放位置(檔案支持時)

可以在播放的同時調整優化場景中的內容和交互邏輯,從而可以在電腦上進行大部分的開發工作,並直觀地看到效果。

附註

播放新數據和跳轉播放時,場景中原本的數據不會被清空。AR 組件的狀態也不會被重置,它們會表現得像是攝像頭數據突然從上一幀數據跳到新數據一樣。

雖然這對一部分功能沒太大影響,但是對於依賴運動跟蹤的功能(比如稠密空間地圖、Mega等)來說,可能會導致功能狀態異常,從而影響運行效果。

控制 session 工作流程

使用工具的 session 工作流程控制功能,需要在運行前勾選工具的 Session Workflow 選項,該選項是默認勾選的。

alt text

正常運行時,session 工作流程控制功能會顯示在工具的播放控制下方圖中框出的部分:

alt text

在整塊區域的上方,展示了 EasyARController.IsReadyARSession.State 兩個狀態信息。

在整塊區域的下方,提供了這些按鈕來控制 session 的工作流程:

  • Initialize:初始化 session,可以選擇使用 Project Settings 中配置的 license key 或手動輸入 license key
  • Assemble:組裝但不啟動 session
  • StartSession (Assembled):啟動已組裝的 session
  • StartSession: 組裝並啟動 session
  • StopSession:停止 session
  • StopSession (keep image):停止 session,但保留圖像背景
  • Deinitialize:反初始化 session
附註

由於這些控制功能直接調用了 ARSessionEasyARController 的相關方法,因此可以通過這些按鈕來驗證 session 狀態變化對內容的影響,但同時需要注意如果在應用腳本中也調用了類似方法,應用的運行流程可能超出應用本身的預期。

控制 session 組件

使用工具的 session 組件控制功能,需要在運行前勾選工具的 Session Workflow 選項,該選項是默認勾選的。

alt text

正常運行時,session 組件控制會顯示在工具的下方或右方圖中框出的部分,具體位置視窗體寬度而變:

alt text

這塊區域顯示的內容與具體的 session 有關,比如上圖使用的 session 中包含了圖像跟蹤、稠密空間建圖和稀疏空間跟蹤三種功能組件,因此工具中顯示了這三種功能的控制選框。

一般來說,這塊區域會顯示 session 中所有可用的 AR 功能組件,並提供這些組件的啟用/禁用(enabled)控制,包括:

  • AR Session:控制 session 本身的啟用/禁用
  • Image Renderer:控制物理相機圖像渲染的啟用/禁用
  • Camera:控制虛擬攝像機的啟用/禁用
  • Frame Source:控制 frame source 的啟用/禁用,只有未啟用 frame player 時才可控制,啟用 frame player 時,功能控制由 EIF 播放控制部分替代
  • Frame Filter:控制具體 AR 功能的啟用/禁用
  • Frame Recorder:控制錄製 EIF 組件的啟用/禁用,只有未啟用 frame player 時才可見,啟用 frame player 時,該組件不會被組裝進 session

同時區域內還會顯示 session 可用的中心模式和 session 報告

附註

工具中展示的可用中心模式和 session 報告是編輯器下運行的結果,實際設備上運行時會不同。

使用 Mega 功能時,工具中會顯示 Mega 功能組件控制

相關主題