メタバース「Spatial」用カスタムアバター制作記の続編です。前回の記事でFaceGenとDAZ Studioを用いてGenesis Femaleベースの3Dモデルを制作し、BlenderとMixamoでカスタムアバター向けに使えるFBXファイルを出力してUnityに読み込み、パブリッシュして使えるまでのプロセスについて紹介しました。
ここでの課題は、Unityでマテリアルのアルファをいじっても、まつ毛が透過せずマスカラのオバケのようになるので、まつ毛と髪のアルファテクスチャーを、アルファ付きのPNG画像ファイルとして制作し、それを適用して、パブリッシュ後もアルファがカスタムアバターに反映され透過する方法を試行錯誤しながら模索して来ました。
今回紹介する方法は成功事例ですが、本来あるべきスマートな方法ではないかもしれません。できるだけわかりやすく簡潔に説明しているので、ご自身で試してみて、よりスマートな方法を確立していただければ幸いです。
なお、まつ毛と髪のアルファテクスチャーの制作方法は、次回の記事で紹介しているので参考にしてください。私は手持ちの「Affinity Photo 2 Mac版」を用いましたが、アルファが扱えるPhotoshopやGIMPなどの画像エディターでも同様に可能です。
目次
Unity Editorに環境をセットする
Unity Editorを開いて、アセットに「Tiffy-Unity」フォルダーを追加し開きます。


私の場合は、Exampleアセットから「Spatial Island」を環境にセットしています。プレビューに便利です。

FBXファイルをアセットに読み込む

Tiffy-UnityのFBXファイルをアセットにドラッグ・アンド・ドロップします。

Tiffy-Unityアセットを開いても、まだテクスチャーはマテリアルに貼られていません。

Tiffy-Unityのアセットをシーンにドラッグ・アンド・ドロップして「Custom Avatar」を追加します。
Tiffy-Unityアセットをクリックすると、右側のパネルの「Inspector」に各種操作と情報が表示されます。今後は主にこのInspector上で各種操作を行います。

最初にTiffy-Unityアセットの「Rig」タブで「Animation Type」を「Humanoid」に変更しておきます。「Apply」をクリックして更新します。
★ 私の場合は、この段階でいったんSandboxでテストをし、OKだったら先に進むようにしています。最初はアルファテクスチャーを適用した後にSandboxのテストをしていましたが、なぜかRigのエラーが出てしまい、何回かやり直しを必要としたので、テクスチャーを展開する前にテストするとうまくいきました。
Rigのエラーの原因は今のところ不明なので、分かり次第レポートしたいと思います。
テクスチャーとマテリアルをフォルダーに展開する

「Materials」タブに切り替えて、「Extract Textures…」をクリックしてテクスチャー画像ファイルを展開します。それに先立って「Textures」フォルダーのアセットを作っておくと良いです。


「Extract Textures…」をクリックすると、展開先の場所を指定するダイアログが開くので、先ほど作成した「Textures」フォルダーを指定して「Choose」ボタンをクリックします。(ここで「New Folder」をクリックして作成しても良い)

シーンのプレビューで、テクスチャーが反映されたTiffy-Unityを確認できます。
「Textures」フォルダーの中身も確認しておきます。Blenderでまつ毛や髪にアルファを使って透過していてもUnityには持ち込まれないので、Unity上のマテリアルを直接編集してアルファテクスチャーによる透過を実現します。
同様にして「Materials」フォルダーを作成して、「Extract Materials…」ボタンをクリックしてマテリアルを展開します。

各マテリアルにテクスチャーが貼られている状態が確認できます。

この状態でプレビューを拡大すると、まだまつ毛と髪にはアルファテクスチャーが適用されていないので透過しない状態であることが確認できます。
まつ毛のマテリアルを直接編集する
右下の「daz_6_Eye…」をクリックして、Inspectorにまつ毛のマテリアルを表示します。今回は前回行っていたマテリアルのコピー・アンド・ペーストは必要なく、直接マテリアルのパラメータを編集できます。

「Surface Type」を「Transparent」に変更します。
その下の「Surface Inputs」の「Base Map」の四角をクリックして「Color」を開き、テスト的にアルファ(A 透明度)のスライダーを左端に移動すると、まつ毛が透明になるのがシーンのプレビューでリアルタイムに確認できるので試してみてください。
まつ毛と髪のアルファテクスチャーを適用する
まつ毛のアルファテクスチャー(アルファ付きPNG画像)を「Base Map」の左端の四角にドラッグ・アンド・ドロップすると、リアルタイムに上記のスクリーンショットのように、まつ毛が透過したプレビューを確認できます。
その前に、アセットにアルファテクスチャー画像をドラッグ・アンド・ドロップして置いておきます。

Inspector右上のカギアイコンをクリックして、Inspectorの表示をロックしておくとドラッグ・アンド・ドロップがやりやすいです。編集するマテリアルを切り替える時にはロックを解除します。
同様に、髪のアルファテクスチャーも適用します。髪のテクスチャーは複数の部位に分かれているので、それぞれについて同じアルファテクスチャーを適用しますが「Head」だけは除外しています。Headに適用すると地肌が上から丸見えになり見栄えが悪いのでそうしました。

Tiffy-Unityのアセットを開いて髪のマテリアルをクリックすると、Inspector上に複数のマテリアルパートが縦に並んでいます。
今回は「Bangs」「Piggy Tails」「Strands」の3つの髪のマテリアルにアルファテクスチャーを適用しました。

パブリッシュしてアルファによる透過を確認する

左上の「Hierarchy」からTiffy-Unityをアセットにドラッグ・アンド・ドロップして「Prefab Variant」を作成し、「Publishing」をクリックして各種設定後、Prefab Variantを「Prefab」にドラッグ・アンド・ドロップします。

今回から「Usage Context」は「World」を選びます。前回までは「Ecosystem」でしたが、名称が変更になったようです。

現状では自分のスパース内のみで使えるカスタムアバターとなりますが、将来的には「Universal」のカスタムアバターの仕様がWorld並みに拡大されるか?Worldでも他のスペースで使えるようになるか?を期待します。
Sandboxでテストし、OKならパブリッシュします。

結果を確認する
今回はパブリッシュに成功しましたが、なぜかメールが届くまで4時間近くかかりました。最初に練習するためにExampleのSpatianアバターでパブリッシュした時も4時間近くかかったので、Spatial側で何か初期化されたのかもしれません。
通常は5分程度なので、メールが届く前に確認すると、カスタムアバターを選ぶエリアに数字だけのアイコンが表示されていました。パブリッシュ途中の状態では、そのように表示されるものと思われます。

試行錯誤では、Mixamoで出力したFBXファイルのファイル名を、毎回末尾の数字を変えながらやり直していたので、今回成功した事例の末尾は「5」になりました。


まとめ
FaceGen ArtistとDAZ Studioで制作した3DモデルをSpatialのカスタムアバターとして使う方法を紹介する第二弾として、まつ毛と髪にアルファテクスチャーを適用して透過させる方法について解説しています。
マテリアルが直接編集できるようになっていたり、EcosystemがWorldに名称が変更になったりと、Spatial内部でかなり大きな変更がされているように感じます。ユーザーインタフェースも一部が変わりました。
今後は、今回の結果を踏まえて何らかの形で、Spatial向けカスタムアバターを「Unityを介さず」Spatialのスペースから直接読み込める形で提供できるよう考えたいと思います。Tiffy-Unityは無料商品としてダウンロード提供する予定です。
参考リンク
2023年版|まゆ毛と髪のアルファテクスチャーの作り方:Spatialカスタムアバター向け >>>
2023年版|Spatialカスタムアバターを試作する方法とは? >>>