【Quest対応】VRChatでアバターの一部だけ金色にしたいとき②

前回の記事でBlenderでマテリアルを分割したfbxファイルを出力しましたね。

いよいよUnityでVRChat向けにアップロードしていきましょう。

この記事では
①fbxをUnityに入れる
アバターにマテリアルを割り当てる
③VRChat向けにアバターの機能のセットアップをする
→Rigの設定、リップシンクなどの設定、VRC Avatar Descripterの設定等。

アバターをアップロードできる状態に準備したUnityのプロジェクトをご準備ください。
また、販売・配布アバターであれば、もともとのマテリアルを分割していない方のアバターprefab(クリックするとPrefabって書いてあるものとImport settingって書いてあるものがあると思います)をhierarchyに載せておいてください。

その後、前回記事で保管したfbxファイルをドラッグアンドドロップでUnityのプロジェクトに追加してください。そのファイルをさらにhierarchyに載せてください。

f:id:VRskud:20220417202014p:plain
このままではアバターとしてはアップロードできませんし、動きません。

 

まずはRig(リグ)の設定です。これはアバターの手足や頭の動きを決めるものです。今回はヒューマノイドとして設定します。ちなみに特に手足のない「物」みたいなアバタージェネリックという設定をする場合があります。簡易ですが、人型でやるとTポーズのまま地面をスススと滑るように移動するアバターになってしまいます。

Blenderから持ってきたfbxファイルを選択、右側のInspectorのRigのAnimation typeをヒューマノイドに、Avatar DefinitionをCreate from this modelで。

f:id:VRskud:20220417181702p:plain

ひとまずApply。

すると下記のようなエラーが出ますので、Configure。

※このエラーに関しては他のアバターでは出ないことが多いです。後の作業を見ればなんとなくわかるかもしれませんが、てっさくちゃんは脚がボーン通りに動くように設定されていない(移動する時に人の脚のように動くのではなく、浮いているように動く)ので下記のようなエラーメッセージが出ています。

f:id:VRskud:20220417193556p:plain

configureを押すと背景がグレーになり下記のような画面になります。

f:id:VRskud:20220417194214p:plain

まずは右側のInspectorにあるheadというところを選ぶと顔の絵が出ますのでJaw(あご)の点を消します。欄右側の丸いボタンを押下してNoneをクリックすると消せます。本来あごの点ですが、髪が自動設定されてしまっているためです。

次はBodyを選んでください。

f:id:VRskud:20220417194552p:plain

先程※で記載したように脚のところでエラーが出ています。

下にスクロールして(右側は見えにくいですがふたつスクロールバーがあるので両方を意識して動かすと下まで見られます)、Legのあたりを見てみましょう。すると左右のLower legとFoot、ToesがNoneになっていると思います。ここに右側のHierarchyから同じ名前のボーンをドラッグ・アンド・ドロップで入れていきます(Toeもですがここは基本的にどちらでもよいはずです。フルトラだったりすると若干挙動が変わるのかもしれませんが、とりあえず今回は抜いておきます)。

f:id:VRskud:20220417195811p:plain

Applyを押してDone。

次はシェイプキー関連です。オートフィクスでも悪くはないのですが、ここまで開いているので自分でやった方がいいでしょう。

Inspectorの先程のRigの隣りにあるModelを選びます。下にあるRead/Write Enabledにチェックを入れます(入れないとエラーが出てポリゴン数が表示されなくなります)。もう少し下のBlend Shape NormalsをNoneにしてApply。

f:id:VRskud:20220417200615p:plain

さて、これで幾分かアバターらしい動きが出来るように設定されました。

 

次はリップシンクやAvatarDescripterを付けていきましょう。

まだアップロードはできません。
Blenderを通していない方のアバターを選んでアバターのinspectorを開きましょう。
VRC Avatar Descripterなどの帯の部分を右クリックでCopy ComponentしてはBlenderに入れたアバターのinspectorですでにある帯の部分で右クリックをしてPaste Component As New。面倒であればUnityのタブを増やしてそれぞれのアバター分でロックをかけておくと楽でしょう。

ここで注意点。VRC Avatar Descripterというリップシンクを司るところもコピーしてきていますが、このままだとコピー元のアバターのBodyを参照するようになっています。Blenderを通したアバターのbodyをドラッグアンドドロップで指定します。

f:id:VRskud:20220417202518p:plain

上の図だとコピー元のアバターを参照しています。

f:id:VRskud:20220417202647p:plain

ドラッグ・アンド・ドロップです。

もうひとつ。BlueprintIDに数字が入っている場合にはDetatchで消しましょう。同じIDで既に上がっているアバターがあれば上書きしてしまいます。

Dynamicbone回りもある程度コピーで持ってくることが出来る場合がありますが、うまくいかないものもあります。何度かうまくいかない例もありました。私はあまりダイナミックボーンにこだわりが強くないので正直よくわかりません。有識者に相談してみてください。

HierarchyのDynamic BoneをクリックしてCtrl+CでコピーしてHierarchyに貼り付け、Blenderでマテリアルを分けたアバターの子になるようにドラッグ・アンド・ドロップ。こちらもリップシンクと同じようにInspectorを開き、そのままでは元のアバターのボーンをDynamic Boneが参照しているので後から入れたアバターの同じ名前のボーンを指定します。

f:id:VRskud:20220417203159p:plain

今回のてっさくちゃんはQuest対応する場合にはDynamic Boneなしバージョンが必要なので、このあたりでHierarchyのてっさくちゃんをクリックしてCtrl+Dでコピーして、Qとかなんとかつけて分けておくといいです。Quest版はDynamicBoneを削除してQuest対応Shaderのマテリアルをセットしておきましょう。

これでVRC Avatar DescripterとPipeline Managerが入っているのでアバターが上がるようになりました。
最後に部分的に金にしていきましょう。
金にしたくない部分に関しては通常通りのマテリアルをドラッグアンドドロップで当てましょう。金にしたい部分はCreateからmaterialを選択してNew materialを作ります(元々あるマテリアルをCtrl+Dで複製してリネームしてもいいと思います)。このマテリアルを前々回の記事でやったようにMatCap litに変更してアバターのテクスチャと好きなスフィアテクスチャを入れて、ドラッグアンドドロップで二つ目のマテリアルの場所に当てましょう。この時アバターのテクスチャは最初に当てたものと同じでも構いませんし、別なものでも構いません。マテリアルを分けているのに全身入っているテクスチャを使うので必要以上に情報量の多いテクスチャということになりますが、あくまでマテリアルの割り当てられている部分のテクスチャだけが使用されます。

見た目を整えてオッケーだと思ったらアップロードです。

お疲れさまでした。良い金ライフを。

 

①、②の記事作成に際してはフレンドのKaratachiさんからもご助力をいただき、厚く御礼申し上げます。