Fusion 與元宇宙的應用範例 (2): 世界入口及相同元素

中控區 Hub 以及場景共同元素

Steven Hu
Photon Taiwan
6 min readAug 30, 2023

--

核心區域 Hub 的設計和功能展示了元宇宙中的核心概念, 即連接不同的虛擬空間並促進玩家之間的互動。透過”傳送點”和 SpaceLoader 組件的巧妙使用, 它提供了一個直觀且引人入勝的方式來探索虛擬世界的不同方面。

Metaverse 共同元素 Common 提供了一個框架,用於理解和實現虛擬世界中的核心功能。從空間管理到動態音頻組,再到社交距離,這些元素共同創造了一個既實用又引人入勝的虛擬環境。

我們一起來看看吧!!

Metaverse 中心中控區 Hub

中心中控區 Hub 是 Metaverse 的多人登陸空間,其主要目的是提供通往其他空間(如藝術畫廊、Picazoo、音樂)的通道。透過場景中的門戶,玩家可以自由地傳送到其他空間,並且可以在這些不同的空間中與朋友一起互動。

1. 傳送點

  • 每個 “傳送點” 都有一個 SpaceLoader 組件,用於啟動 “傳送功能”。
  • 當玩家進入傳送平台時,它會初始化“退出”的過程, 以便加載新的場景。
  • “傳送點” 可以傳送玩家到其他空間,並且其他場景也有相對應的”傳送點”可以返回原本的地方。

2. SpaceLoader 啟用流程

  • SpaceLoader 組件位於每個”傳送點”上。 在 Awake() 期間,它使用 SpaceDescription 可程式控制物件參數來更新 “傳送點” 資料。
  • 當玩家進入”傳送平台”時,它會起始一個”退出的過程”, 以便加載新場景。
  • StartExiting() 方法包括對意外場景加載的保護, 然後使用 SwitchScene() 調用實際的場景切換。

3. 玩家互動

  • 玩家可以彼此交談,只要他們彼此靠近。

4. 深入思考與問題

  1. ”傳送點” 的作用與設計: 中心樞 Hub 的”傳送點”是如何設計的,以便玩家可以自由地傳送到其他空間? 這種設計如何促進元宇宙中的互動和探索?
  2. SpaceLoader 的激活與管理: SpaceLoader 組件如何在每個門戶上工作,以實現場景之間的順暢切換? 這個過程中的技術細節是什麼?
  3. 多人互動的重要性: 中心樞 Hub 如何促進多人互動和社交連接? 這種多人登陸空間如何成為虛擬世界中的重要組件?

Metaverse 共同元素 Common

Metaverse 共同元素 Common 是一個描述在不同場景之間共享的元素, 並且我們認為值得並且可以提出來單獨解釋的部分。

以下是一些值得注意的部份:

1. 空間和配對

  • 在 Metaverse 範例中,用戶可以去的地方被稱為 “Spaces”。
  • 用戶可以加入公共空間或加入私人空間,即限制在同一 “Group” 中的所有用戶的空間。
  • 如果同一個空間/組配對中的房間中有太多用戶,額外的用戶仍然可以連接,但將被導引到新的房間。
  • 這個邏輯是通過 Fusion 的配對功能實現的。

2. 群組切換

  • SpaceRoom 也處理群組切換: 當用戶想要加入私人群組(或想要離開私人群組加入公共群組)時, SpaceRoom 以以下方式處理它:
  • 在 PlayerPrefs 中存儲請求的組 ID。
  • 通過 SceneSpawnManager 組件存儲用戶當前位置。
  • 淡出畫面及重新加載場景的設計。

3. 空間描述

  • SpaceDescription 是一個可程式化的物件,具有以下部份:
  • spaceId:用於唯一識別每個空間的技術數據字段。
  • sceneName:當玩家加入此空間時必須加載的 Unity 場景。
  • spaceName:空間的名稱。
  • spaceDescription:空間的描述。
  • spaceParam 和 spaceSecondaryParam:可選的技術數據,用於未來提供場景參數。

4. 加入另一個空間

  • 通過 SpaceLoader 組件處理加入另一個空間。
  • 可以提供完整的 SpaceDescription,或僅提供 spaceId 字符串以滿足更簡單的需求。

5. 動態聲音群組

  • 這個範例提供了一個簡單的動態音頻群組功能: 允許與所有遠程用戶討論,不使用帶寬或增加遠程用戶的噪音。
  • 每個用戶將在一個獨特的興趣群組中發言, 同時他們將根據與其他用戶的接近程度聆聽幾個興趣群組

6. 社交距離

  • 為了避免兩個玩家太接近,範例中有實作 “Social Distancing” 功能。
  • 網路玩家預制包含一個 ForbiddenArea(膠囊碰撞器)。 這個區域對所有其他遠程玩家是禁止的。

7. 加入不同空間的過渡

  • SpaceLoader 組件也可以提供 returnPosition,以區分直接加載中心場景和玩家在加入另一個場景後返回時的生成位置。
  • 這通過提供與 SpaceLoader 相關聯的 returnPosition 來完成,該 SpaceLoader 通向 Space B,並由 SceneSpawnManager 處理用戶生成位置。

8. 限制區域和視覺反饋

  • 為了避免兩個玩家太接近,網路玩家預制包含一個 ForbiddenArea(膠囊碰撞器)。
  • 當檢測到碰撞時,禁止移動並顯示視覺反饋以指示禁止區域。

9. 深入思考與問題

  1. 空間和配對的概念: Metaverse 中的 “Spaces” 是如何定義和管理的?這些空間如何促進用戶之間的互動和連接?
  2. 動態音頻組的重要性: 動態音頻組如何增強虛擬世界中的沉浸感和自然聆聽感?
  3. 社交距離的實現: 如何在虛擬世界中實現社交距離?這個功能如何增加現實感和舒適度?

小結

Metaverse 共同元素 Common 提供的框架,在這些共享元素的設計和實現中,不僅展示了 Metaverse 的技術複雜性,還突出了創建連接和沉浸式體驗的重要性。透過這些共同元素,開發人員和設計師可以創建更豐富、更有趣的虛擬世界,讓用戶在其中探索和互動。

總結

以上的內容提供了 Fusion Metaverse 元宇宙範例的 HUB 概述和 Common 共同元素的提要。接下來將會深入探討 Metaverse 的各個特定場景,包括Picazoo、音樂場景 Music和藝術畫廊 Art Gallery 等等,歡迎一起參考參考囉 !!

有開發上的疑問嗎? 直接到 粉絲團 發訊息 (private message) 來討論吧 !
https://www.facebook.com/photoncloudtw/

學習順利,下篇見!

--

--