This document is about: FUSION 2
SWITCH TO

Avatar


Available in the Industries Circle
Circle
Fusion Industries prototyping Addons

虛擬人偶附加元件提供一個常見的基礎來支援虛擬人偶特定功能性,及提供一個簡單的虛擬人偶系統,其展示了建立一個允許使用者來自訂他們自己的虛擬人偶的虛擬人偶系統。

虛擬人偶

AvatarRepresentation類別提供以下能力:

  • 訂閱到虛擬人偶的名稱或URL的UserInfo改變
  • 針對給定的URL來選擇適當的虛擬人偶系統
  • 支援LOD(請參見下述的「LOD Support」細節)
  • 透過IAvatar介面來定義虛擬人偶的一般的說明(顏色、頭髮...)
  • 在執行IAvatarRepresentationListenerNetworkRig遊戲物件的下層上廣播虛擬人偶載入已完成事件(也在HardwareRig的下層上,如果一個RigInfo系統正在追蹤硬體裝置參照的話)。

LOD支援

一個LOD群可新增為AvatarRepresentation的一個同層級,並且在這個案例中,AvatarRepresentation提供這些能力:

  • 新增及移除虛擬人偶系統的被動態地建立的轉譯器到LOD群
  • 在載入一個虛擬人偶時,或是在一個URL是錯誤時,展示一個更高層級的LOD(基於loadingMode,預設只針對遠端使用者)
  • IgnoreDistance方法控制LOD群的啟用與否

虛擬人偶代表接聽器

這個附加元件提供一些元件來執行IAvatarRepresentationListener以及回應到虛擬人偶載入。

本機虛擬人偶揀選

本機虛擬人偶揀選系統的目的是針對本機使用者來隱藏一個虛擬人偶。為了這樣做,儲存在硬體裝置中的相機改變了它的揀選遮罩,以隱藏一個圖層,這將在虛擬人偶遊戲物件與本機使用者關聯時應用到虛擬人偶遊戲物件。

透過在HardwareRig遊戲物件上新增一個LocalAvatarCulling指令碼,來完成本機虛擬人偶揀選。
請注意,針對它需要一個RigInfo系統,以正常運作,而除了在HardwareRig上的LocalAvatarCulling以外:

  • 在網路運行器遊戲物件上的一個RigInfo
  • NetworkRig遊戲物件上的一個RigInfoRegister以及在HardwareRig遊戲物件上的一個RigInfoRegister

手代表管理器

NetworkHandRepresentationManagerHardwareHandRepresentationManager是可選的元件,其允許管理線上及離線手代表。

這個目的主要在於能夠基於接收到的虛擬人偶皮膚顏色來著色手。

它們也提供各種選項來確定離線及線上手的外觀邏輯,這是基於連線狀態,在已載入虛擬人偶系統中的手的可用性,以及其他。

硬體手也有一個裝飾系統,以基於線上資料來移動離線手的一個部分(一般是一個手錶)。
針對特殊案例,這是有用的,比如表面阻擋網路手:它確保硬體手裝飾(如果有的話),跟隨網路手內插補點目標(在手動地改變網路手內插補點目標時是有用的——手被阻擋...)

低多邊形簡單虛擬人偶

LowPolySimpleAvatar負責根據玩家選擇的虛擬人偶來設置一個低多邊形虛擬人偶(針對LOD群)(它可以是一個簡單虛擬人偶或一個Ready Player Me模型)。

為了這樣做,它使用AvatarRepresentationOnRepresentationAvailable回調。
然後,根據已選擇虛擬人偶,來設置針對低多邊形虛擬人偶的身體、頭髮及衣服顏色的材質。
同時,如果虛擬人偶模型是一個簡單虛擬人偶,那麼以相應於簡單虛擬人偶模型的頭髮LOD網格來設置頭髮網格。

簡單虛擬人偶

Fusion Industries Addon Simple avatar

這個附加元件包含一個簡單虛擬人偶系統,其展示建立一個允許使用者選擇各種參數來做他們的虛擬人偶的虛擬人偶系統的方法:膚色、衣服網格、頭髮材質等等。

SimpleAvatar含有方法以:

  • 利用一個新的「簡單虛擬人偶」URL來更改虛擬人偶
  • 生成一個隨機的「簡單虛擬人偶」模型
  • 設置一個特定的虛擬人偶參數(頭髮、衣服、皮膚)
  • 虛擬人偶的眼睛及嘴巴的動畫

同時,它利用RepresentationAvailable方法,在載入一個新的簡單虛擬人偶時告知AvatarRepresentation

可在Assets\Photon\FusionAddons\Avatar\Demo\Scenes\資料夾中找到示範場景。
所以為了測試簡單虛擬人偶,開啟AvatarLODSimpleAvatar場景。
當生成使用者時,選擇SimpleAvatarNetworkRig(Clone)遊戲物件,並且更改UserInfo AvatarURL參數。
舉例而言,您可以使用以下URL:simpleavatar://?hairMesh=1&skinMat=2&clothMat=0&hairMat=0&clothMesh=1

眼睛移動模擬

為了避免虛擬人偶顯示靜態眼睛凝視,可以使用眼睛移動模擬系統。這個系統可以移動物件(虛擬人偶眼睛)以追蹤其他上面有一個GazeTarget的物件。

為了這樣做:

  • 場景必須含有一個GazeInfo元件(其以常規間隔運行背景執行緒,其確定要瞄準的新目標)
  • 虛擬人偶物件必須持有一個Gazer元件,並且提供眼睛遊戲物件到gazingTransforms(也可以透過gazingTransformOffsets來提供一些旋轉偏移)
  • 選擇性地,為了增進效能,可以提供一個RendererVisible到在eyeRendererVisibility欄位中的Gazer元件:如果RendererVisble偵測到虛擬人偶轉譯器是不可見的,那麼針對這個虛擬人偶不會運行眼睛模擬

Oculus唇形同步

有些虛擬人偶系統將需要進階的唇形同步。為了這樣做,虛擬人偶附加元件包含一個Oculus Lipsync程式庫的版本,其在Oculus Audio SDK授權下發布(https://developer.oculus.com/licenses/audio-3.3/) / Meta平台科技SDK授權協議(https://developer.oculus.com/licenses/oculussdk/),並且在[Oculus整合]Oculus Integration中可用。

相依性

  • 文字網格Pro(只用於顯示使用者名稱盤)
  • Photon Voice SDK

下載

這個附加元件的最新版本被包含在附加元件專案之中

已支援拓撲

  • 共享模式

更改記錄

  • 版本2.0.2:支援載入隨機虛擬人偶
  • 版本2.0.1:移除手網格動畫(被移動到硬體手)
  • 版本2.0.0:支援Fusion 2.0
  • 版本1.0.2:針對使用者名稱及虛擬人偶URL來使用網路字串
  • 版本1.0.1:針對看著相機來修正命名空間
  • 版本1.0.0:第一個版本
Back to top