This document is about: FUSION 2
SWITCH TO

Ready Player Me Avatar Integration


Available in the Industries Circle
Circle
Fusion Industries prototyping Addons

原則

這個附加元件允許整合Ready Player Me半身虛擬人偶。

還沒有新增完整身體虛擬人偶適配,但是如有需要,可以輕易地適配程式碼以支援它們。

Fusion Industries Addon ReadyPlayerMe avatar

功能

虛擬人偶附加元件相容性

這個附加元件與虛擬人偶附加元件相容。

只要AvatarRepresentation元件存在於RPMAvatarLoader的上層階層之中,這個相容性尤其允許:

  • 接聽器在載入虛擬人偶時收到警示
  • 新增已載入ReadyPlayerMe虛擬人偶到一個LOD群。

RPMAvatarLoader可以被單獨使用,這對於UI、虛擬人偶選擇等等相當有用。

虛擬人偶編輯

在此之外,這個附加元件應用一些修正到已載入的ReadyPlayerMe虛擬人偶。所有這些修正都是選擇性的,並且可以透過在RPMAvatarLoader類別上的avatarOptionalFeatures遮罩來選擇應該應用的修正:

  • HideRPMHands:如果選擇這個,將隱藏ReadyPlayerMe手。有關的情況是提供了另一個手代表解決方案,比如在VR共享-為基礎的範例中使用的手,
  • OptimizeAvatarRenderers:確保ReadyPlayerMe虛擬人偶在一個URP脈絡中良好地顯示,並且在效能側的耗用較少(沒有陰影等等),
  • DetectColorForAvatarDescription:分析虛擬人偶材質以確保RPMAvatarInfo.AvatarDescription包含顏色。可用於更改手顏色以匹配皮膚,或是使用頭髮及衣服顏色來自訂一個虛擬人偶的簡化的LOD代表,
  • EyeMovementSimulation:連線ReadyPlayerMe虛擬人偶眼睛到眼睛模擬系統,這樣它們跟隨靠近虛擬人偶的附有一個GazeTarget元件的物件,
  • LipSynchronisation:連線臉網格混合形狀到Oculus唇形同步。請注意,在MacOS及webGL上,這是不可行的,並且將被一個簡單聲音層級偵測系統所取代,
  • LipSyncWeightPonderation:對於ReadyPlayerMe虛擬人偶網格而言,Oculus唇形同步混合形狀權重產生太高的值。所以它必須被適配,可以透過更改OVRLipSyncContextMorphTarget程式碼(請參見這裡),或透過使用這個選項,其修正LateUpdate中的值,
  • EyeBlinking:在虛擬人偶上應用一個Ready Player Me提供的眨眼指令碼,這樣它們會自然地眨眼,
  • OnLoadedSoundEffect:使用聲音管理器來在虛擬人偶下載完成時播放一個聲音,
  • DownloadThrottling:使用PerformanceManager來預防多個ReadyPlayerMe虛擬人偶下載在同一時間發生(它可能佔滿頻寬、阻擋適當的網路交流),

預設下,選擇所有選項(AllOptions值),但是舉例而言為了在一個簡單選擇UI中展示虛擬人偶,,有關的是只選擇HideRPMHandsOptimizeAvatarRenderers選項。

快取系統

如果相同的虛擬人偶在一個場景中被使用多次,這個附加元件提供一個快取系統,其防止重新下載相同的虛擬人偶。

如果相同的虛擬人偶被下載第二次,如果第一個的一個複本已經可用,第一個的一個複本將被具現化。

第一個的複本如果仍在下載,第二個的複本將等待一下(最多為maxSameDownloadWaitTime,預設是10秒)。

請注意,ReadyPlayerMe可以刪除一些虛擬人偶遊戲物件,如果相同的URL被使用第二次的話:附加元件的快取系統防止這個,但是如果2個下載在同一時間發生,並且第一個下載完成耗時比maxSameDownloadWaitTime更長,將觸發第二個下載,其在流程中在完成時清除第一個虛擬人偶。這個情境不應該發生在非常特殊的情況下(擁擠的場景,有很多重複的場景),但是為了確保這不是一個問題,可以始終建立一個虛擬人偶的複本,以防止ReadyPlayerMe來銷毀它,但是代價是花時間建立這個複本。
為了這樣做,只需在RPMAvatarLoader元件上勾選copyRPMLoaderAvatar(預設未勾選)。

RPM虛擬人偶庫

可以在場景中新增一個預先下載的虛擬人偶的庫,這個庫在專案中可用作預製件:這個庫元件,RPM虛擬人偶庫,在這個預製件及一個假的URL之間含有一個映射,這個URL將在RPMAvatarLoader載入這個URL時使用這個預製件

請注意,雖然您可以填入它的中繼資料欄位,這對於最新的ReadyPlayerMe虛擬人偶中的皮膚色調來說非常有用,但如果沒有填入,庫將嘗試自動偵測中繼資料,因此不是強制要填入中繼資料輸入項目。

這個RPMAvatarLibrary簡單地以已參照預製件來預先填入虛擬人偶快取,如同它們已經被實際地下載過一次一樣。

安裝

這個附加元件需要Ready Player Me UPLM套件以運作。
為了這樣做,如同在ReadyPlayerMe文檔中所說明的,安裝以下Git套件:
https://github.com/readyplayerme/rpm-unity-sdk-core.git

它已經以Ready Player Me核心套件(com.readyplayerme.core)版本3.3來測試。

相依性

  • 虛擬人偶附加元件
  • 回饋附加元件
  • Ready Player Me 3.3
  • Oculus.Lipsync(版本包含在虛擬人偶附加元件之中)

示範

可以在Assets\Photon\FusionAddons\RPMAvatar\Demo\Scenes\資料夾中找到示範場景。

RPMAvatarLoading場景載入多個ReadyPlayerMe虛擬人偶:

  • 由ReadyPlayerMe線上編輯器及使用者提供的一個URL所指定的虛擬人偶,以及一個使用者資訊元件來在網路上載入及同步它的虛擬人偶URL,
  • 相同的虛擬人偶來展示快取系統,
  • 一個離線虛擬人偶,無關於任何Fusion的已連網物件(可能用於UI中,...)。
  • 以及利用一個自訂虛擬人偶URL及RPMAvatarLibrary來載入一個虛擬人偶預製件。

RPMAvatar場景使用RPMNetworkRig預製件,其附有最需要的功能:

  • 它與簡單虛擬人偶URL及RPM URL相容
  • 它提供一個低多邊形退路,其由簡單虛擬人偶或RPM虛擬人偶皮膚、衣服及頭髮顏色來著色
  • 它包含手模型,其將採用虛擬人偶皮膚顏色
  • 它提供一個LOD的上個關卡的廣告牌
  • 它展示了EyeMovementSimulation功能。虛擬人偶的眼睛利用GazeTarget元件來跟隨Target遊戲物件。虛擬人偶頭及眼睛含有一個GazeTarget,玩家將看向彼此。

下載

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

已支援拓撲

  • 共享模式

更改記錄

  • 版本2.0.1:支援載入隨機虛擬人偶+修正預設虛擬人偶高度
  • 版本2.0.0:支援Fusion 2.0
  • 版本1.0.1:修正虛擬人偶V3頭髮及衣服顏色偵測
  • 版本1.0.0:第一個版本
Back to top