PCアバターをQuestでの Avatar Rank Medium 化し、PCアバターと共存させる手順を解説します!
当記事は、単なる「Quest対応」(Androidに切り替えてシェーダーだけ変えてVeryPoorでアップする)とは異なりますとりあえずQuestで見えてほしい!というだけの方はブラウザバックを推奨しますまた、当記事の内容は2021年12月時点のものとなります。 |
QuestMedium化とは?
皆さんご存知かとは思いますが、VRChatのアバターには Avatar Rank というものがあります
まあ簡単に説明するとアバターがどれだけ重いかでランクが決まる、そういうやつです
どれくらいのランクから表示するかをSafetyから決められます
また、Rankの基準はPCとQuestで異なりまして、Questでは初期状態ではMedium以上のみ表示されます
始めたてのQuestのVisitorさんにShowAvatarせずとも最初からアバター表示してもらうためには、Medium以上のアバターを用意する必要があります
そのQuestでのMediumの基準がというと・・・
- メッシュレンダラ2つ(Skinned Mesh Renderer 2個、Mesh Renderer 2個まで)*1
- マテリアルスロット2つ
- 15000ポリゴン以下
- このほかにもシェーダーやDB使用禁止等ありますが割愛します
そんなこんなでわりと厳しい!! 大半のPC専用アバターでは満たせない!ので、
この記事では、MediumにするためにBlender等でゴニョゴニョする方法を解説いたします
GoodやExcellentじゃなくても大丈夫?
ぶっちゃけMedium以上であれば表示されるというか、Safetyの選択肢にもMediumとPoorしか無いので、エクセ目指すメリットはマジで特にありません
しいて言えば、アバターを自作・販売する場合、改変の余裕を残すために1メッシュ1マテリアルにする、くらいです
使用ツールについて
- 必須:
- Blender(2.79以降~2.9系まで?)
- この記事では2.79を使いますが、
2.8以降でも問題なく行えるでしょう3.x系以降では下記Cats Blender Pluginが上手く動作しないようです!
- この記事では2.79を使いますが、
- Cats Blender Plugin
- インストール手順・表示方法についてはここでは割愛します
- Blender(2.79以降~2.9系まで?)
- Unity(VRChatに対応するバージョン)
- この記事では執筆当時(2021-12-13)時点での対応バージョン 2019.4.31f1 LTS を使います
- VRCSDK3-AVATAR
- この記事では執筆当時(2021-12-13)時点でのバージョン 2021.11.24.16.20_Public を使います
- 任意(私が普段Blenderに慣れてないだけ):
- Metasequoia 4 EX
今回ご利用させていただくアバター
この記事では あまとうさぎ / こまど さんの 「ラスク」ちゃん v1.11 を使います
komado.booth.pm
手順
Unityでのアバターの用意
すでに既存のプロジェクトがある場合、新しくプロジェクトを作り直す必要はありません
今回はバニラ状態のSDK3ラスクちゃんを利用します
モデリングソフトでの不要な部分の削除など
普段使用しているモデリングソフトで、服で見えない胴体など不要な部分を削除します(ついでに、着せ替え用のシェイプキーなども削除しちゃいましょう)
私はBlenderが不慣れなので2万円のMetasequoiaを使用しましたが、普通の人であればBlenderでそのまま編集したほうが手っ取り速いです
また、余裕や技術力があればテクスチャ書き込んで表現するなど、軽量化に使える技術は惜しみなく投入しちゃってください
手作業でポリゴン削減できる部分は行っておくと後々破綻せず効率的にポリゴン削減できるかと思われます
例えば自分のラスクちゃんの場合、ニーソックスが別オブジェクトなのを素足のテクスチャに書き込んでその分のポリゴンを削減しています
テクスチャ改変をしてる場合、この時点でテクスチャを設定しておきましょう
自分はメタセコを使用しているためここで一旦FBXにエクスポートしますが、Blenderの場合はそのまま次のステップに行って大丈夫です(可能であればBlendファイルでバックアップをとりましょう)
Blenderでのポリゴン削減
(自分はメタセコなので)ひとまずBlenderで先程FBXでエクスポートしたモデルを開きます(Blenderの場合開きなおし等しなくてもOK)
顔以外のポリゴン数削減をしていきます
(顔はシェイプキーがあるので削減できません、削減してしまうと表情が動かなくなります・・・)
胴体や服など、左右対称のオブジェクトは"対象"にチェックを入れておきましょう
適用ボタンを押すと反映されます
ただし、あまり削減しすぎると関節を曲げた時に見た目がおかしくなってしまうので、反映後に編集モードでポリゴンがどうなっているかの確認はしておきましょう
三角面数が15000以下になっていればOKです
この状態で一旦Blendファイルを保存しておきましょう(Blenderの民の場合、先程保存したBlendファイルとは別名のが良いかも)
オブジェクトの結合
Shiftキーを押しながらオブジェクトをクリックして選択します
この際、顔のオブジェクトを最後に選択すると、結合した際に名前が顔のオブジェクトの名称になり、PC用のアニメーションがそのまま流用できます
その後、3Dビューにマウスカーソルを置いて Ctrl+J でオブジェクトを結合します
CATS Blender Plugin を利用したマテリアルのベイク
CATSタブから、"最適化"→"Generate Material List"をクリックします
この際、アルファテクスチャのあるモデルの場合、アルファテクスチャのみ数字を2にセットしておいてください
"Save Atlas to..."ボタンを押し、FBXかBlendファイルと同じ場所など、Unityから見つけやすい場所に保存しておきましょう
FBXエクスポート、Unityにもっていく
FBXへエクスポートします
この際、オペレータは以下のように設定するらしいです
エクスポートしたFBXモデルとテクスチャをUnityにぶっこみます
RigをHumanoidに設定し、Materialsを Use External Materials にしましょう
また、Modelsタブについては元のモデルと同じ値に設定してください(Read/Write Enabled や、 Blend Shape Normalsなど)
テクスチャの Alpha is Transparency にチェックを入れます
FBXをシーンにD&Dします
Atlasマテリアルのシェーダーを VRChat/Mobile下のものに変更します(Toon Lit がおすすめ)
Atlasマテリアルを複製し、複製したマテリアルのシェーダーを VRChat/Mobile/Particles/Multiply にします
複製したマテリアルをメッシュの Materials 内 Elements 2に適用します
元のPC用アバターの VRC_Avatar Descriptor を Copy Component して、Quest用アバターにPasteします
この際、PCアバター側のBodyやEyeボーンが関連付けされたままなので、Quest用アバターの同名オブジェクトをD&Dして関連付けさせてください
VRCSDKコントロールパネルよりQuest用アバターの "Build & Test" をクリックしてビルドし、VRChatを起動して確認します(SDK3のみ)*2
確認して問題が無ければ、Build Settings等からAndroidビルドに切り替えておきます
この際、アップロードできないアバターが他にあると Build & Publish ボタンが押せないので、PC用アバターは非Activeにしておきましょう
(すでにPC側にもアバターをアップしている場合)VRCSDKコントロールパネルの Content Manager から、既存のアバターのBlueprint IDをコピーして、
Quest用アバターにAttachしてください
その後、VRCSDKコントロールパネルから "Build & Publish for Android" を押してアップロードします
この際、Overall Performance が Medium 以上になっているか確認して下さい!
この際、New Avatar ではなく、アバターを更新するときの Update Avatar になっていれば成功です(PC側が更新されることはなく、Android側のみ変更されます)
これでアップロードが完了すれば、QuestMedium対応は成功です!お疲れ様でした!
あとがき
ものすご~~~く画像過多なくせしてわかりづらい記事となってしまいましたが、ご参考になれば幸いです!
・・・・この記事は以上となります それでは~