This document is about: FUSION 1
SWITCH TO

このページは編集中です。更新が保留になっている可能性があります。

Ready Player Me アバター統合


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

原理

このアドオンは、Ready Player Meの半身アバターの統合を可能にします。

全身アバターの適用はまだ追加されていませんが、必要であればコードを簡単に適応させて対応することができます。

Fusion Industries Addon ReadyPlayerMe avatar

機能

アバターアドオンの互換性

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

RPMAvatarLoaderの親階層にAvatarRepresentationコンポーネントが存在する限り、この互換性により、以下を実現できます。

  • アバターが読み込まれたことをリスナーに通知する
  • 読み込まれたReadyPlayerMeアバターをLODグループに追加する

RPMAvatarLoaderは単独で使用することもでき、UIやアバターの選択などに便利です。

アバター編集

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

  • HideRPMHands: 選択されている場合、ReadyPlayerMeの手が非表示になります。これは、VRSharedベースのサンプルのように、別の手の表現ソリューションが提供されている場合に関連します。
  • OptimizeAvatarRenderers: ReadyPlayerMeアバターがURPコンテキストで美しく表示され、パフォーマンスコストを抑える(シャドウなしなど)ことを保証します。
  • DetectColorForAvatarDescription: アバターのテクスチャを分析して、RPMAvatarInfo.AvatarDescriptionに色が含まれることを確認します。手の色を肌に合わせて変更したり、髪や衣服の色を使用してアバターの簡素化されたLOD表現をカスタマイズするのに便利です。
  • EyeMovementSimulation: ReadyPlayerMeアバターの目を目のシミュレーションシステムに接続し、アバターの近くにあるGazeTargetコンポーネントを持つオブジェクトを追従させることができます。
  • LipSynchronisation: 顔のメッシュブレンドシェイプをOculusのリップシンクに接続します。ただし、MacOSおよびWebGLではこれができず、シンプルな音声レベル検出システムに置き換えられます。
  • LipSyncWeightPonderation: OculusリップシンクのブレンドシェイプのウェイトがReadyPlayerMeアバターメッシュに対して高すぎる値を生成するため、適応が必要です。これはOVRLipSyncContextMorphTargetのコードを変更するか(こちら参照)、またはこのオプションを使用してLateUpdateで値を固定することができます。
  • EyeBlinking: アバターにReady Player Meが提供するまばたきスクリプトを適用し、自然にまばたきができるようにします。
  • OnLoadedSoundEffect: アバターのダウンロード完了時に音を再生するためにSoundManagerを使用します。
  • DownloadThrottling: PerformanceManagerを使用して、同時に複数のReadyPlayerMeアバターのダウンロードを防ぎます(これにより帯域幅が飽和し、適切なネットワーク通信が妨げられる可能性があります)。

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

キャッシュシステム

同じアバターがシーン内で複数回使用される場合、このアドオンは同じアバターの再ダウンロードを防ぐキャッシュシステムを提供します。

同じアバターが再度ダウンロードされる場合、すでに利用可能な場合は最初のもののコピーがインスタンス化されます。

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

ReadyPlayerMeは、同じURLが2回目に使用された場合、一部のアバターゲームオブジェクトを削除することがあることに注意してください。このアドオンのキャッシュシステムはこれを防ぎますが、2回のダウンロードが同時に発生し、最初のダウンロードがmaxSameDownloadWaitTimeを超えて完了するのに時間がかかると、2回目のダウンロードがトリガーされ、完了時に最初のアバターが消去されます。このシナリオは、特別なケース(混雑したシーンで多数の重複が存在する)以外では発生しないはずですが、それが問題とならないように、アバターのコピーを常に作成することで、ReadyPlayerMeがそれを削除するのを防ぐことができます。ただし、これによりコピーを作成するための時間が必要になります。
そのためには、RPMAvatarLoaderコンポーネントのcopyRPMLoaderAvatarをチェックするだけです(デフォルトではチェックされていません)。

RPMAvatarLibrary

シーンに、プロジェクト内でプレハブとして利用可能な事前ダウンロードされたアバターのライブラリを追加することができます。このライブラリコンポーネントであるRPMAvatarLibraryは、このプレハブと、RPMAvatarLoaderによって読み込まれる際にこのプレハブを使用するフェイクURLとのマッピングを含んでいます。

最新のReadyPlayerMeアバターの肌色に主に役立つメタデータフィールドを入力することができますが、メタデータが未入力の場合、ライブラリは自動的にメタデータを検出しようとしますので、メタデータの入力は必須ではありません。

このRPMAvatarLibraryは、参照されたプレハブを使ってアバターキャッシュを単に事前に埋め込むもので、まるでそれらが実際に一度ダウンロードされたかのように動作します。

インストール

このアドオンは、機能するためにReady Player Me UPLMパッケージを必要とします。それを行うために、ReadyPlayerMeのドキュメントに記載されているように、以下のgitパッケージをインストールしてください:
https://github.com/readyplayerme/rpm-unity-sdk-core.git

これは、Ready Player Meコアパッケージのバージョン3.3(com.readyplayerme.core)でテストされています。

依存関係

  • Avatarアドオンバージョン 1.0.0
  • Ready Player Me 3.3
  • Oculus.Lipsync (Avatar アドオンに含まれるバージョン)

デモ

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

RPMAvatarLoadingシーンでは、以下のようにいくつかのReadyPlayerMeアバターがロードされます。

  • ReadyPlayerMeオンラインエディタで提供されたURLで指定されたアバター。UserInfoコンポーネントを使用してそのアバターのURLをネットワーク上でロードし、同期します。
  • キャッシュシステムをデモンストレーションするための同じアバター。
  • Fusionのネットワークオブジェクトに関連付けられていないオフラインアバター(UIなどで使用される可能性があります)。
  • カスタムアバターURLとRPMAvatarLibraryを使用してロードされたアバタープレハブ。

RPMAvatarシーンでは、RPMNetworkRigプレハブが使用されており、必要な機能のほとんどを組み込んでいます。以下を参照してください。

  • シンプルなアバターURLとRPM URLの両方と互換性があります。
  • シンプルなアバターまたはRPMアバターの肌、衣服、髪の色によって彩色されるローポリのフォールバックを提供します。
  • アバターの肌の色を受け取る手のモデルが含まれています。
  • 最後のLODとしてビルボードを提供します。
  • EyeMovementSimulation機能をデモンストレーションします。アバターの目は、GazeTargetコンポーネントを使ってTargetゲームオブジェクトを追従します。アバターの頭と目にGazeTargetが含まれているため、プレイヤー同士が互いを見つめ合います。

ダウンロード

このアドオン最新バージョンはaddon projectに含まれています。

サポートされているトポロジ

  • shared mode

Changelog

  • Version 1.0.1: Fix avatar V3 hair and clothes color detection
  • Version 1.0.0: First release
Back to top