ソーシャルVR / メタバースアプリのSpatialでは、Unity用のSDK「Creator Toolkit」を使うことで独自の3Dアバターをスペース内に持ち込んで使うことができます(カスタムアバター)。
ただし、そのための作業はそこそこ難易度が高いうえ、アバターを0から完全自作するとなるとさらに難易度が跳ね上がります。
そこで本記事では、既存の3DアバターをSpatialに持ち込むための手順を説明します。今回使用するのはKinderGarten21/常世界機構氏の「【U10△256】ver.1.2.1」です(このアバターを使用する理由は後述)。
全体の流れ
最初に作業全体の流れを以下にまとめます。
- アバターデータをUnityにインポート
- アバターのPrefab作成&コンポーネント追加
- Project Configuration&Active Packageでアバターの設定
- アバターの仮アップ&動作テスト
- アバターの本アップ
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)。
続けて、インポートしたアバターデータを選択し、ProjectウィンドウからHierarchyウィンドウに(またはSceneウィンドウに直接)ドラッグ&ドロップします。今回使用するアバターデータはProjectウィンドウ内、Assets>U10256_ver.1.2>FBX内にある「U10256.neko_ver.1.1」になります。
Hierarchyウィンドウ内にデータをドラッグ&ドロップしたら該当データをダブルクリックし、実際のScene上でアバターデータを確認しましょう。
またこの際、アバターデータに付随する各種パラメータの調整が必要になることがありますが省略します。今回使用する「U10256.neko_ver.1.1」に関してはパラメータ調整の必要はありません。
2:アバターのPrefab作成&コンポーネント追加
アバターデータをHierarchyウィンドウに配置したら、続けてアバターデータのPrefab(プレハブ)を作成します。Prefabとは、特定の元データから作られたコピーのようなものだと思ってください。
今度は先ほどとは逆に、Hierarchyウィンドウ内のモデルデータを選択し、Projectウィンドウにドラッグ&ドロップします。するとメッセージダイアログが出るので、「Original Prefab」を選択。これでPrefabができました。
続けて、新しく作成されたPrefabに「Spatial Avatar」のコンポーネントを追加します。Inspectorウィンドウ内にある「Add Component」をクリックし、項目の中から「Spatial Avatar」を選択すればOKです。
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」を選択してください。
4:アバターの仮アップ&動作テスト
ここまでの設定が済んだらテストを行います。メインツールバー内の「Test Active Package」ボタンを押してください。問題がなければアバターがテストスペースにアップロードされます。
アップロードが終わると、自動的にWebブラウザが開いてテストスペースへ遷移します。実際にアバターを動かしてみて、問題がないか確認します。
5:アバターの本アップ
テストスペースでの動作チェックで問題がなければ本アップへ進みます。Unityに戻り、Active Package内の「Publish」ボタンをクリックします。いくつかメッセージダイアログが出るので適宜処理します。本アップ手続き後、15分程度で本アップ処理が完了します。
処理完了メール到着後にスペースへ行くと、先ほどアップしたアバターが選択可能になっています。
まとめ
今回は【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,500 | 200,000 |
頂点数 | 50,000 | 200,000 |
テクスチャサイズ | 1024×1024 | 4096×4096 |
サブメッシュ(ドローコール) | 4 | 100 |
物理サイズ | 2.5m×2.5m×2.5m | 25m×25m×25m |
リグタイプ | Humanoid | Humanoid |
ファイルサイズ | 5MB | 40MB |
備考2
3Dアバターのファイル形式として少しずつ普及しているVRMですが、Spatialでは使えないため変換作業が必要です。フォーマット変換のやり方は以下の記事が参考になると思います。
VRM形式のアバターは無料で配布されているものが多数あるので、まずはそれらで試してみるのがよいでしょう。