四千字干貨!一文帶你吃透Windows、Volumes和Space|Vision Pro

0 評(píng)論 1013 瀏覽 4 收藏 18 分鐘

在Vision Pro中,基礎(chǔ)應(yīng)用形態(tài)有幾種,包括Windows、Volumes和Space等。這些基礎(chǔ)應(yīng)用形態(tài),相輔相成構(gòu)成了空間計(jì)算平臺(tái)的基礎(chǔ)構(gòu)成形態(tài)。這篇文章里,作者就介紹了他們的設(shè)計(jì)原則及相關(guān)實(shí)踐,一起來看一下。

為一個(gè)全新的平臺(tái)構(gòu)建應(yīng)用,先從了解應(yīng)用形態(tài)開始。本篇介紹了空間計(jì)算平臺(tái)中的基礎(chǔ)應(yīng)用形態(tài)-Windows、Volumes、Space,并介紹其設(shè)計(jì)原則及最佳實(shí)踐,快來構(gòu)建你的第一個(gè)空間計(jì)算應(yīng)用吧。

一、空間計(jì)算的應(yīng)用基礎(chǔ)形態(tài)

在蘋果的WWDC視頻中,我們可以看到蘋果將所有應(yīng)用形態(tài)分為窗口型(Windows)、體積型(Volumes)、空間型(Space)。他們可以為開發(fā)者開發(fā)AVP App提供一套靈活的工具套件,不僅作為內(nèi)容承載容器,還可作為調(diào)節(jié)沉浸模式的工具。

要想知道為什么是這三種承載類型,讓我們一起回溯一下Apple的其他跨設(shè)備類型。

在目前的Apple設(shè)計(jì)官方文檔規(guī)范中,Windows作為呈現(xiàn)方式的組件之一,被列舉在其中,窗口作為iOS、Apple tvOS 、watchOS、iPad OS及macOS界面內(nèi)容的主要承載容器,用來呈現(xiàn)應(yīng)用中用戶界面的視圖和組件?!癆 window contains the views and components that present the user interface of your app or game.”

在iOS、Apple tvOS 、watchOS中,默認(rèn)是全屏的體驗(yàn),用戶將更多注意力聚焦在窗口中的內(nèi)容,而并不是窗口本身。因此三方開發(fā)者不需要考慮App 或游戲中設(shè)計(jì)窗口(Windows)或場(chǎng)景(Scenes)本身的外觀,而可直接調(diào)用SwiftUI中定義好的Scene和UIWindow。

與iOS、Apple tvOS 、watchOS不同,VisionOS、iPadOS和MacOS中,用戶通??梢源蜷_、關(guān)閉和查看單個(gè)/多個(gè)窗口,調(diào)整窗口的大小和位置等,因此,用戶會(huì)察覺到窗口是一個(gè)具有獨(dú)特視覺特質(zhì)的交互對(duì)象。

綜上,2D窗口作為跨全端側(cè)最為基礎(chǔ)的界面內(nèi)容承載容器,也無疑會(huì)成為Vision Pro中基礎(chǔ)的應(yīng)用形態(tài)之一。

2D窗口(Windows)具有良好的跨端兼容性,通過SwiftUI來構(gòu)建,包含傳統(tǒng)SwiftUI中模式和空間,這讓傳統(tǒng)端側(cè)的應(yīng)用更方便低成本移植到Vision Pro中。除此之外,2D窗口類型界面不但能保證用戶在空間計(jì)算平臺(tái)操作應(yīng)用時(shí)的基本效率還能保持用戶操作熟悉感,因?yàn)檫@些窗口和其他平臺(tái)中的布局和交互行為都比較類似,能讓用戶更輕松適應(yīng)空間計(jì)算平臺(tái)的基本操作方式。

而從移動(dòng)、PC設(shè)備跨端側(cè)到空間計(jì)算平臺(tái),為了體現(xiàn)無限畫布及3D內(nèi)容展示的特性,Volumes和Space應(yīng)空間應(yīng)用場(chǎng)景而生。接下來,讓我們一起聊聊在空間計(jì)算平臺(tái)中如何使用Windows、Volumes及Space來構(gòu)建你的第一個(gè)空間計(jì)算應(yīng)用。

二、Windows-應(yīng)用的基礎(chǔ)形態(tài)

在Vision Pro中,不論是Shared Space還是Full Space,一切需要2D內(nèi)容承載的應(yīng)用都可以用Window組成,每個(gè)應(yīng)用可以由一個(gè)或多個(gè)窗口組成。當(dāng)然也可以包含3D內(nèi)容(Volumes),支持2D和3D混合界面的呈現(xiàn)。

即使系統(tǒng)會(huì)定義用戶打開的每個(gè)窗口的初始位置,用戶仍然可以對(duì)窗口進(jìn)行基本的操控,把窗口移動(dòng)到空間中的任何位置,縮放窗口大小到舒適的尺寸,像在Mac一樣可以同時(shí)打開或關(guān)閉多個(gè)窗口應(yīng)用。

窗口的默認(rèn)窗口大小為 1280x720pt。窗口首次打開時(shí),系統(tǒng)會(huì)將其放在佩戴者前方約兩米的位置,并看起來約有三米寬,這是符合人因較為舒適的瀏覽距離及視場(chǎng)角的尺寸和深度距離。

除此之外,visionOS 窗口采用了毛玻璃的背景材質(zhì),一方面可以讓光線及現(xiàn)實(shí)和虛擬對(duì)象透過顯示,給用戶一種界面內(nèi)容與周圍背景融為一體的感覺,同時(shí)使用鏡面反射和陰影來傳達(dá)窗口的縮放和位置。另一方面,也保持了蘋果在品牌視覺上的一致性,繼承了Apple全家桶的毛玻璃效果。

在Xcode中,你可以通過創(chuàng)建WindowGroup組來創(chuàng)建你的個(gè)人窗口應(yīng)用界面。

當(dāng)然,如果你希望在窗口界面中加入3D物體內(nèi)容,讓界面體驗(yàn)更加立體,可以通過調(diào)用Model3D來呈現(xiàn)你的3D內(nèi)容。

三、Volumes-窗口的擴(kuò)展性形態(tài)

Volumes是Vision Pro平臺(tái)獨(dú)有的應(yīng)用形態(tài),為了體現(xiàn)虛擬現(xiàn)實(shí)下3D內(nèi)容的特性體驗(yàn),Volumes應(yīng)場(chǎng)景而生。Volumes可以支持應(yīng)用在一定邊界內(nèi)展示3D內(nèi)容,如果你有3D內(nèi)容想要展示,那Volumes是絕佳的選擇。

Volumes是Windows的擴(kuò)展性形態(tài),可以獨(dú)立存在于Space中,也可以與Windows混合融入其中,展示一定邊界內(nèi)的3D物體。即使也可以被用在Full space中,但蘋果推薦還是用于Share space。

與Windows類似,在Share Space中,系統(tǒng)都會(huì)確定Volumes和Windows的初始位置,但可以被用戶移動(dòng)到任何位置,并以不同的視角來觀看。Volumes也會(huì)提供類似Windows的管理控件與用戶用于調(diào)整窗口位置或關(guān)閉窗口。在材質(zhì)方面,Volumes也是用了相同的毛玻璃背景材質(zhì)。

有所不同的是在縮放方式上,Windows自動(dòng)使用動(dòng)態(tài)縮放,而為Volumes使用固定縮放。具體原因也在我的Apple Vision Pro設(shè)計(jì)規(guī)范之空間輸入篇提到過,Windows使用動(dòng)態(tài)縮放是為了保證最小控件的熱區(qū)一直可以符合眼手的操作精度;而為了保證3D物體大小貼合更自然真實(shí)的物理環(huán)境,Volumes則推薦使用固定縮放方式模式。

在具體實(shí)現(xiàn)上,可以在窗口類型中引入.volumestric,并設(shè)置默認(rèn)的長(zhǎng)寬高尺寸。

四、Space-元素內(nèi)容的容器

最后,讓我們來了解一下元素內(nèi)容的承載容器-Space。

類似Mac OS中的2D桌面,Space將2D桌面解放至360度的空間中,成為空間計(jì)算平臺(tái)中承載元素內(nèi)容的“空間桌面”。Windows、Volumes都需要被管理及承載在Space中。Vision Pro在空間模塊中的應(yīng)用管理方式包含了Shared Space、及Full Space。

默認(rèn)情況下,應(yīng)用是在Shared Space中運(yùn)行,就像Mac桌面上的不同應(yīng)用窗口一樣,用戶仍然可以和現(xiàn)實(shí)空間保持聯(lián)系和透視關(guān)系。通過VST顯示MR實(shí)景,在此MR空間內(nèi),用戶可以同時(shí)開啟多個(gè)場(chǎng)景。

有些場(chǎng)景下,你可能想調(diào)整應(yīng)用的沉浸模式,比如看電影或玩游戲時(shí),這時(shí)你可以使用Full Space模式。Full Space是指僅允許一個(gè)App運(yùn)行的狀態(tài),這就意味著你app中所有的Windows、Volumes和3D物體,只能有一個(gè)展示在可視區(qū)域內(nèi)。在Full Space中也同樣支持ARkit相關(guān)功能,比如平面檢測(cè),自定義手勢(shì)等,都只能在一個(gè)應(yīng)用全開的模式下進(jìn)行。

Full Space有以下特點(diǎn):

  • 營造獨(dú)占的沉浸感,可以讓用戶深度聚焦在你的應(yīng)用上
  • 無限畫布,可以將APP內(nèi)元素放置在任何地方
  • 同樣支持ARkit相關(guān)功能,可以與你周圍環(huán)境進(jìn)行互動(dòng)、創(chuàng)建自定義的手勢(shì)交互等
  • 有不同等級(jí)的沉浸模式,來滿足用戶對(duì)沉浸感體驗(yàn)的不同訴求

在Full Space中開發(fā)者可以調(diào)節(jié)沉浸度來改變應(yīng)用的沉浸度體驗(yàn)感。其中Passthrough(.mixed)的模式可以讓用戶與現(xiàn)實(shí)世界保持聯(lián)系,但你也可以選擇一個(gè)完全沉浸的空間,即Fully immersive(.full)。但你也可以結(jié)合這兩種沉浸度,即Progressive Immersive(.progressive)。

蘋果開發(fā)者文檔中是這么定義沉浸模式類型的:

  • Automatic Immersion style:默認(rèn)的沉浸模式。
  • Mixed Immersion style:將元素內(nèi)容混合在VST透視中,在無邊界的場(chǎng)景下顯示內(nèi)容,VST可見。
  • Progressive Immersion style:顯示環(huán)繞型窗口內(nèi)容應(yīng)用,用戶仍然可以和現(xiàn)實(shí)世界進(jìn)行互動(dòng)。
  • Full Immersion style:在無邊界的場(chǎng)景下只顯示內(nèi)容,遮蓋除了手部以外其它所有內(nèi)容的VST透視,讓你進(jìn)入一個(gè)完全虛擬的新世界。

除了應(yīng)用自定的沉浸式程度外,在Share Space中,用戶還可以通過旋轉(zhuǎn)頭顯上的表冠來切換三種空間沉浸模式。

但是,在Full Immersion應(yīng)用中,數(shù)碼表冠只能用于退出應(yīng)用,是無法用來調(diào)節(jié)沉浸度的。當(dāng)然,如果想退出沉浸式應(yīng)用,除了數(shù)字表冠,也可以通過Control center中應(yīng)用管理功能來完成。

在Vision OS的平臺(tái)上,一個(gè)應(yīng)用程序可以動(dòng)態(tài)的切換它的形態(tài),在不同沉浸程度之間流暢過渡。

講了這么多,讓我們來舉個(gè)例子深刻的了解一下Space具體的應(yīng)用。

比如在keynote中,應(yīng)用首先在窗口里打開,但仍然可以保持用戶和現(xiàn)實(shí)世界的聯(lián)系。當(dāng)播放幻燈片時(shí),系統(tǒng)將會(huì)調(diào)節(jié)周圍光線,讓演示更加聚焦。當(dāng)用戶想要排練演講時(shí),把用戶帶入一個(gè)全屏空間。這就是一個(gè)應(yīng)用在不同沉浸度下的應(yīng)用。

五、官方案例-Hello Wold

讓我們用官方實(shí)際案例來深入應(yīng)用一下Windows、Volumes和Space。

進(jìn)入主頁面時(shí),Hello World在Share Space中打開了一個(gè)主Windows,該Windows是由WindowGroup構(gòu)建而來,是應(yīng)用中出現(xiàn)的第一個(gè)場(chǎng)景。該Windows呈現(xiàn)了應(yīng)用程序的主頁內(nèi)容,同時(shí)定義了該Wwindows的類型為.plain,即我們說的平面窗口。

進(jìn)入二級(jí)頁面,我們可以看到一個(gè)二級(jí)Windows中包含了一個(gè)可交互的3D內(nèi)容形態(tài)。該3D物體是混合于Windows中的。在這里使用了Model3D來定義其形態(tài),視圖縮放和定位模型以適應(yīng)可用空間,并應(yīng)用可選的方向調(diào)整ItemView。當(dāng)然我們?cè)趯?D內(nèi)容添加到2D窗口時(shí),要注意以下幾點(diǎn):

  • 尺寸不要做得太大。雖然3D內(nèi)容增加了用戶的觀看興趣,但當(dāng)人們從不同方向查看窗口時(shí),可能會(huì)無意中掩蓋重要的控件或信息。
  • 確保3D內(nèi)容不超過可用深度。深度過大會(huì)導(dǎo)致元素被剪裁。
  • 避免模型與背襯玻璃相交及重合,同時(shí)考慮初始放置后的潛在移動(dòng)。

打開模型后,我們可以看到立體的地球,這是創(chuàng)建了一個(gè)Volumes形態(tài),使用了.volumetric窗口形態(tài),并定義了默認(rèn)的體積尺寸和深度尺寸。Volumes形態(tài)與Windows形態(tài)類似,都可以通過底部操控條來進(jìn)行移動(dòng)和關(guān)閉行為。

為了讓用戶直觀地看到衛(wèi)星如何繞地球運(yùn)行,我們可以在沉浸式的空間中來展示地球和衛(wèi)星之間的關(guān)系。我們可以通過創(chuàng)建一個(gè)具有沉浸式風(fēng)格的場(chǎng)景中的顯示視圖Orbit來承載該3D內(nèi)容模式。在該場(chǎng)景中,就是定義了一個(gè).mixed沉浸類型的3D模型展示視圖場(chǎng)景。

與Volumes窗口形態(tài)不同的是,OrbitToggle是用了空間環(huán)境特性而不是一種窗口類型,在這種情況下,沒有明顯的關(guān)閉操作,因?yàn)樵贔ull space下,用戶一次只能打開一個(gè)空間,即便是跨應(yīng)用程序也是這樣。如果想關(guān)閉該3D模型,可通過旋轉(zhuǎn)數(shù)字表冠或Control center進(jìn)行應(yīng)用關(guān)閉。

除了半沉浸模式,我們還可以使用完全沉浸式的方式從太空觀察太陽系,即Full Immersion的模式,在這種模式下,用戶可以通過UI窗口上的Exit按鈕退出全沉浸式的模式,也可以通過旋轉(zhuǎn)表冠來關(guān)閉當(dāng)前打開的沉浸式空間。

總結(jié)

Vision Pro中基礎(chǔ)應(yīng)用形態(tài)是Windows、Volumes和Space。其中Windows是應(yīng)用的基礎(chǔ)形態(tài),Volumes是窗口的擴(kuò)展形態(tài),而Space是元素內(nèi)容的承載容器。它們相輔相成構(gòu)成了空間計(jì)算平臺(tái)的基礎(chǔ)構(gòu)成形態(tài)。

那在你的應(yīng)用里是如何利用Windows、Volumes和Space來構(gòu)建空間計(jì)算應(yīng)用的,不如留言和作者一起分享和探討一下~

本文由 @Vicky。 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自蘋果官網(wǎng)

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!