📕教學說明
這期將繼續圍繞在 Unity 教學上,使用 PolySpatial 開發包中的體積相機(Volume Camera)。體積相機是開發 Apple Vision Pro MR 應用的必備組件,可用於區分 Shared Space 共享空間和 Full Space 獨佔空間。
📕教學內容概括
📕體積相機作用
Unity 開發 visionOS 應用的不同模式如下:
- 視窗模式:對應共享空間中的視窗應用
- VR 模式:對應獨佔空間中的 Fully Immersive(VR)應用
- MR 模式:
- 開發共享空間中的體積 3D 應用 -> 應用被包裹在立方體範圍內,有邊界盒
- 發展獨佔空間中的 Passthrough 應用 -> 應用無邊界,整個空間都是應用載體
其中,Unity 的 PolySpatial 開發工具包可以用於開發 MR 應用,要麼是有邊界的體積應用,位於共享空間中;要麼是整個空間都作為載體的獨佔空間應用。根據有無邊界這個特性來區分共享空間和獨佔空間,PolySpatial 推出了體積相機的概念,我們可以在體積相機中設定應用是有邊界還是無邊界的。
📕創建體積相機
匯入 Unity PolySpatial 開發包,在 Unity Hirerachy 面板中點選滑鼠右鍵,選擇 XR > Setup > Volume Camera,可以在場景中建立體積相機。
📕添加體積相機配置文件
找到體積相機物體上的 Volume Camera 腳本,有一個 Volume Window Configuration 參數,我們要對這個參數進行賦值。
如果你匯入了 PolySpatial 範例場景,那麼可以在 Assets > Samples > PolySpatial > Resources 資料夾裡找到官方提供的兩個設定檔。開頭是 Bounded 為有邊界配置文件,用於共享空間開發;開頭是 Unbounded 為無邊界配置文件,用於獨佔空間開發。
如果你想自己建立體積相機設定文件,可以在 Resources 資料夾下透過 Create > PolySpatial > Volume Camera Window Configuration 建立。
注意:體積相機設定檔必須存放在專案 Assets 資料夾下的任一 Resources 資料夾內。
📕體積相機設定檔參數
Mode:可以選擇 Bounded(有邊界)和 Unbounded(無邊界)開發模式
Out Dimensions:輸出尺寸,單位是米,用於表示整個應用的邊界盒大小(只有選擇了有邊界開發模式才有用)。Output Dimensions 數值越大,應用的邊界盒越大,應用內的物體的縮放會越大。
註:能渲染場景中的什麼物體就由體積相機來控制,場景中預設添加的 Main Camera 是沒有作用的。
📕體積相機的邊界盒大小
Volume Camera 腳本的 Volume Window Configuration 選擇了有邊界模式的配置檔案後,點擊 Volume Camera 物體可以在場景中看到一個立方體的範圍(如下圖所示),它代表了體積相機的邊界盒大小,只有在立方體範圍內的物件才能被渲染出來,超出範圍的部分無法被渲染。
體積相機的邊界盒大小等於 Volume Camera 腳本上的 Dimensions 數值乘上 Volume Camera 物體的 Scale 縮放大小。
如上圖所示,體積相機的邊界盒大小等於 2×3,2×3,2×3,也就是 6,6,6(單位:公尺)
📕體積相機邊界盒大小和應用邊界盒大小的區別
這兩種邊界盒是不同的概念。體積相機的邊界盒決定了體積相機能拍攝的範圍,只能在拍攝範圍內的物件才能被渲染出來。
體積相機的邊界盒越大,可渲染的物件越多,物件的縮放越小。
因為在應用的邊界盒大小不變的情況下,能渲染更多的遊戲物體,為了能將這些遊戲物體裝進應用的邊界盒,這個物體的縮放就要變小。
但是體積相機的邊界盒大小不會影響應用的邊界盒大小,應用的邊界盒大小由體積相機配置檔中的 Output Dimensions 控制,應用邊界盒越大,應用內物體縮放越大。
📕無邊界模式
Volume Camera 腳本的 Volume Window Configuration 選擇無邊界模式的設定檔後,開發的就是獨佔空間 MR 應用。
無邊界模式下,程式運行後體積相機的位置位於頭顯正下方的地面處,體積相機的 z 軸朝向和頭顯正前方一致。
上一步:Unity Vision Pro 開發|三、visionOS 應用形態
下一步:Unity Vision Pro 開發|將 PolySpatial 和 Play To Device 版本升級為 1.3.1 版
————————————————
本文原創(或整理)於亞洲電玩通,未經作者與本站同意不得隨意引用、轉載、改編或截錄。
特約作家簡介
支持贊助 / DONATE
亞洲電玩通只是很小的力量,但仍希望為復甦台灣遊戲研發貢獻一點動能,如果您喜歡亞洲電玩通的文章,或是覺得它們對您有幫助,歡迎給予一些支持鼓勵,不論是按讚追蹤或是贊助,讓亞洲電玩通持續產出,感謝。
BTC | ETH | TRON |
352Bw8r46rfXv6jno8qt9Bc3xx6ptTcPze | 0x795442E321a953363a442C76d39f3fbf9b6bC666 | TCNcVmin18LbnXfdWZsY5pzcFvYe1MoD6f |