Vroidアバターでquest対応初級編:Unityだけでquest対応する!

UnityのみでVroid産アバターをquest対応させます。
mediumはけっこうきついですが、Poorくらいなら目指せます。

Unity2018対応、VroidStudio0.9.5以降に対応して記事を更新しました。

Vroidで対応が必要な方法など、基礎知識編は別にまとめました。 なんでこんな作業がいるの?と気になったら、そちらを読んでみてください。

tomo-shi-vi.hateblo.jp

使用するものとバージョン

Unity&VRCS

Unity2018とVRCSDK2-2020.05.12.10.37_Public

VroidStudio

ver0.9.5以降(軽量化機能追加後)

VRM_Converter_for_VRChat

ver21.0.0

booth.pm

VroidアバターをボタンをポチポチするだけでVRChatで使えるようにしてくれます。
更新も頻繁でとてもありがたいツールです。

1.VroidStudio側での作業

quest対応用に、VroidStudio側で修正を行います。
PC用のアバターとはファイルを分けておくといいです。

まず、Quest版ではテクスチャの透過を使うことができません。
Vroidでは顔のパーツなどにも透過が多用されていますので、それらをなんとかしていきます。
「透明メッシュを削除」機能は、あくまでメッシュ(テクスチャのガイドのグリッド)単位で削除するものなので、四角く不要な部分が残ります。

f:id:tomo_shi_vi:20200615171402p:plain

1-1.瞳

こちらは簡単な手順で大体そのままの見た目をQuestに持っていけます。
今設定されている

  • 瞳のテクスチャ
  • 瞳ハイライトのテクスチャ
  • 白目のテクスチャ

をエクスポートしておきます。

「目のハイライト」のテクスチャを非表示にします。

f:id:tomo_shi_vi:20191013154248p:plain

瞳のテクスチャ設定にレイヤーを足して、こんな風に重ねていきます。

f:id:tomo_shi_vi:20191013174209p:plain

瞳の余白部分が埋まり、ハイライトが瞳と統合されます。

1-2.服

Vroidでは、服のテクスチャを一部透過して形状を違うように見せることが一般的です。
Questではその手法が使えないため、透過しなくても大丈夫なデザインの服装に変更しましょう。

f:id:tomo_shi_vi:20200615172659p:plain

パーカーは透過なしでもかわいいデザインのものが多く、後述するポリゴン削減もしやすいのでお勧めです。

f:id:tomo_shi_vi:20200615172708p:plain

また、襟元など肌に密着している部分なら、肌色で塗ってしまうのも手です。

1-3.板ポリの髪を使った小物

髪の板ポリに透過画像を表示しているものがあったら、削除するか、別の表現方法を考えます。

f:id:tomo_shi_vi:20191013174922p:plainf:id:tomo_shi_vi:20191013174940p:plain

こちらの蝶は板ポリに描画しているのですが、透過がなくなると周りが黒くなってしまいます。

1-4.揺れ物の削除

questではダイナミックボーンは使えないので、髪の揺れ物設定はすべて削除しておきます。

1-5.髪型の修正

ベースヘアも生え際が透過されています。 もしベースヘアが必要な髪型なら、プロシージャルでベースヘアのようなものを作ってしまいましょう。

プロシージャルで作った襟足の例 f:id:tomo_shi_vi:20200615173243p:plain

パラメータ f:id:tomo_shi_vi:20200615173255p:plainf:id:tomo_shi_vi:20200615173300p:plain

プロシージャルで作った生え際の例 f:id:tomo_shi_vi:20200615173810p:plain

パラメータ 中心点を後頭部に持っていくことで、毛先を生え際にしています。

f:id:tomo_shi_vi:20200615174010p:plainf:id:tomo_shi_vi:20200615174015p:plainf:id:tomo_shi_vi:20200615174021p:plainf:id:tomo_shi_vi:20200615174026p:plain

1-6.顔の修正

ここがQuest対応の最難関です。
ペイントツールで頑張るところです。

眉毛、アイライン、まつ毛は透過を前提として作られているため、そのままだと黒い海苔のように四角いものが出現します。
回避するためには、各パーツを肌テクスチャに直書きしていく必要があります。

注意 * 表情変化の時に眉毛は動かなくなります * 顔から立体的に浮いているまつ毛は描けません

大変地道な作業ですが、比較的楽をできる手順を紹介します。

①まず位置のあたりを付ける

肌にレイヤーを重ねて、パーツをなぞるようにブラシで描きます。

f:id:tomo_shi_vi:20200615174509p:plain

② ラインを整える

ブラシの線を削ることで、ラインを整えていきます。

f:id:tomo_shi_vi:20200615174944p:plain

③あたりのラインに沿って、元のテクスチャを張り付ける

無料のメディバンやアルパカでもいいので、このあたりのラインに沿うように、テクスチャを変形して貼り付けます。

f:id:tomo_shi_vi:20200615175521p:plain

イラストが描ける人はこのあたりに沿って眉を描きなおしてもいいと思います。

元のパーツを表示してみたりして見比べながら、同じような顔になるように肌テクスチャを調整していってください。

1-7.Quest向けの最適化

不要なものを非表示にしていくことで、ポリゴンを減らしたり、思わぬところに変な表示が出るのを防ぎます。

1-7-1. 必ず非表示にする物の確認

これらは必ずすべて非表示にしておきます。

  • 瞳のハイライト
  • ベースヘアー
  • 眉毛
  • まつげ
  • アイライン

1-7-2. 見えない肌を透過する

服に隠れて見えない部分の肌をすべて消していきます。

制服の袖のように、内側が見える服は消しすぎると透明な部分が見えてしまいます。

f:id:tomo_shi_vi:20200615180234p:plain

パーカーなどは、奥が見えないようになっているので、内側はザクザク透過できます。

f:id:tomo_shi_vi:20200615180259p:plainf:id:tomo_shi_vi:20200615180303p:plain

ズボンの中の足や、靴の中の足先も消しておきます。

f:id:tomo_shi_vi:20200615180352p:plain

赤で囲った後頭部は大体髪に隠れるので、消してしまって大丈夫です

f:id:tomo_shi_vi:20200615180709p:plain

ネイルも消してもあまり目立ちません(おこのみで)

f:id:tomo_shi_vi:20200615180601p:plain

1-8. エクスポート

エクスポート設定はこんな感じにします。

f:id:tomo_shi_vi:20200615181027p:plain

髪の断面形状は、一括で底なし三角にされてしまうため、裏側から見たときに表示されなくなります(正面からロングヘアを見たときに表示されない) 避けたい場合はこのオプションを使わず、手動で髪を三角に変更します。

下のパラメータは、目安の値です。
設定して見た目が大きく崩れた場合は、数値を変更してください。

目安としては、ポリゴン数10000以下にすると、Poor判定のアバターにできます。
7500を切れると、Mediumとなり、Questユーザーが何もしなくても最初から表示されるアバターになれます。
f:id:tomo_shi_vi:20200615181610p:plain

あとは通常通りVRMをエクスポートします。

2.Unityにインポート

VRCSDKとVRM_Converter(UniVRMつきのほう)をインポートしたプロジェクトに、VRMをD&Dします。

f:id:tomo_shi_vi:20191013155840p:plain

2-2.VRMファイルのquest向け変換

ProjectのquestShibuプレハブを選択した状態で、画面上部のVRMメニューから「Dupulicate and...」を選択します。

f:id:tomo_shi_vi:20191013160407p:plain

変換設定の画面で揺れ物の設定をRemove...にして、ForQuestにチェックを入れます。

f:id:tomo_shi_vi:20191013160450p:plain

下にポリゴン数の警告が出ていますが、問題ありません。
右下の変換ボタンを押して、処理が終わるのを待ちます。

f:id:tomo_shi_vi:20191013160614p:plain

完了画面でもマテリアルの警告が出ますが、こちらも無視します。
変換が終わると、Hierarcyにモデルが追加され、画面上にも出てきます。

f:id:tomo_shi_vi:20191013160916p:plain

3.モデルの修正

3-1.シェーダーの設定

Projectから、「[ファイル名](VRChat).Materials」というフォルダ名を探し、マテリアルを全部選択します。

Inspectorの一番上に、シェーダーを選択する欄があります。 そこを開き、VRChat→Mobile→Toon Litを選択します。

f:id:tomo_shi_vi:20200615182011p:plain

「Enable GPU Instancing」にチェックを入れます。

f:id:tomo_shi_vi:20191013161327p:plain

4.アバターのアップロード

別の記事にアップロード手順だけまとめてあるので、そちらを参照してください。

tomo-shi-vi.hateblo.jp

5. おわり

おつかれさまでした! テクスチャや髪型の修正など、どうしてもやることは多くなってしまうのですが、何とか対応はできるはずです!