Metaアバターのサンプル
更新日時: 2025/03/12
このページでは、MetaアバターUnityパッケージに付属されているサンプルについて説明します。
このシーンは、視線ターゲット、身体位置認識、およびアバターデザインを示すもので、ユーザーの動きを模倣する一人称アバターと、そのミラーリングアバターが含まれています。
またこのシーンでは、アバターエディターの起動方法も示されています。アプリからアバターエディターを起動する方法について詳しくは、
Metaアバターエディター統合ページをご覧ください。
注: ミラーリングされたアバターは、変形が適用されたローカルアバターのコピーです。シミュレーションされたリモートアバターをシミュレートする例については、
ネットワークループバックシーンのサンプルをご覧ください。
照明のサンプルシーンは、複数のプリセットアバターを、さまざまな照明設定とシェーダーを切り替えるオプションとともに示しています。AvatarSDKManagerMetaに含まれているシェーダーが、推奨シェーダーです。他のシェーダーは、レガシーとして、または参照用もしくはデバッグ用に含まれています。
このシーンをUnityで実行するには、[MetaAvatarsSDK] > [Lighting Example Scene (照明サンプルシーン)] > [Add Environments (環境の追加)]に進みます。これにより、必要な環境シーンをビルドに追加できます。
シーンの切り替えはUnityのオンスクリーンUIで制御され、ヘッドセットで実行する際に、環境やシェーダーを切り替えるために必要なボタン操作について画面上に指示が表示されます。
含まれている照明環境は以下のとおりです。
この照明環境は、アバターと背景メッシュがどのように読み込まれるかを示す、リアルなシーン内コンテキストを提供します。照明は3点(キー、フィル、リム)およびIBLです。この照明環境は、Meta Connectショーケースの照明と似ています。
この照明環境は、より暗い屋内エリアの照明環境でアバターがどのように表示されるかについてのコンテキストを提供します。照明は3点(キー、フィル、リム)およびIBLです。
この照明環境は、ニュートラルなスタジオ照明環境でアバターがどのように表示されるかについてのコンテキストを提供します。よりカラフルなその他の照明や背景環境サンプルとの比較基準として使用されるものです。この照明環境は、照明が3点(キー、フィル、リム)およびIBLであるという点で、Meta Connectショーケースの照明と似ています。
この照明環境は、屋外のIBL照明環境でアバターがどのように表示されるかについてのコンテキストを提供します。この照明サンプルにはパンクチュアルライトはありません。
この照明環境は、さまざまな照明モデルやシェーダーのテストに利用できる、シンプルな
コーネルボックスを提供します。
このサンプルシーンは、カスタムハンドポーズを示しています。手の骨格それぞれのprefabに加え、ポーズをSDKに転送するためのコンポーネントが提供されています。
このサンプルシーンは、視線ターゲットの設定方法や、アバター動作におけるその効果を示しています。また、アバターの目が自然な動作(現在の視線ターゲットから一時的に目を離すなど)をどのようにシミュレーションするかも示しています。
プレイ中に左コントローラーのメニューボタンを押すと、アバターエディターが表示されます。
このサンプルシーンは、ネットワーキングパケットキューの中にアバターを統合する方法を示すモックコードサンプルを提供します。一人称ユーザーアバターと、ユーザーの動きを模した三人称アバターが含まれています。またこのシーンでは、アバターエディターの起動方法も示されています。
提供されているコードは、OvrAvatarEntityのメソッドRecordStreamData()を呼び出すことにより、一人称アバターの動きがネットワーク経由での送信に適したバイナリデータとしてキャプチャされる方法を示しています。このデータは、パケットキューから取得された後にApplyStreamData()メソッドに渡され、それによって三人称アバターがユーザーを模倣できるようになります。
ネットワークループバックシーンを基に構築されたこのシーンは、
OvrAvatarAnimationBehaviorを使ってアバターの脚にロコモーションアニメーションを追加する方法を示しています。1つの一人称アバターの周囲に、基本方向のそれぞれに沿って配置された4つの三人称アバターが含まれています。
一人称アバターはユーザーによって直接コントロールされ、三人称アバターのそれぞれは、その動きを模倣します。これには、
ネットワークループバックシーンと同じ模擬ネットワーキングコードが使われます。シーン内を移動すると、一人称アバターと、そのミラーリングされたアバターは、ユーザーの動きに合わせて歩く、回転する、かがむなどの動作を行います。
このシーンは、
OvrAvatarAnimationBehaviorを使ってカスタム全身アニメーションをアバターで再生する方法を紹介するもので、ジャンプアニメーションをループ再生するアバターを示しています。詳細については、
アバターのロコモーションを参照してください。
JointAttachmentsシーンは、改良されたジョイントアタッチメントシステムを使う方法を示しています。このシステムは、さまざまな体型のアバターをサポートするためにアップグレードされました。頭、胸、腰にオブジェクトが装着された一人称および三人称アバターを示しています。詳細については、
装着可能要素を参照してください。
このシーンは、Tポーズでのアバターの画面表示を最もシンプルに実装したものであり、ボディトラッキング、フェイシャルトラッキング、リップシンクは含まれません。
このシーンでは、複数のスキニングタイプを、OvrAvatarSkinningOverrideのMonobehaviorを使って並べて表示しています。
一般的には、OvrAvatarSdkManager、OVR_COMPUTEで提供されるデフォルトのスキニングタイプを使うべきですが、このシーンには、レガシーのスキニングタイプである OVR_GPUと、フェイルセーフなUNITYのスキニングタイプでレンダリングされたアバターも含まれています。
このシーンはあくまで例示です。UNITYのスキニングタイプはパフォーマンスが低いため、実稼働環境では推奨されません。このサンプルのように、複数の異なるスキニングタイプを同じシーンで使うことは、パフォーマンスオーバーヘッドが高くなるため推奨されません。
このシーンでは、各シーンを手作業で個別にインスタンス化することなく、アバターの詳細レベル(LOD)のすべてを一度に見ることができます(標準および照明のバリエーションを含む)。
このシーンでは、さまざまなアバターの配列上の結果をリアルタイムでプレビューしながら、装着可能要素のソケット呼び出しをすることができます。ゲームビューのオンスクリーンUIを使ってソケットの属性をコントロールし、生成されたコードをテキストボックスからコピーして、自分のスクリプトで使うことができます。詳細については、
装着可能要素を参照してください。
ロコモーション
関節オーバーライド機能の使い方を説明するため、例示したシーンでは第三者のアバターで
ローカルアニメーション再生を有効にし、両方の足首でオーバーライド変形が可能になっています。こうした変形を実行時に動かすことで、アバターの足の位置を正確にコントロールできます。