四千字干貨!一文帶你吃透Windows、Volumes和Space|Vision Pro(windows live space)
在Vision Pro中,基礎(chǔ)應(yīng)用形態(tài)有幾種,包括Windows、Volumes和Space等。這些基礎(chǔ)應(yīng)用形態(tài),相輔相成構(gòu)成了空間計算平臺的基礎(chǔ)構(gòu)成形態(tài)。這篇文章里,作者就介紹了他們的設(shè)計原則及相關(guān)實踐,一起來看一下。
為一個全新的平臺構(gòu)建應(yīng)用,先從了解應(yīng)用形態(tài)開始。本篇介紹了空間計算平臺中的基礎(chǔ)應(yīng)用形態(tài)-Windows、Volumes、Space,并介紹其設(shè)計原則及最佳實踐,快來構(gòu)建你的第一個空間計算應(yīng)用吧。
一、空間計算的應(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è)計官方文檔規(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)是全屏的體驗,用戶將更多注意力聚焦在窗口中的內(nèi)容,而并不是窗口本身。因此三方開發(fā)者不需要考慮App 或游戲中設(shè)計窗口(Windows)或場景(Scenes)本身的外觀,而可直接調(diào)用SwiftUI中定義好的Scene和UIWindow。
與iOS、Apple tvOS 、watchOS不同,VisionOS、iPadOS和MacOS中,用戶通常可以打開、關(guān)閉和查看單個/多個窗口,調(diào)整窗口的大小和位置等,因此,用戶會察覺到窗口是一個具有獨特視覺特質(zhì)的交互對象。
綜上,2D窗口作為跨全端側(cè)最為基礎(chǔ)的界面內(nèi)容承載容器,也無疑會成為Vision Pro中基礎(chǔ)的應(yīng)用形態(tài)之一。
2D窗口(Windows)具有良好的跨端兼容性,通過SwiftUI來構(gòu)建,包含傳統(tǒng)SwiftUI中模式和空間,這讓傳統(tǒng)端側(cè)的應(yīng)用更方便低成本移植到Vision Pro中。除此之外,2D窗口類型界面不但能保證用戶在空間計算平臺操作應(yīng)用時的基本效率還能保持用戶操作熟悉感,因為這些窗口和其他平臺中的布局和交互行為都比較類似,能讓用戶更輕松適應(yīng)空間計算平臺的基本操作方式。
而從移動、PC設(shè)備跨端側(cè)到空間計算平臺,為了體現(xiàn)無限畫布及3D內(nèi)容展示的特性,Volumes和Space應(yīng)空間應(yīng)用場景而生。接下來,讓我們一起聊聊在空間計算平臺中如何使用Windows、Volumes及Space來構(gòu)建你的第一個空間計算應(yīng)用。
二、Windows-應(yīng)用的基礎(chǔ)形態(tài)
在Vision Pro中,不論是Shared Space還是Full Space,一切需要2D內(nèi)容承載的應(yīng)用都可以用Window組成,每個應(yīng)用可以由一個或多個窗口組成。當(dāng)然也可以包含3D內(nèi)容(Volumes),支持2D和3D混合界面的呈現(xiàn)。
即使系統(tǒng)會定義用戶打開的每個窗口的初始位置,用戶仍然可以對窗口進(jìn)行基本的操控,把窗口移動到空間中的任何位置,縮放窗口大小到舒適的尺寸,像在Mac一樣可以同時打開或關(guān)閉多個窗口應(yīng)用。
窗口的默認(rèn)窗口大小為 1280x720pt。窗口首次打開時,系統(tǒng)會將其放在佩戴者前方約兩米的位置,并看起來約有三米寬,這是符合人因較為舒適的瀏覽距離及視場角的尺寸和深度距離。
除此之外,visionOS 窗口采用了毛玻璃的背景材質(zhì),一方面可以讓光線及現(xiàn)實和虛擬對象透過顯示,給用戶一種界面內(nèi)容與周圍背景融為一體的感覺,同時使用鏡面反射和陰影來傳達(dá)窗口的縮放和位置。另一方面,也保持了蘋果在品牌視覺上的一致性,繼承了Apple全家桶的毛玻璃效果。
在Xcode中,你可以通過創(chuàng)建WindowGroup組來創(chuàng)建你的個人窗口應(yīng)用界面。
當(dāng)然,如果你希望在窗口界面中加入3D物體內(nèi)容,讓界面體驗更加立體,可以通過調(diào)用Model3D來呈現(xiàn)你的3D內(nèi)容。
三、Volumes-窗口的擴(kuò)展性形態(tài)
Volumes是Vision Pro平臺獨有的應(yīng)用形態(tài),為了體現(xiàn)虛擬現(xiàn)實下3D內(nèi)容的特性體驗,Volumes應(yīng)場景而生。Volumes可以支持應(yīng)用在一定邊界內(nèi)展示3D內(nèi)容,如果你有3D內(nèi)容想要展示,那Volumes是絕佳的選擇。
Volumes是Windows的擴(kuò)展性形態(tài),可以獨立存在于Space中,也可以與Windows混合融入其中,展示一定邊界內(nèi)的3D物體。即使也可以被用在Full space中,但蘋果推薦還是用于Share space。
與Windows類似,在Share Space中,系統(tǒng)都會確定Volumes和Windows的初始位置,但可以被用戶移動到任何位置,并以不同的視角來觀看。Volumes也會提供類似Windows的管理控件與用戶用于調(diào)整窗口位置或關(guān)閉窗口。在材質(zhì)方面,Volumes也是用了相同的毛玻璃背景材質(zhì)。
有所不同的是在縮放方式上,Windows自動使用動態(tài)縮放,而為Volumes使用固定縮放。具體原因也在我的Apple Vision Pro設(shè)計規(guī)范之空間輸入篇提到過,Windows使用動態(tài)縮放是為了保證最小控件的熱區(qū)一直可以符合眼手的操作精度;而為了保證3D物體大小貼合更自然真實的物理環(huán)境,Volumes則推薦使用固定縮放方式模式。
在具體實現(xiàn)上,可以在窗口類型中引入.volumestric,并設(shè)置默認(rèn)的長寬高尺寸。
四、Space-元素內(nèi)容的容器
最后,讓我們來了解一下元素內(nèi)容的承載容器-Space。
類似Mac OS中的2D桌面,Space將2D桌面解放至360度的空間中,成為空間計算平臺中承載元素內(nèi)容的“空間桌面”。Windows、Volumes都需要被管理及承載在Space中。Vision Pro在空間模塊中的應(yīng)用管理方式包含了Shared Space、及Full Space。
默認(rèn)情況下,應(yīng)用是在Shared Space中運行,就像Mac桌面上的不同應(yīng)用窗口一樣,用戶仍然可以和現(xiàn)實空間保持聯(lián)系和透視關(guān)系。通過VST顯示MR實景,在此MR空間內(nèi),用戶可以同時開啟多個場景。
有些場景下,你可能想調(diào)整應(yīng)用的沉浸模式,比如看電影或玩游戲時,這時你可以使用Full Space模式。Full Space是指僅允許一個App運行的狀態(tài),這就意味著你app中所有的Windows、Volumes和3D物體,只能有一個展示在可視區(qū)域內(nèi)。在Full Space中也同樣支持ARkit相關(guān)功能,比如平面檢測,自定義手勢等,都只能在一個應(yīng)用全開的模式下進(jìn)行。
Full Space有以下特點:
- 營造獨占的沉浸感,可以讓用戶深度聚焦在你的應(yīng)用上
- 無限畫布,可以將APP內(nèi)元素放置在任何地方
- 同樣支持ARkit相關(guān)功能,可以與你周圍環(huán)境進(jìn)行互動、創(chuàng)建自定義的手勢交互等
- 有不同等級的沉浸模式,來滿足用戶對沉浸感體驗的不同訴求
在Full Space中開發(fā)者可以調(diào)節(jié)沉浸度來改變應(yīng)用的沉浸度體驗感。其中Passthrough(.mixed)的模式可以讓用戶與現(xiàn)實世界保持聯(lián)系,但你也可以選擇一個完全沉浸的空間,即Fully immersive(.full)。但你也可以結(jié)合這兩種沉浸度,即Progressive Immersive(.progressive)。
蘋果開發(fā)者文檔中是這么定義沉浸模式類型的:
- Automatic Immersion style:默認(rèn)的沉浸模式。
- Mixed Immersion style:將元素內(nèi)容混合在VST透視中,在無邊界的場景下顯示內(nèi)容,VST可見。
- Progressive Immersion style:顯示環(huán)繞型窗口內(nèi)容應(yīng)用,用戶仍然可以和現(xiàn)實世界進(jìn)行互動。
- Full Immersion style:在無邊界的場景下只顯示內(nèi)容,遮蓋除了手部以外其它所有內(nèi)容的VST透視,讓你進(jìn)入一個完全虛擬的新世界。
除了應(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的平臺上,一個應(yīng)用程序可以動態(tài)的切換它的形態(tài),在不同沉浸程度之間流暢過渡。
講了這么多,讓我們來舉個例子深刻的了解一下Space具體的應(yīng)用。
比如在keynote中,應(yīng)用首先在窗口里打開,但仍然可以保持用戶和現(xiàn)實世界的聯(lián)系。當(dāng)播放幻燈片時,系統(tǒng)將會調(diào)節(jié)周圍光線,讓演示更加聚焦。當(dāng)用戶想要排練演講時,把用戶帶入一個全屏空間。這就是一個應(yīng)用在不同沉浸度下的應(yīng)用。
五、官方案例-Hello Wold
讓我們用官方實際案例來深入應(yīng)用一下Windows、Volumes和Space。
進(jìn)入主頁面時,Hello World在Share Space中打開了一個主Windows,該Windows是由WindowGroup構(gòu)建而來,是應(yīng)用中出現(xiàn)的第一個場景。該Windows呈現(xiàn)了應(yīng)用程序的主頁內(nèi)容,同時定義了該Wwindows的類型為.plain,即我們說的平面窗口。
進(jìn)入二級頁面,我們可以看到一個二級Windows中包含了一個可交互的3D內(nèi)容形態(tài)。該3D物體是混合于Windows中的。在這里使用了Model3D來定義其形態(tài),視圖縮放和定位模型以適應(yīng)可用空間,并應(yīng)用可選的方向調(diào)整ItemView。當(dāng)然我們在將3D內(nèi)容添加到2D窗口時,要注意以下幾點:
- 尺寸不要做得太大。雖然3D內(nèi)容增加了用戶的觀看興趣,但當(dāng)人們從不同方向查看窗口時,可能會無意中掩蓋重要的控件或信息。
- 確保3D內(nèi)容不超過可用深度。深度過大會導(dǎo)致元素被剪裁。
- 避免模型與背襯玻璃相交及重合,同時考慮初始放置后的潛在移動。
打開模型后,我們可以看到立體的地球,這是創(chuàng)建了一個Volumes形態(tài),使用了.volumetric窗口形態(tài),并定義了默認(rèn)的體積尺寸和深度尺寸。Volumes形態(tài)與Windows形態(tài)類似,都可以通過底部操控條來進(jìn)行移動和關(guān)閉行為。
為了讓用戶直觀地看到衛(wèi)星如何繞地球運行,我們可以在沉浸式的空間中來展示地球和衛(wèi)星之間的關(guān)系。我們可以通過創(chuàng)建一個具有沉浸式風(fēng)格的場景中的顯示視圖Orbit來承載該3D內(nèi)容模式。在該場景中,就是定義了一個.mixed沉浸類型的3D模型展示視圖場景。
與Volumes窗口形態(tài)不同的是,OrbitToggle是用了空間環(huán)境特性而不是一種窗口類型,在這種情況下,沒有明顯的關(guān)閉操作,因為在Full space下,用戶一次只能打開一個空間,即便是跨應(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)成了空間計算平臺的基礎(chǔ)構(gòu)成形態(tài)。
那在你的應(yīng)用里是如何利用Windows、Volumes和Space來構(gòu)建空間計算應(yīng)用的,不如留言和作者一起分享和探討一下~
本文由 @Vicky。 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自蘋果官網(wǎng)
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。