如何在Unity中利用nReal製作AR應用

2020-12-08 新浪VR

nReal眼鏡是今年最有趣的增強現實小工具之一。它們已經在CES上展示過了,幾個月前筆者在北京親自試用過,在我的評測中,我強調了它們不僅非常輕、時尚,而且還能提供非常明亮的全息視圖。

如果你和我一樣是一名開發人員,並且像我一樣對這些設備感興趣,你可能會問自己這樣的問題:「我如何為nReal眼鏡開發?」,「已經可以為它們開發了嗎?」、「SDK在哪裡?」、「有模擬器嗎?」

幸運的是,有一個你最喜歡的ghost可以幫助你。在本文中,您可能會找到以上所有問題的答案:我將指導您為nReal眼鏡(典型的灰色立方體!)開發一個小的Unity體驗,並通過在編輯器中模擬它來測試它,感謝nReal的「模擬器」。你準備好了嗎?

如何在Unity中開始使用nReal開發(視頻教程)

我拍了一段很長的視頻給你看: 如何安裝開發nReal眼鏡的先決條件; 如何下載SDK並將其導入Unity; SDK的當前狀態是什麼(關於它的一點評論); 如何配置Unity來構建nReal眼鏡; 如何創建您的第一個Hello World應用程式; 什麼是nReal「模擬器」以及如何使用它。這是很多主題:你需要知道在Unity中開始使用nReal開發所需要的所有內容。。。。。。你可以在一個視頻中找到它們,你也可以在下面看到它們!

如何在Unity(文本教程)中開始nReal開發(和模擬器)

當然,作為一個熱愛閱讀和寫作的人,我不得不提供上述教程的文本版本。所以,如果你不喜歡視頻,你可以繼續閱讀,我將以書面形式提供相同的信息。

必備軟體安裝

為了能夠為nReal眼鏡開發,你必須在你的系統上安裝這個軟體:

Unity(至少版本2018.2); Android SDK(至少7.0版)。 當然,你還需要下載nReal Unity SDK。 讓我簡要地向您展示如何下載和安裝所有這些東西。Unity

如果你還沒有安裝Unity,直接在Unity網站上下載。如果你正在自己做測試,選擇你想嘗試的個人版,你可以永遠免費使用,直到你(或你的公司)每年賺超過10萬。

就我個人而言,我仍然在使用Unity 2018.3.6f1,因為它是我正在為我的諮詢公司開發的其他項目,但實際上,nReal建議使用Unity 2018.2.x。我認為如果你下載了最新的版本,也就是2019.2,你應該也沒有問題。在任何情況下,您都可以直接從Unity Hub或這個頁面下載您想要的特定版本的Unity。

安裝Unity時,請確保安裝Android Build Support。

正如Ivan Berg讓我注意到的,您可以在選擇Android Build Support之後,在Unity安裝過程中直接安裝為nReal glasses開發的Android SDK。如果發生這種情況,您可以跳過下面的大部分內容,我將在這裡向您展示如何安裝Android SDK。

Android SDK

安裝Android SDK最簡單的方法是下載並安裝Android Studio。Android Studio是谷歌用來創建Android應用程式的IDE,通過安裝它,您還可以下載和安裝Android開發所需的所有工具。

我不會在這裡詳細介紹細節,因為它只需要一個單獨的指南。無論如何,最重要的是安裝Android Studio從其網站下載它。安裝完成後,必須使用其IDE安裝所需的Android SDK,在本例中為7.0版。打開Android Studio並選擇Tools-> Android - > SDK Manager以打開SDK Manager。在其中,您可以安裝Android開發所需的SDK。

我建議安裝Android 4.4 (SDK API level 19)和Android 7.0 (SDK API level 24)。同時安裝各種SDK工具和平臺工具。在此之後,將目錄\platform-tools放入PATH環境變量中,因為這可能有助於您在將來獲得nReal glasses時使用ADB調試和錄製視頻。如果您安裝了Android Studio而沒有指定自定義目錄,可以在Windows pc中的「C:\Users\\appdata\local\ Android \sdk」中找到。

nReal SDK

在下載之前,您必須通過單擊網頁右上角的按鈕進行註冊。 您必須提供您的姓名,電子郵件並回答一些分析問題。 註冊後,忽略您將找到的「我的項目」頁面(將項目提交給nReal以便他們可以為您提供devkit非常有用,因此它實際上非常有趣。。。。。。但它對於此目的沒有用 創建您的第一個AR應用程式),並返回下載頁面,選擇您要下載的SDK版本(編寫本文時為1.1 Beta),然後同意條件條款並點擊下載按鈕。

您將下載ZIP文件。 解壓縮它,你會發現一個Unity Package文件,它代表我們將在Unity中使用的實際SDK。

我們導入SDK吧!

是時候開始Unity了。

在Unity startup中,選擇你想要創建一個新項目(有一個寫著「new」的按鈕和一張白紙上的圖標,裡面有一個「+」),並按照你的意願將其命名,例如,「nRealMagicTest」。它必須是一個3D項目(它應該是默認選項)。

選擇您喜歡的盤符創建一個文件夾。請記住,Unity將在這個文件夾中創建一個帶有項目名稱的子文件夾,它將包含項目本身的所有元素。

當你準備好了,點擊「創建項目」。

當Unity界面彈出時,我們必須導入nReal插件。選擇Assets -> Import Package -> Custom Package…並選擇我們從nReal網站下載的Unity Package。Unity將檢查包的內容,然後詢問您要導入什麼。選中所有內容,勇敢地點擊導入按鈕。

此時,在編譯了一些資源之後,您將在NRSDK文件夾中找到nReal SDK的所有內容。

我對它的印象

在研究了SDK並進行了嘗試之後,我的第一印象是複雜的。

在較高的級別上,SDK組織得非常好,所有各種元素都整齊劃分為文件夾。開發增強型應用所需的所有高級元素:用於眼鏡的專用相機,輸入管理,預製件以及用於標記和無標記增強現實的腳本。它還有一個「模擬器」,我們很快就會看到。因此,它具有潛力,因為它結構良好。

但與此同時,它也有各種各樣的錯誤:正如我在視頻中所展示的那樣,有許多拼寫錯誤的東西:「Debuger」而不是「Debugger」,「UNITY_DEITOR」而不是「UNITY_EDITOR」等。。。奇怪的是,各種腳本的兩個不同的命名空間。。。。。。還有一個腳本仍然報告谷歌的版權(??)。有些評論採用Doxygen格式,沒有人在C#中使用。用於在圖像標記上定位東西的測試腳本被竊聽。然後,每個文件的開始注釋都值得一提:

「NRSDK是分布式的,希望它將是有用的」。這有點有趣…我想像中國開發者花了無數的時間去開發它,然後說:「呃,我們整天都在這裡開發SDK,而不是在外面玩…誰知道它是否有用,或者我們只是在浪費時間…」拜託,夥計們,至少我在用它,所以你們做的很有用,開心點。您可以更改「nrsdk是分布式的」中的注釋,因為它至少對Tony有用。

讓我們製作第一個nReal應用程式

是時候製作我們的第一個應用程式了!

你應該在Unity為你創建的「SampleScene」中;從場景中刪除「主攝像頭」,方法是單擊它並按下CANC鍵;在Project窗口中,轉到Assets \ NRSDK \ Prefabs並將NRCameraRig預製件拖入場景。這將處理nReal眼鏡的AR相機;拖動到場景中的NRInput預製件,將處理來自設備的輸入;現在轉到Assets \ NRSDK \ Emulator \ Prefabs並將NRTrackableImageTarget prefab拖入場景。這個預製件可以讓你將增強現實元素放在圖像標記上(你通常使用Vuforia做什麼);如果需要,請在場景中選擇NRTrackableImageTarget元素,然後在檢查器中查找腳本NR可跟蹤圖像行為。在其中,有一個名為「圖像目標」的下拉列表,您可以在其中選擇要跟蹤的圖像。 nReal為您提供3個標準的:您也可以添加您的,但這不是本教程的一部分;更改NRTrackableImageTarget元素的位置。在Transform行為中,將位置設置為X:0,Y:0,Z:2;在Hierarchy窗口中,使用滑鼠右鍵單擊,然後選擇Create - > 3D Object - > Cube;選擇剛剛創建的立方體,在檢查器中,將其比例更改為X:0.25,Y:0.25,Z:0.25以使其更小;創建一個新的空遊戲對象:創建 - >創建空;在Inspector中,單擊「添加組件」,然後在搜索文本框中寫入「Test」,然後從找到的腳本中選擇TrackableFoundTest。 TrackableTest是nReal提供的示例腳本(不是生產中可以使用的東西!),它將3D對象放到圖像標記上,並且僅在標記可見時才顯示3D對象。這正是我們想要的基於標記的AR;我們必須告訴TrackableTest什麼是圖像標記以及要在其上顯示的3D對象是什麼。將之前創建的Cube對象拖到TrackableTest的「Obj」屬性上。然後將我們之前創建的「NRTrackableImageTarget」拖到「Observer」屬性上。至此,我們完成了!實際上,提供的TrackableTest腳本會有漏洞(至少在編輯器中工作時)。因此,雙擊它並用以下代碼替換所有代碼:

注意,「+ new Vector3(0, +0.125f, 0)」被添加到使我們的立方體(即高0.25)完美地位於標記上。我提供給你的這段代碼只是一個快速的測試,它不是你可以用於所有AR應用程式的最終解決方案。

在上面提供的代碼的Update方法中(第20-21行),我還添加了兩行代碼,每當用戶按下nReal oreo控制器的觸發按鈕時,這兩行代碼就會使立方體變色。訪問nReal中的輸入與查詢NRInput類一樣簡單。

現在,我們已經開發了一個應用程式,它可以在增強現實的圖像上顯示一個立方體……現在是測試它的時候了!

完成配置Unity

在進行測試之前,我們必須正確配置Unity以構建nReal:

在菜單中選擇File - > Build Settings 。。。;在構建設置窗口的上部場景中,選擇「已刪除」條目(如果有),然後按鍵盤上的Canc將其刪除;單擊「添加打開場景」按鈕,將剛剛創建的驚人立方體場景添加到項目的構建中;在Platform選項卡中,選擇Android,然後單擊Switch Platform。這需要一段時間;Unity完成後,單擊窗口左下角的「播放器設置。。。」按鈕。這將打開Unity主窗口的Inspector中的Player Settings(右側);根據需要在播放器設置的上半部分更改公司名稱和產品名稱;向下滾動並展開「決議和演示」部分;使用Nreal Light計算單元時,將Orientation - > Default Orientation設置為「Landscape Left」,使用智慧型手機時設置為「Portrait」。如果您沒有設備,請選擇Landscape Left;向下滾動並展開「其他設置」部分;在「標識」部分中,更改「包名稱」以使其與您的組織保持一致(例如,將其命名為com.yourcompanyname.nRealMagicTest);始終在標識部分,將最低API級別更改為4.4 KitKat,將目標API級別更改為7.0牛軋糖;在「渲染」部分中,禁用「多線程渲染」;在Configuration部分中,將Write Permissions設置為「External(SDCard)」;現在在Unity菜單中,選擇編輯 - >項目設置。。。 - >質量,然後在彈出的窗口中,轉到設置的末尾並將V同步計數設置為不同步。

好的,現在我們的項目已經準備好了! 在Build Settings窗口中,您可以點擊「Build and Run」並在nReal設備上嘗試我們的神奇立方體!

nReal「模擬器」

因為在撰寫本文時我們中沒有人真正擁有nReal設備。。。如何測試我們夢幻般的立方體應用程式?我們使用「模擬器」,它允許您從Unity內部模擬用戶頭部的移動和控制器上的輸入,這樣您就可以在沒有設備的情況下實際測試應用程式,而無需離開Unity!

這意味著您只需點擊Unity中的「播放」按鈕(Unity窗口上部的那個),然後直接在「遊戲」窗口中測試您的應用程式。點擊「播放」後,您可以:

使用WASD模擬用戶頭部的運動;使用SPACE +滑鼠移動來模擬用戶頭部的旋轉;使用SHIFT +滑鼠移動來模擬nReal控制器的旋轉(請記住nReal控制器是3DOF控制器);單擊滑鼠左鍵以模擬控制器觸發器的單擊;單擊滑鼠右鍵以模擬控制器主頁按鈕的壓力;單擊滑鼠滾輪按鈕以模擬控制器的App按鈕的壓力;使用箭頭鍵模擬在控制器的觸摸板上滑動。我對「模擬器」的看法

nReal在添加這個「模擬器」方面做得很好,因為它允許我們直接在編輯器中嘗試應用程式,而無需將其部署在設備上。 通過這種方式,開發時間變得更快(在Android設備上進行部署非常簡單),並且還可以在沒有設備的情況下開始為nReal開發。 有可能模擬設備和控制器是很好的。

無論如何,我對此也有一些批評:

該名稱具有誤導性:它不是模擬器,這就是為什麼我一直把它寫在引號內。 它可以幫助您進行開發,但真正的模擬器將是一個Android虛擬機,可以模擬設備的作業系統,您還可以在其中模擬設備在各個房間內的行為。 所有最流行的AR眼鏡(HoloLens和Magic Leap One)都有這種仿真器,因為它需要實際測試應用程式。 在Unity內部進行測試並沒有給出關於構建應用程式時會發生什麼的真實反饋(例如,當UNITY_EDITOR部分沒有被編譯時);鍵的選擇與Unity內的所有其他仿真(例如Vive Focus Plus,HoloLens之一等)不同。 我希望對未來進行某種標準化。測試時間!

好了,教程結束了……現在是測試我們的應用程式的時候了!

按Unity中的「播放」按鈕,然後使用「模擬器」移動相機,直到出現您構建的圖像,您應該看到立方體出現在它上面! 如果您使圖像從玻璃視野中消失,立方體應該消失! 按下控制器觸發按鈕,立方體將改變顏色。。。。。。這不是有史以來最好的AR應用嗎?

其他參考文獻

如果您想深入了解nReal眼鏡的開發,還需要一些其他參考:

Android快速入門指南:https://developer.nreal.ai/develop/unity/android-quickstartnReal Emulator文檔:https://developer.nreal.ai/develop/unity/emulatorNRSDK簡介:https://developer.nreal.ai/develop/discover/introduction-nrsdk我的朋友Nikk Mitchell關於在真實的nReal設備上開發Unity應用程式的教程:https://www.youtube.com/watch?v = aFQgfQoh8T4您還可以查看插件的Assets \ NRSDK \ Demos文件夾中的示例場景。 觀看演示,您可以了解有關此設備開發的新內容。如果您想加入nReal社區:

Reddit:http://reddit.com/r/nrealSlack:http://nreal-dev.slack.comDiscord:http://discordapp.com/invite/7kemw5

相關焦點

  • Unity推出的AR Foundation能幫助使用者解決AR開發過程中遇到的難題
    > Unity開發了一個多平臺API和實用程序,幫助解決你在AR開發過程中遇到的眾多難題,他們將其稱之為 AR Foundation。 Unity表示,「藉助 AR Foundation 及其利用的軟體架構,我們現在可以為開發者提供一個支持ARCore、ARKit和未來平臺核心功能的通用API。」
  • Unity 2018.3 Beta版發布
    直播課程:Facial AR Remote面部捕捉解決方案課程(第一期)直播地址:https://connect.unity.com/events/unitychina-facialarUnity官方教師培訓報名火熱進行中Unity將在10月22-26日,舉辦為期5天的專業的Unity官方教師培訓課程,誠邀廣大教師與
  • 【大咖專欄】Unity AR Foundation 平面檢測實戰
    3.AR應用場景廣泛,包括:教育、醫療、購物、娛樂、傳媒、旅遊、軍事等。在需要平面檢測,面積計算這樣的AR應用場景,國內老牌的EasyAR已不能滿足需求。Unity為了更好的支持遊戲開發中應用AR技術,抽象了UnityAR Foundation框架,實現「構建一次,多平臺部署」。無疑UnityAR Foundation已成為Unity中開發AR應用的首選框架。
  • 使用unity3D最新版本的 vuforia組件製作AR
    最近用unity做了個基礎vuforia的AR製作,發現網絡中的教程基本都過時了,還是幾年前的舊版本做的教程。本秀不才,經過一番的刻苦鑽研後,終於做出了效果。在這裡分享給大家!這也是我的第一篇文章,有不足之處請多多包涵。
  • 使用unity製作RPG遊戲3——2D精靈
    前面介紹了使用Tiled製作地圖相關連結http://baijiahao.baidu.com/builder/preview/s?context=%7B%22nid%22%3A%22news_9564882242542237691%22%2C%22sourceFrom%22%3A%22bjh%22%2C%22url_data%22%3A%22bjhauthor%22%7D下面需要利用Tiled2Unity把01地圖導入unity下載Tiled2Unity,在根目錄下打開可執行文件進入unity。
  • 藝術、教育、垃圾分類等AR應用,讓生活更便捷!
    近期AR生活應用動態盤點2019年以來,AR方面動作頗多。硬體方面,多款AR眼鏡公布,包括nreal light AR眼鏡、vivo AR眼鏡等;應用方面,微信推出的AR營銷小程序曾強勢刷屏,導航方面的動態亦不少(關於AR導航,VRPinea曾對其有過詳細介紹:《蘋果、谷歌、高德……都在搞的AR導航,你還沒試過?》,感興趣的讀者請自行點擊藍字閱讀)。
  • unity遊戲製作初始人物控制代碼
    大家好,今天小編帶大家學習一哈unity遊戲製作中初始人物控制代碼。1.我們知道遊戲中,選中人物,在人物未開始運動前,往往會有一個初始的動作,好的,我們這節課通過unity中相關代碼和基礎設置來實現這一效果。
  • 簡化AR體驗創作,Unity MARS Query系統程序化生成場景的原理
    Unity MARS的出現是為了幫助創作者們製作可適應環境的AR內容,我們希望解決AR開發者們面臨的幾個主要問題:如何精確地在現實中描繪內容、如何加快AR創作在各個環境下的迭代與測試時間()以及如何讓虛擬內容適應不同的環境。以上幾點都是與內容適應性相關的問題。
  • Unity官方示例:在ARCore和ARKit中實現多人遊戲
    在Unity Austin 2017中,Unity向大家介紹了如何在Unity中使用ARKit和ARCore,以及如何解決多人遊戲的問題。此文原發於「Unity官方平臺」公眾號,雷鋒網獲授權轉載。第二個需求是如何解決AR中顯示縮放內容的問題。第三個需求是如何使用Unity中現成的功能來實現多人遊戲功能。這次演講中,我們回應了以上的三個需求。而在這篇文章中,我們希望為你帶來演講中的更多細節,幫助你使用演講中的示例代碼。
  • Unity項目開發過程中常見的問題,你遇到過嗎?
    一個新的功能是如何發布到最終的發布版本的?是否有自動化的可持續集成設施(CI)?QA要如何反饋Bug,Bug如何有效的管理?正式項目直接在Demo原型上進行開發這個也是一個常見的情況,有些項目組早期會有少數幾個人開發一些玩法演示Demo,Demo被認可之後開始開發正式的項目。
  • 如何利用word製作國旗
    如何利用word文檔製作一面五星紅旗大家都知道,五星紅旗是中華人民共和國的國旗,你知道如何用word文檔製作一面五星紅旗嗎?第四步:在屬性對話框中,選擇填充與線條,填充顏色選純色填充,將旗面顏色設置為紅色,線條選擇無。第五步:在旗面上添加黃色五角星。點擊標題行插入,選擇形狀—星與旗幟—五角星。第六步:點擊滑鼠左鍵向右拉,然後釋放,出現五角星圖形。
  • Spark AR 統整特效發布
    本文轉載自【Facebook開發者】公眾號,無論您想增加下載量、提升用戶留存,還是想讓應用程式變現,Facebook 平臺都有能助您一臂之力的工具和解決方案,歡迎大家關注。
  • 如何將Excel數據表單元格保存為數組,VBA數組進階應用
    No.1在vba編程中,數組應用是一個十分有用的方法。如何把數據表作為數組進行處理,是編程過程中的一個重要技能。學會之後,將大大提高編程技術,也將使數據處理的過程變得更加流暢。No.2上圖為例,把表格內容作為數組值進行保存,然後通過流程編碼對成績進行一個比較判斷,最終得出一個成績等級的判定。
  • 我們跟Unity聊了聊,如何助力3A遊戲製作
    Unity HDRP 製作的數字人實時渲染動畫《異教徒》畫面作為一個實時3D互動內容創作和運營平臺,可編程渲染管線SRP和支持多線程的面向數據的編程模式(DOTS)構成了Unity兩大技術核心。「可編程渲染管線SRP,即如何在多個平臺上達到更好的畫質。
  • AR技術如何在製造業中應用
    作為製造業,也需要在此過程中得到一定的創新,只有這樣才可以順應時代潮流,並生產出一些質量更高的產品。而這個的前提就是需要技術人員學習新的知識和技術技能,但是學習的過程並不是容易的。對於一些複雜的生產線,使用傳統的培訓方式培訓生產線工人是存在局限性的,因此就需要找到應對的辦法。作為新興技術,AR便能夠做到更好地解決這一問題,為製造業提供了一種極佳的方式。
  • 2021新年匯總:Unity項目原型快速開發資源,看這一篇就夠
    本文匯總了截止2021年1月2日的Unity項目原型快速開發資源,歡迎自取~01  Unity官方發布在資源商店的所有資源: 本連結中包含 資源商店中模板項目搜索結果: https://assetstore.unity.com/templates Bolt (可視化編程工具) : https://assetstore.unity.com/packages/tools/visual-scripting/bolt-163802
  • 博主營地 | Unity3D 實用技巧 - 理論知識庫(一)
    請簡述如何在不同解析度下保持UI的一致性。  NGUI很好的解決了這一點,屏幕解析度的自適應性,原理就是計算出屏幕的寬高比跟原來的預設的屏幕解析度求出一個對比值,然後修改攝像機的Size。  原生GUI:http://unity3d.9ria.com/?
  • 如何評價《太吾繪卷》的程序代碼?unity業餘愛好者說一下
    unity業餘愛好者說一下,這幾天傳的關於《太吾繪卷》代碼的事幾乎都是無中生有的事...一群用.net和vs做工程的人談論第三方引擎做的遊戲...真是雞同鴨講。太吾繪卷現在針對幾個常見誤會說一下1.只有一個main (x)unity的腳本都是依附於各個精靈的,沒有main,只有update2.沒有注釋(x)你反編譯出來的代碼有注釋
  • Unity 最新版本迎來260項功能改進,高清渲染管線HDRP升級
    生成的視覺效果依賴GPU粒子,可完全利用GPU性能來模擬、展示大量的粒子效果。節點編輯的模式還允許特效的深度自定義,能將需要的屬性暴露給遊戲系統,用於互動。請在本博文中進一步了解Visual Effect Graph。Shader Graph是我們另一個節點式著色器製作工具。在HDRP中,Shader Graph會有額外的功能可供使用(名稱一般以HD開頭)。
  • 學Unity的貓之Unity預設(八)
    pre詞根,是提前、預先的意思,fab,動詞,是製造、製作的意思,所以從字面看,prefab就是預先製作的意思,也有人叫它預製體。」預設文件,實質上是一個描述文件,它記錄了它所引用的資源、組件和數據。tag:unity3d.com,2011:--- !u!