多人連線混合實境系統開發專案需求:擁有多人連線、語音交談、虛擬人物,並可連結 WAN 或 LAN 網路上的伺服器,進行資料傳輸的功能。 這次使用的 Multiplayer Meta Avatars VR Template 是一套支援 Unity 遊戲引擎的資源,可協助您開發多人連線 VR 專案,此套件相容於最新的 Meta SDK Packages (All-in-one SDK, Meta Avatar SDK) ,使用 Photon Fusion 連線與 Photon Voice 2 語音對話,開發的應用程式適用於 Meta Quest 2, Pro, 3 虛擬實境設備。其特點包括: - 執行 Meta Avatars 網路功能 - 提供玩家 2D / 3D 按鈕操作 - 自動切換控制器與手部追蹤 - 提供 Avatar selector 選擇角色 - Physics 與 Kinematic 物件互動
建立新的 Unity URP 專案,注意本教學需要使用 Unity 2021.3.26 以上版本。 切換 Android 平台,將 Multiplayer Meta Avatars VR Template 下載並匯入:
匯入 Photon Fusion 與 Photon Voice 2 資源包。
詢問需不需要傳送資訊給 Oculus 更新 OVR 套件,選擇 Restart 更新並重新啟動 更新套件時,因為有重複的資源,詢問是否瀏覽並刪除資源,選擇 Show Assets (Recommended) 按下 Clean Up (Recommended) 清除重複資源 按下 Clean Up Package 確認刪除 升級 OVR 音訊套件 OVR 套件升級完成後,重新啟動 Unity 編輯器
前往 Photon Engine 官方網站,申請帳號並登入網站。 前往 Photon Cloud Apps 畫面,下載 Fusion SDK 開發套件。 https://doc.photonengine.com/en-us/fusion/current/getting-started/sdk-download
設定 Select Photon SDK = Fusion ,點擊網頁 CREATE A NEW APP 按鈕,新增應用程式 再新增一個應用程式,設定 Select Photon SDK = Voice
複製 Fusion APP 的應用程式 ID
匯入資源包後,若沒有出現 Photon Fusion Hub 可執行 [ Fusion > Fusion Hub ] 開啟視窗。
開啟 Photon Fusion Hub 視窗後,注意 Fusion App id 的欄位有紅色驚嘆號!
將之前複製的 Fusion App id 貼在空白欄位上並按下 Enter ,紅色驚嘆號會變成綠色勾勾,代表此 ID 可正常使用。
接著按下 Photon App Settings 按鈕
在 Inspector 將會出現 Photon App Settings 視窗
接著回到網頁中,複製 Voice 的應用程式 ID
在 App id Voice 欄位中貼上
為了避免使用者登入時會登入到不同的伺服器,需要修改 Fixed Region 欄位
伺服器列表 [查詢]
如果匯入 Fusion 後有錯誤訊息,那可能需要匯入 Mono cecil 套件
開啟 Package Manager 資源管理器,按下最左上角的 「+」 號,選擇 Add package from git URL
輸入下列文字,安裝資源包
安裝 Meta Avatars SDK,進入下列網址進行下載 https://developer.oculus.com/downloads/package/meta-avatars-sdk/
下載後檔案是壓縮檔,解壓縮後匯入 Unity Pacekage 資源包 最後匯入 Meta Avatars Fusion VR Multiplayer Template 套件
開啟 Project Settings ,進入 XR Plugin Management 畫面,點擊 Install XR Plugin Managemant 安裝 XR 管理器
因為是目前是 Android 專案,先到 Android 畫面,勾選 Oculus 核取方塊
接著再到 Windows 畫面,勾選 Oculus 核取方塊 ( 在 Unity 編輯器測試需要編輯 Windows 的項目 )
切換到 Player 頁面,在 Rendering 設置中,將 Auto Graphics API 取消勾選
刪除 Vulkan 只保留 OpenGLES3
往下捲動,將 Minimum API Level 更改成 32 ( 如果要在 Meta 申請應用程式,需要升級到32 ) 將 Scripting Backend 更改為 IL2CPP Api Compatibility Level 更改為 .NET Framework 將 ARMv7 取消選取,勾選 ARM64 項目
如果要上傳到 Meta 開發者應用程式,需要修改 Publishing Settings 發佈設定。 如果要讓多個使用者使用此 App 就需要進行這項操作 展開 Publishing Settings 項目
點擊 Keystore Manager… 按鈕
開啟 Keystore Manager 視窗
點擊 Keystore… > Create New > Anywhere 申請新的金鑰
儲存金鑰檔案
輸入金鑰檔的密碼,別稱與密碼,需要有兩組密碼 密碼相當重要,每次開啟專案,要發布時都需要重新輸入,需要妥善保存 輸入完成後,按下 Add Key 加入到專案中
確認輸入的別稱和密碼 確認後,會在 Publishing Setting 看到先前設置的金鑰、別稱與密碼 切換到 Oculus 頁面,會發現有數個警告項目,按下 Apply All 讓系統自動修改
再切換到 Windows 分頁,按下 Fix All 按鈕,將對警告的項目進行修改
執行 [ Oculus > Platfrorm > Edit Settings ]
會在 Inspector 中開啟 Oculus Platform Settings 頁面
需要一個 Application ID ,點擊 Create / Find your app on https://developer.oculus.com/manage/ 開啟 meta 開發者頁面 登入 Meta 帳號後,點擊 Create New App 按鈕,創建一個新的 App,平台選擇 Meta Quest ( App Lab ),並按下建立按鈕
創建完的 App 畫面 在網頁左邊選擇 「 資料使用情況檢查 」 按鈕,開啟 資料使用其況檢查 頁面 需要有 User ID、User Profile 與 Avatars 權限,點及新增後需要告訴 Meta 為什麼需要這些權限,輸入完後點擊「新增到要求」按鈕 選擇 Use Avatars 與 View Oculus username 項目
輸入完成後,按下 Submit Requests (3) 按鈕傳送需求。
確認無誤後再點擊 Submit for Review 按鈕
提交完成後,再到 [ 散佈 > App Submissions 頁面 ] ,需要提交 App 資訊,才可以在 App 中取得各項權限 ( 例如使用 Meta Avatars 模型 ) 首先修改 「提交」頁面,輸入 App 名稱、發布型式與 Email 資訊,修改完成後按下 Save Changes 儲存修改 接下來到 Pricing 修改售價 ( 目前只有 Free 可以選 ) 最後到 App Metadata 畫面,輸入發布資訊,輸入到詳細資料即可
在網址列中找到 APP 的ID ( 在 /applications/ 後面的數字 ) 並複製 回到 Unity 編輯器,將 ID 貼到 Application ID 下的 Quest Rift 與 Meta Quest/2/Pro 的欄位
若希望在 Unity 編輯器進行測試,請勾選 Use Standalone Platform 核取方塊,並輸入開發者帳號密碼進行登入。
開啟 [ MetaAvatarsTemplateFusion > Scenes ] 資料夾的 MetaAvatarsFusion 場景
在場景中隨意選擇一個物件,點擊 Layer 欄位後選擇 Add Layer 開啟 Tags & Layers 頁面
按下右上角的設置按鈕
選擇 TagManager 出現套件中已經設定好的 Layers
開啟 Project Settings 視窗,選擇 Physics 分頁,將 Body 與 Interactable 的物理設置關閉
選擇場景中的 OVRNetworkCameraRig 物件,找到 OVR Manager 元件,在 Quest Features 欄位中將 Hand Tracking Support 欄位,更改為 Controllers And Hands
在 Project Settings 中,切換到 Graphics 分頁,將 Scriptable Rander Pipeline Settings 欄位換成 UniversalRenderPipelineAsset
切換到 Quality 頁面,將 Levels 切換成 Balanced 品質 (Android預設品質),在 Rendering 項目中的 Render Pipeline Asset 修改為 UniversalRenderPipelineAsset
按下 Play 測試,先會提示 Photon 沒有設定,但因為目前是使用 Fusion ,所以直接按 OK 即可。
目前在頭戴式顯示器上的影像會出現重疊的問題。
在 Project Settings 中切換到 XR Plug-in Management 下的 Oculus 頁面,在 Windows 設置中將 Stereo Rendering Mode 修改成 Multi Pass
按下 Play 測試,確認畫面不再出現重疊的問題。
此時若沒有出現虛擬人物,請確認開發者帳號中是否已設定虛擬替身。
若在 Unity 編輯器可正常運作,即可發佈成 APK 檔。
如果有重新開啟 Unity 編輯器,將需要重新輸入金鑰密碼。
目前發布後只有目前的開發者可以看到虛體替身,如果要有多個使用者操作的話,需要加入 Meta 的測試計畫 需要安裝 Meta Quest Developer Hub 軟體 https://developer.oculus.com/meta-quest-developer-hub/ 安裝完成後,登入開發者帳號後,就可以看到目前裝置的情況了 切換到 App Distribution 頁面,可以看到已經創建的應用程式
在 ALPHA 中按下 Upload 上傳先前發布好的 APK 安裝包 按下 Next 繼續
按下 Next 繼續
若出現錯誤訊息,表示 Android 版本太高或太低
可能需要確認在下列資料夾中,有沒有 android-32 版本,可能需要使用 Android Studio 工具進行升級
上傳成功後,會出現目前的版本資訊
如果需要增加人員,需要先到開發者畫面,選擇目前的 App 後,選擇 [ 散布 > 發行管道 ] 頁面,將會看到剛剛上傳的 APK 資訊,先點擊 ALPHA
https://developer.oculus.com/manage/
畫面上將顯示目前 App 資訊,接著選擇工作人員。
按下 Email Invite Users 來邀請其他人員來餐與項目 輸入要邀請人的電子郵件
如果輸入的信箱是開發者本人,則不需要接收驗證信,就會直接被加入 Join 欄位中 如果輸入的信箱是其他開發者,則會收到一封驗證郵件,點擊「此連結」加入工作人員 dev |