翻譯自https://developer.apple.com/ios/human-interface-guidelines/technologies/augmented-reality/
應用可以使用Apple的AR技術也就是ARKit來創(chuàng)建沉浸的參與感強的體驗就好像把擬真的虛擬物體和真實的世界融合在一起折汞。在AR的應用中介蛉,設備的攝像頭用來呈現一個栩栩如生的在屏幕上的物理世界昭齐。3D虛擬物體疊加在畫面上,造成他們確實存在的假象峦萎,用戶可以旋轉他們的設備來從不同的角度觀察這些物體,然后再合適的體驗下革半,用手勢或者動作與他們交互
設計一個吸引人的體驗
用完整的顯示來吸引人們丛晦。利用盡可能多的屏幕來觀察體驗真實的世界以及你的應用中的虛擬物體,防止因為控制或者信息分割你的屏幕而降低體驗的沉浸感
放置擬真的物體時創(chuàng)造令人信服的假象涩馆。并不是所有的AR體驗都要擬真的虛擬物體行施。那些需要的,需要融入那個他們被放置的物理環(huán)境。為了最好的效果魂那,設計一些具有和平常生活相近紋理細節(jié)的3D素材蛾号,然后把他們放在ARKit檢測出來的真實世界的平面上,把物體調整到合適的大小涯雅,給虛擬物體添加環(huán)境光源的放射鲜结,把虛擬物體的影子打到真實世界的平面上,并且隨著攝像頭位置的變化更新顯示效果
考慮物理限制。牢記人們可能嘗試在一個并不理想的環(huán)境下使用的你的應用精刷。比如說拗胜,他們可能在一個空間很小沒有什么可以移動的空火箭或者沒有什么比較大的平坦的表面區(qū)域的地方打開你的應用。嘗試添加一些情節(jié)去防止這些挑戰(zhàn)怒允,清晰的吧要求或者預期在一開始告訴使用者埂软。考慮添加多樣的功能設置讓用戶在不同的環(huán)境下使用
考慮用戶的舒適度纫事。讓用戶長時間在特定距離或者角度拿著設備可能很痛苦仰美。考慮一下用戶用你的應用時是怎么拿設備的儿礼,然后設計一個不會造成不舒適的有趣的體驗咖杂。比如說你可以把物體放置在一個合適的距離,不需要用戶走近蚊夫。游戲可以設計的關卡短一些诉字,在間隔時間也短一些
如果你的應用鼓勵用戶運動,循序漸進的介紹他知纷。比如說在游戲中壤圃,用戶不應該在一進入到AR里面就要移開去躲避一個虛擬的炸彈。首先應該給他們時間去適應整個體驗琅轧,然后再慢慢的鼓勵他們動起來
考慮用戶的安全伍绳。移動的太多可能會很危險,假如旁邊有人或者什么東西乍桂〕迳保考慮一些方法使你的應用可以安全的運作。比如游戲可以杜絕一些突然的大幅度的動作
使用音頻和觸覺的反饋來增強整個沉浸的體驗睹酌。一個音效或者凹凸感是一個很好的方式去確認一個虛擬的物體碰到了實際的表面或者其他虛擬的物體权谁。在一個沉浸的游戲中,背景音樂可以讓用戶沉浸在整個虛擬的世界當中
對于一些拓展可能性憋沿,把線索放到內容當中旺芽。比如說放置一個3D旋轉的標示在物體周圍比在物體下面用文字添加介紹直觀很多。當然在表面檢測之前或者用戶沒有對提示做出反應的時候辐啄,疊加的信息更有保障
如果你必須顯示介紹的文字采章,使用平易近人一些的語句。AR對于很多用戶來說可能是比較高級的內容會被嚇到壶辜。杜絕使用一些技術開發(fā)性的詞匯比如說ARKit悯舟,世界檢測,追蹤會使體驗更易于接受士复。用一些友善的對話式的可以讓大多數用戶理解
好的提示 | 不好的提示 |
---|---|
找不到表面图谷。嘗試移動到邊上或者重新放置你的手機 | 找不到平面翩活。調整追蹤 |
點擊一個位置放置物體 | 點擊一個平面錨定物體 |
打開更多的燈然后再周圍移動一下 | 沒有足夠的特征點 |
慢一些移動你的手機 | 檢測到過度的移動 |
在AR體驗中避免不必要的中斷阱洪。環(huán)境分析和平面檢測會在每次用戶退出和進入AR時進行便贵。更多的是,手機和攝像頭的位置很可能發(fā)生了改變冗荸。結果承璃,之前放置的物體有可能被重新放置到其他位置--甚至由于重置了真實世界的表面,他們可能都不見了蚌本。讓用戶改變設置和改變物體時在AR內進行是一個比較好的方式盔粹。比如說,一個用戶在他的起居室放置了一個他們想買的椅子程癌,他們可能會向嘗試其他樣式
進入AR
當初始化正在進行中的時候給出提示舷嗡。每次進入AR都會啟動一個初始化的進程,會計算周圍的環(huán)境嵌莉。這個過程可能持續(xù)幾秒鐘进萄。為了減少可能的疑惑并且加速這個流程,在初始化過程中給出一個提示锐峭,鼓勵用戶探索周圍的環(huán)境或者尋找一個平面
放置虛擬物體
幫助用戶理解什么時候確定表面的位置放置一個物體中鼠。一個可視的提示是一個很好的方式去告訴這個表面目標模式是激活的。一個梯形網線在屏幕中央幫助人們理解他們要找一個水平的表面沿癞。一旦這個平面被選中了援雇,這個提示要變化樣式去告訴這個地方是可以放置物體的了,如何設計提示是你的應用體驗的一部分
當用戶放置了物體的時候給合適的反饋椎扬。在表面檢測的過程中準確度一直在改善惫搏。如果用戶點擊屏幕放置一個物體,立即用目前可以用的信息放置這個物體蚕涤。然后當平面檢測完成的時候再優(yōu)化這個物體的位置晶府。加入一個物體超出了檢測的平面邊界,輕輕的把這個物體推回表面
杜絕精確地把物體放置在檢測的表面邊緣钻趋。在AR中川陆,表面邊界可能隨著用戶的周圍環(huán)境的進一步分析而改變
用戶與虛擬物體的交互
傾向于直接的操作而不是獨立的屏幕上的控制鍵。用戶可以直接觸摸屏幕上的物體和他交互是更加具有沉浸感和直觀的相對于屏幕上獨立的控制按鍵蛮位。盡管你應該記住直接的操作有時會造成困惑或者很困難當用戶移動到周圍
允許用戶勇士標準熟悉的手勢與虛擬的物體進行交互较沪。比如說用一個手指移動物體,用兩個手指旋轉縮放物體
一般來說失仁,保持交互簡單尸曼。觸摸手勢是2維的,但是AR體驗是3維的萄焦】亟危可以通過下面的方式簡化用戶與虛擬物體的交互
把物體的移動限制在二維的表面
把物體的旋轉限制在一個軸
在與虛擬物體合適的交互范圍內響應手勢冤竹。對于用戶來說精準對一些小的細的物體進行交互或者把他放到一個位置是很困難的。所以當你的應用在一個可以交互的物體旁邊檢測到了手勢茬射,通常來說認為用戶想與這個物體進行交互
考慮是否需要對用戶創(chuàng)建的物體進行縮放鹦蠕。縮放在一些沒有固定的大小的物體而且用戶可能想要放大縮小他比如說玩具或者游戲人物上門是合適的在抛。對于一些在實際中有固定大小的的物體比如說一件家具钟病,如果要把他當在一個準確的尺寸下,縮放是沒有必要的刚梭〕澹縮放不是用來調整物體的距離的--想要通過把一個物體放大來使它看起來更近只會變成在比較遠的地方有一個大物體
注意潛在的手勢沖突。雙指的縮放手勢和雙指的旋轉手勢很接近朴读。如果你用了兩個相近的手勢屹徘,一定要測試你的應用保證他的交互是合適的
確保虛擬物體的移動是平緩的。物體不要出現跳動當用戶調整他們的時候
探索更多吸引人的交互方法衅金。手勢不是用戶與虛擬物體交互的唯一的方式噪伊。你的應用可以用其他元素,比如說運動和近似度把這些內容帶進生活典挑。一個游戲人物可以吧頭朝向用戶當用戶走向他的時候
處理問題
允許用戶重置當沒有達到他們預期的時候酥宴。不要強制用戶等待條件改善或者艱難的處理物體的放置。給他們一個方式去重新啟動看看有沒有更好的效果
在問題發(fā)生時給出建議的解決方式您觉。分析用戶的環(huán)境和平面檢測失敗可能有很多的原因--沒有足夠的光拙寡,平面反射太嚴重,平面細節(jié)太少琳水,或者攝像頭移動過度肆糕。如果你的應用檢測到了這些給出解決這些問題的建議
問題 | 解決建議 |
---|---|
沒有檢測到足夠的特征點 | 試著打開更多的燈然后再周圍走一下 |
檢測到過度的移動 | 試著慢一些移動你的手機 |
表面檢測花了過長的時間 | 試著移動到周圍,打開更多的燈在孝,確保你的手機對著一個有足夠多紋理的平面 |
只給合適的設備提供AR功能诚啃。如果你的應用的主要目的是AR,確保你的醫(yī)用只在支持ARKit的設備上可以使用私沮。如果你是把AR作為輔助功能始赎。比如家具商品,其中包括產品圖片仔燕,并且可以讓用戶在AR中查看一些產品造垛,如果用戶的設備不支持AR但是嘗試使用AR功能,請避免彈出錯誤提示晰搀。如果不支持ARKit就直接不要給用戶顯示可以選的AR功能五辽。