This document is about: FUSION 1
SWITCH TO

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

アバター


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

アバターアドオンは、アバター特有の機能をサポートするための共通のベースを提供し、ユーザーが自分のアバターをカスタマイズできるようにするシンプルなアバターシステムの作成方法を示しています。このアドオンを使用することで、ユーザーは自分自身を表現するためのアバターを簡単に作成し、カスタマイズすることができます。

アバター

AvatarRepresentation クラスは、以下の機能を提供します。

  • アバターの名前またはURLの変更に対する UserInfo のサブスクリプション。
  • 指定されたURLに適したアバターシステムの選択
  • LOD(Level of Detail)サポート(以下の「LODサポート」詳細を参照)
  • IAvatar インターフェースを通じて、アバターの共通の説明(色、髪型など)を定義します。
  • IAvatarRepresentationListener を実装している NetworkRig ゲームオブジェクトの子オブジェクト(および、ハードウェアリグの参照を追跡するために RigInfo システムがある場合は HardwareRig の子オブジェクト)に対して、アバターのロード完了イベントをブロードキャストします。

LOD サポート

LODGroupAvatarRepresentation の兄弟として追加することで、AvatarRepresentation は以下の機能を提供します。

  • LODGroupにアバターシステムが動的に作成したレンダラーの追加および削除
  • アバターがロード中であるか、URLが誤っている場合は、より高いレベルのLODを表示する(loadingMode に基づき、デフォルトではリモートユーザーのみ)
  • IgnoreDistance メソッドを使用して、LODGroupのアクティブ化や非アクティブ化を制御する

アバター表現リスナー

このアドオンは、IAvatarRepresentationListenerを実装し、アバターのロードに反応するいくつかのコンポーネントを提供します。

ローカルアバターのカリング

ローカルアバターのカリングシステムは、ローカルユーザーのためにアバターを隠すことを目的としています。そのために、ハードウェアリグに保存されたカメラのカリングマスクが変更され、ローカルユーザーに関連付けられたアバターゲームオブジェクトに適用されるレイヤーが隠されます。

ローカルアバターのカリングは、HardwareRig ゲームオブジェクトに LocalAvatarCulling スクリプトを追加することで行われます。これが機能するためには RigInfo システムが必要であり、したがって HardwareRigLocalAvatarCulling を追加するだけでなく、以下も必要です。

  • NetworkRunner ゲームオブジェクトに RigInfo
  • NetworkRig ゲームオブジェクトに RigInfoRegister および HardwareRig ゲームオブジェクトに RigInfoRegister

ハンド表現マネージャー

NetworkHandRepresentationManagerHardwareHandRepresentationManager は、オンラインおよびオフラインでの手の表現を管理するためのオプションコンポーネントです。

これらの目的は、主に受信したアバターの肌色に基づいて手の色を変更できるようにすることです。

これらのコンポーネントは、接続状態、ロードされたアバターシステムにおける手の可用性などに基づいて、オフラインおよびオンラインの手の外観ロジックを決定するためのさまざまなオプションも提供します。

ハードウェアハンドには装飾システムもあり、オフラインハンドの一部(通常は時計など)がオンラインデータに基づいて動くように設定されています。これは、ネットワークハンドがブロックされるような特殊なケースに役立ちます。これにより、ハードウェアハンドの装飾(もしあれば)がネットワークハンドの補間ターゲットに従うことが保証されます(ネットワークハンドの補間ターゲットが手動で変更された場合—手がブロックされた場合などに有用です)。

ローポリシンプルアバター

LowPolySimpleAvatar は、プレイヤーが選択したアバターに応じて(シンプルなアバターモデルまたは Ready Player Me モデルなど)、ローポリアバター(LODグループ用)を構成する役割を担っています。

そのために、AvatarRepresentationOnRepresentationAvailable コールバックを使用します。次に、選択されたアバターに応じてローポリアバターの体、髪、服の色のマテリアルが設定されます。また、アバターモデルがシンプルなアバターである場合、髪のメッシュはシンプルなアバターモデルに対応する髪のLODメッシュで設定されます。

シンプルアバター

Fusion Industries Addon Simple avatar

このアドオンには、ユーザーがアバターを構成するさまざまなパラメータ(肌の色、服のメッシュ、髪の素材など)を選択することを可能にするアバターシステムの作成方法を示すシンプルなアバターシステムが含まれています。

SimpleAvatar には次のようなメソッドが含まれています。

  • 新しい「シンプルアバター」URLを使ってアバターを変更する
  • ランダムな「シンプルアバター」モデルを生成する
  • 特定のアバターパラメータ(髪、服、肌)を設定する
  • アバターの目と口をアニメーションさせる

また、RepresentationAvailable メソッドを使って新しいシンプルアバターがロードされたことを AvatarRepresentation に通知します。

デモシーンは Assets\Photon\FusionAddons\Avatar\Demo\Scenes\ フォルダーにあります。したがって、シンプルアバターをテストするには、AvatarLODSimpleAvatar シーンを開いてください。ユーザーがスポーンしたら、SimpleAvatarNetworkRig(Clone) ゲームオブジェクトを選択し、UserInfoAvatarURL パラメータを変更します。

例として、次のURLを使用することができます。 simpleavatar://?hairMesh=1&skinMat=2&clothMat=0&hairMat=0&clothMesh=1

目の動きのシミュレーション

アバターの視線が固定されないように、目の動きシミュレーションシステムを使用することができます。このシステムは、GazeTarget が設定されている他のオブジェクトを追跡するために、オブジェクト(アバターの目)を動かすことができます。

実現するには:

  • シーンには GazeInfo コンポーネントが含まれている必要があります(これは、新しいターゲットを狙うためのバックグラウンドスレッドを定期的に実行します)。
  • アバターオブジェクトは Gazer コンポーネントを保持し、gazingTransforms に目のゲームオブジェクトを提供する必要があります(gazingTransformOffsets を通じて回転オフセットを提供することも可能です)。
  • パフォーマンスを向上させるために、オプションとして eyeRendererVisibility フィールド内の Gazer コンポーネントに RendererVisible を提供することができます。RendererVisible がアバターのレンダラーが非表示であることを検出した場合、そのアバターの目のシミュレーションは実行されません。

Oculus リップシンク

一部のアバターシステムでは、高度なリップシンクが必要です。そのために、アバターアドオンには、Oculus Audio SDK ライセンス(https://developer.oculus.com/licenses/audio-3.3/)および Meta Platform Technologies SDK ライセンス契約(https://developer.oculus.com/licenses/oculussdk/)のもとでリリースされた Oculus Lipsync ライブラリのバージョンが含まれています。このライブラリは、Oculus Integration で入手可能です。

依存関係

Text Mesh Pro(ユーザー名プレートを表示するためにのみ使用されています)

ダウンロード

こちらのアドオン最新バージョンはaddon projectにあります。

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

  • shared mode

Changelog

  • Version 1.0.2: use NetworkString for UserName & AvatarURL
  • Version 1.0.1: fix namespace for LookAtCamera
  • Version 1.0.0: First release
Back to top