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