This document is about: FUSION 2
SWITCH TO

Ready Player Me Avatar Integration


Available in the Industries Circle
Circle
Fusion Industries プロトタイピングアドオン

基本原理

このアドオンは、Ready Player Me半身アバターのインテグレーションを提供します。

全身アバターの対応はまだ追加されていませんが、必要に応じて簡単に対応させることができるようなコードにはなっています。

Fusion Industries Addon ReadyPlayerMe avatar

機能

Avatarアドオンとの互換性

このアドオンは、Avatarアドオンと互換性があります。

AvatarRepresentationコンポーネントがRPMAvatarLoaderの親ヒエラルキーに存在するなら、以下のような点から互換性が保たれます。

  • アバターがロードされたことを通知する
  • 読み込まれたReadyPlayerMeアバターをLODGroupに追加する

RPMAvatarLoaderは単独で使用することも可能で、UIやアバター選択画面などで便利です。

Avatarの編集

このアドオンは、読み込まれたReadyPlayerMeアバターにいくつかの修正を適用できます。適用できる修正はすべてオプションで、RPMAvatarLoaderクラスのavatarOptionalFeaturesマスクから選択できます。

  • HideRPMHands:選択されると、ReadyPlayerMeの手が非表示になります。VRSharedサンプルで使用される手など、他の手の表現が提供されているかどうか関連します。
  • OptimizeAvatarRenderers:ReadyPlayerMeアバターが、URP環境で綺麗に表示され、パフォーマンスコスト(影なしなど)が下がります。
  • DetectColorForAvatarDescriptionRPMAvatarInfo.AvatarDescriptionに色を含むことを保証するため、アバターのテクスチャを分析します。肌に合わせて手の色を変えたり、アバターの単純化されたLOD表現のカスタマイズで髪や服の色を使用したりする場合に便利です。
  • EyeMovementSimulation:ReadyPlayerMeアバターの目を、目のシミュレーションシステムに接続します。目は、アバター近くのGazeTargetコンポーネントを持つオブジェクトを追跡します。
  • LipSynchronisation:顔メッシュのブレンドシェイプを、Oculusリップシンクに接続します。MacOSとWebGLは利用不可能で、シンプルな声量検知システムに置換されることに注意してください。
  • LipSyncWeightPonderation:ReadyPlayerMeアバターメッシュでは、Oculusリップシンクのブレンドシェイプの比率が非常に高い値になります。そのため、OVRLipSyncContextMorphTargetコード(こちらを参照)を変更するか、このオプションを使用してLateUpdateで値を修正する必要があります。
  • EyeBlinking:ReadyPlayerMeアバターで提供されている目のまばたきスクリプトを適用して、自然にまばたきさせます。
  • OnLoadedSoundEffect:アバターのダウンロードが完了した時に、SoundManagerを使用して音を再生します。
  • DownloadThrottlingPerformanceManagerを使用して、複数のReadyPlayerMeアバターを同時にダウンロードする(帯域が飽和して、正しいネットワーク通信を阻害する)ことを防ぎます。

デフォルトでは、すべてのオプションが選択(AllOptions値)されていますが、例えば、アバターをシンプルな選択画面UIで表示する場合は、HideRPMHandsOptimizeAvatarRenderersオプションのみを選択するのが適切です。

キャッシュシステム

シーン内で同じアバターが何度も使用されていたら、アドオンのキャッシュシステムによって、同じアバターの再ダウンロードは行われません。

同じアバターが2回目にダウンロードされた時に、1回目のアバターが利用可能なら、そのコピーがインスタンス化されます。

1回目のアバターがダウンロード中なら、2回目のアバターは少し待機(最大でmaxSameDownloadWaitTime、デフォルトでは10秒)します。

ReadyPlayerMeは、同じURLが2度使用された時に、アバターのゲームオブジェクトを削除することがあることに注意してください。このアドオンのキャッシュシステムはこれを防ぎますが、もし同時に2つのダウンロードが発生し、1つ目のダウンロード完了までにmaxSameDownloadWaitTime以上の時間がかかり、2つ目のダウンロードを開始した場合、1つ目のアバターが削除されます。このシナリオは、非常に特殊なケース(混雑したシーンで、多くの重複がある)でしか発生しませんが、問題を確実に回避したいなら、常にアバターのコピーを作成し、このコピー作成コストを犠牲にすることで、ReadyPlayerMeからの削除を防ぐことができます。
これを行うには、単純にRPMAvatarLoaderコンポーネントのcopyRPMLoaderAvatarを有効(デフォルトでは無効)にしてください。

RPMAvatarLibrary

シーンにダウンロード済みアバタープレハブのライブラリを追加することが可能です。このライブラリコンポーネントRPMAvatarLibraryは、アバターのマッピングを含み、RPMAvatarLoaderで読み込まれたプレハブに疑似URLを使用します。

最新のReadyPlayerMeアバターの肌色に便利なメタデータフィールドを手動で設定することもできますが、ライブラリは自動的にメタデータを検出しようとするため、メタデータの記述は必須ではありません。

RPMAvatarLibraryは単純に、参照されたプレハブがあたかもダウンロードされたかのようにして、アバターのキャッシュを設定します。

インストール

このアドオンを動作させるには、ReadyPlayerMe UPM packageが必要です。
ReadyPlayerMe documentationに従って、以下のGitパッケージをインストールしてください。
https://github.com/readyplayerme/rpm-unity-sdk-core.git

アドオンは、Ready Player Me core package (com.readyplayerme.core) version 3.3でテストされています。

依存関係

  • Avatar addon
  • Feedbabck addon
  • Ready Player Me 3.3
  • Oculus.Lipsync (version included in the Avatar add-on)

デモ

デモシーンはAssets\Photon\FusionAddons\RPMAvatar\Demo\Scenes\フォルダーにあります。

RPMAvatarLoadingシーンは、複数のReadyPlayerMeアバターをロードします。

  • ReadyPlayerMeオンラインエディターで提供されたURLで指定されたアバター、UserInfoコンポーネントでアバターのURLの読み込みと同期を行うユーザー
  • キャッシュシステムを説明するための同じアバター
  • オフラインアバター、Fusionのネットワークオブジェクトに関連しないもの(UIなどで使用されるもの)
  • カスタムアバターURLとRPMAvatarLibraryによって読み込まれるアバターのプレハブ

RPMAvatarシーンはRPMNetworkRigプレハブを使用して、多くの必要な機能を組み込んでいます。

  • シンプルなアバターのURLとRPMのURLに互換性があります
  • ローポリのフォールバックを提供し、アバターの肌・服・髪の色に基づいた色が付きます
  • 手のモデルを含み、アバターの肌の色になります
  • LODでビルボードを提供します
  • EyeMovementSimulation機能を説明します。アバターの目は、GazeTargetコンポーネントを持つTargetゲームオブジェクトを追跡します。アバターの頭と目にはGazeTargetがあるため、プレイヤーは互いに見つめ合うことができます。

ダウンロード

このアドオンの最新バージョンは、Industries アドオンのプロジェクトに含まれています。

対応するトポロジー

  • 共有モード

更新履歴

  • Version 2.0.2: Display simple lipsync option only on required platforms + add random avatar feature
  • Version 2.0.1: Support loading random avatar + fix default avatar height
  • Version 2.0.0: Fusion 2.0 support
  • Version 1.0.1: Fix avatar V3 hair and clothes color detection
  • Version 1.0.0: First release
Back to top