Spatialにお気に入りのアバターを持ち込む手順まとめ(カスタムアバター)

 ソーシャルVR / メタバースアプリのSpatialでは、Unity用のSDK「Creator Toolkit」を使うことで独自の3Dアバターをスペース内に持ち込んで使うことができます(カスタムアバター)。

 ただし、そのための作業はそこそこ難易度が高いうえ、アバターを0から完全自作するとなるとさらに難易度が跳ね上がります。

 そこで本記事では、既存の3DアバターをSpatialに持ち込むための手順を説明します。今回使用するのはKinderGarten21/常世界機構氏の「【U10△256】ver.1.2.1」です(このアバターを使用する理由は後述)。

全体の流れ

 最初に作業全体の流れを以下にまとめます。

  1. アバターデータをUnityにインポート
  2. アバターのPrefab作成&コンポーネント追加
  3. Project Configuration&Active Packageでアバターの設定
  4. アバターの仮アップ&動作テスト
  5. アバターの本アップ

 Unity(2021.3.21)およびSpatial Creator Toolkitの導入は済んでいる前提です。未導入の方は下記の記事を参照してください(「Spatial Creator Toolkitの設定手順」、手順1~3)。

作業手順詳細

 それではここから作業手順をひとつずつ解説していきます。

1:アバターデータをUnityにインポート

 まずはアバターのデータをUnity内に持ち込みます。入手したアバターデータがzip圧縮されている場合は解凍しておいてください。

 今回はUnityパッケージが用意されているので、それをインポートします。

 UnityのメニューからAssets>Import Package>Custom Package…と進み、今回DLしたUnityパッケージ「U10256_ver.1.2.1.unitypackage」を読み込みます。この際、実は全部のデータをインポートする必要はないのですが、面倒なので今回はいったんすべてインポートします。

 なお、Unityパッケージがなく、FBXファイルおよびテクスチャデータ・マテリアルデータなどがある場合は、Projectウィンドウの「Assets」を右クリック>Create>Folderで新しいフォルダを作成、そこにデータを入れればOKです(フォルダ名は任意でOK)。

Unityパッケージのインポート。メニューから「Custom Package…」へ進む
今回使用する「U10256_ver.1.2.1.unitypackage」を読み込む
デフォルトで全データが選択された状態になっているので、そのまま「Import」をクリック
データフォルダの名前や場所を自分で決めたい場合は、Projectウィンドウ内の「Assets」を右クリックして新しいフォルダを作成

 続けて、インポートしたアバターデータを選択し、ProjectウィンドウからHierarchyウィンドウに(またはSceneウィンドウに直接)ドラッグ&ドロップします。今回使用するアバターデータはProjectウィンドウ内、Assets>U10256_ver.1.2>FBX内にある「U10256.neko_ver.1.1」になります。

 Hierarchyウィンドウ内にデータをドラッグ&ドロップしたら該当データをダブルクリックし、実際のScene上でアバターデータを確認しましょう。

 またこの際、アバターデータに付随する各種パラメータの調整が必要になることがありますが省略します。今回使用する「U10256.neko_ver.1.1」に関してはパラメータ調整の必要はありません。

インポートしたアバターデータを選択し、ProjectウィンドウからHierarchyウィンドウにドラッグ&ドロップ。アバターデータ名をダブルクリックすると、アバターにフォーカスされる

2:アバターのPrefab作成&コンポーネント追加

 アバターデータをHierarchyウィンドウに配置したら、続けてアバターデータのPrefab(プレハブ)を作成します。Prefabとは、特定の元データから作られたコピーのようなものだと思ってください。

 今度は先ほどとは逆に、Hierarchyウィンドウ内のモデルデータを選択し、Projectウィンドウにドラッグ&ドロップします。するとメッセージダイアログが出るので、「Original Prefab」を選択。これでPrefabができました。

 続けて、新しく作成されたPrefabに「Spatial Avatar」のコンポーネントを追加します。Inspectorウィンドウ内にある「Add Component」をクリックし、項目の中から「Spatial Avatar」を選択すればOKです。

Hierarchyウィンドウ内のモデルデータをProjectウィンドウにドラッグ&ドロップ。メッセージダイアログは「Original Prefab」を選択
Projectウィンドウ内にPrefabができる
Prefabを選択し、Inspectorの「Add Component」を選択
「Spatial Avatar」を選択。検索窓に「Spatial」と入れるとすぐ見つかる
Spatialアバター用のコンポーネントが追加された

3:Project Configuration&Active Packageでアバターの設定

 ツールバーの歯車アイコン(「Publishing」の右隣)をクリックし、Spatial Portalのウィンドウを開きます。

 まずはProject Configuration内の「Create New」で「Avatar」を選択し、右隣の「Create」をクリックします。

 続けて、Active Packageの「Name」に任意のアバター名を入力。ProjectウィンドウからPrefabを「Prefab」フィールドに、256×256のサムネイル画像(非圧縮形式、背景透過)を「Thumbnail」フィールドにドラッグ&ドロップしてください。

 サムネイル画像がない場合は自作する必要があります。ちなみにサムネイル画像は背景透過されていないとアップロード時にエラーがでますが、そのまま手順を進めることができます。

 「Usage Context」「Category」のフィールドはそれぞれ「Universal(またはWorld)」「Human」を選択してください。

ツールバーの歯車アイコンをクリックすると別ウィンドウが開く
所定の場所にアバターのPrefabとサムネール画像をドラッグ&ドロップ
仮アップ直前は写真のような設定になっているはず

4:アバターの仮アップ&動作テスト

 ここまでの設定が済んだらテストを行います。メインツールバー内の「Test Active Package」ボタンを押してください。問題がなければアバターがテストスペースにアップロードされます。

 アップロードが終わると、自動的にWebブラウザが開いてテストスペースへ遷移します。実際にアバターを動かしてみて、問題がないか確認します。

カスタムアバターをテストスペースに仮アップ。所要時間はPCスペックやネット回線速度により変わる
テストスペースでアバターの外見や動作チェックができる

5:アバターの本アップ

 テストスペースでの動作チェックで問題がなければ本アップへ進みます。Unityに戻り、Active Package内の「Publish」ボタンをクリックします。いくつかメッセージダイアログが出るので適宜処理します。本アップ手続き後、15分程度で本アップ処理が完了します。

Active Package内の「Publish」ボタンをクリックすると本アップ手続きが開始
本アップ時のメッセージダイアログ1
本アップ時のメッセージダイアログ2
本アップ時のメッセージダイアログ3。アップロード作業終了後、15分程度で完了通知メールが届く

 処理完了メール到着後にスペースへ行くと、先ほどアップしたアバターが選択可能になっています。

スペース内で「Edit Avatar」のメニューを開くと、アップロードしたカスタムアバターが選べるようになっている
今回はアバターのサイズを調整していないため、かなり小さいスケールで出力されている

まとめ

 今回は【U10△256】という3Dアバターを使用しましたが、データの仕様が合っていれば別のアバターでも同じやり方でいけるはずです。もしすでに自分で作成したり購入したアバターを持っているのであれば、そちらで挑戦してみてもよいでしょう。

 ただし、既存の3DアバターをSpatial用のカスタムアバターとして使用するには、Spatialで定められたアバターの制限(ファイルサイズ・ポリゴン数・テクスチャサイズなど)に収まるようにデータを最適化する必要があります。

 今回使用した【U10△256】はこうした制限に引っかからないコンパクトなモデルのため、追加作業なしでカスタムアバターとして設定することができました。

 アバターデータの最適化作業は別途Blenderなどのツールを使う必要があったりと、かなりハードルが高い作業です。ここを乗り越えるには「他人とは違う自分だけのアバターを使うんだ」という強い熱意が必要でしょう。

 なお、公式ドキュメントにはトラブルシューティングに関する記述もあります(Handling Errors When Publishing Your Avatar)。英語ですが、上手くいかないときは助けになるかもしれません。

備考1

 Spatial Creator Toolkitにはデフォルトで「Spatian」という人型アバターのサンプルデータが入っています。ところが、これをカスタムアバターとして使おうとすると、容量制限に引っかかってアップロードできません(過去にはいけたらしい)。

 制限の厳しい「ユニバーサルアバター(Universal Avatar)」はもちろん、比較的制限のゆるい「ワールドアバター(World Avatar)」としてもです。ちょっとしたトラップですね。ここは改善を期待したいところです。

 また、Spatial公式ガイドのGardenBee氏がカスタムアバターの解説動画を公開しています。一部で用語が古かったり、上記のサンプルアバターが2023年9月時点ではエラーを起こすなどの問題はありますが、作業の流れを知るには最適の動画になっています。

 なお、カスタムアバターの設定で出てくる「グローバルアバター」と「ワールドアバター」の制限は以下の表の通りです。

ユニバーサルアバターワールドアバター
ポリゴン数(三角ポリゴン)22,500200,000
頂点数50,000200,000
テクスチャサイズ1024×10244096×4096
サブメッシュ(ドローコール)4100
物理サイズ2.5m×2.5m×2.5m25m×25m×25m
リグタイプHumanoidHumanoid
ファイルサイズ5MB40MB

備考2

 3Dアバターのファイル形式として少しずつ普及しているVRMですが、Spatialでは使えないため変換作業が必要です。フォーマット変換のやり方は以下の記事が参考になると思います。

 VRM形式のアバターは無料で配布されているものが多数あるので、まずはそれらで試してみるのがよいでしょう。