yupaがエンジニアになるまでを記録するブログ

FjordBootCamp (フィヨルドブートキャンプ ) で学んだことや、趣味のVRに関するメモを記録していきます

VRoid studioで作ったモデルをVRChatにアップロードする際の注意点

うにてぃ?しぇーだー?なにそれおいしいの?状態の僕がごにょごにょしまくってVRoidをVRChatにアップロードすることに成功したのでその時にハマった点を記録しておく。

アップロードの手順については既に先駆者様(神)の記録があるのでまずはそちらを参照されたし。

mayorum.hatenablog.com

環境

使用したアプリ

  • VRoidStudio-v0.2.4-mac
  • Unity 5.6.3p1
    (VRChatにアップロードするためのバージョン)
  • Unity 2018.2.4.f1
    (VRoidで制作したVRMファイルをFBXファイルに変換するためのバージョン)

使用したunitypackage

OS

VRoid Studioとは?

vroid.pixiv.net

RPGのキャラメイク感覚で3Dモデルが簡単に作れちゃう神アプリ。これで作ったモデルをVRChatにアップロードできるようにいい感じにしていく。

VRoid 制作時の注意点 - ポリゴン数は2万ポリゴン未満にする

VRChatで使用できるモデルは2万ポリゴン未満と定められている。VRoidの場合、髪を充実させてしまうと2万ポリゴンを超えてしまう。ポリゴン数を減らす方法としては、

  • ヘアパラメーター -> 滑らかさの値を小さくする
  • ヘアパラメーター -> 太さ倍率の値を大きくし、髪の本数をへらす
  • 断面形状を底なし三角形にする

等の方法がある。

参考 :

ちなみに僕が作ったモデルは、

  • ヘア × 8 の ブロージャルヘア × 3
  • 滑らかさ 7
  • 断面形状 底なし三角形
    で約14500ポリゴンだった。(VRChat SDKの表示)

f:id:yu8as:20180824225541p:plain f:id:yu8as:20180824212223p:plain

髪の裏側が透けないようにする

Unityでモデルを読み込んだ際、髪の裏側が透けてしまうことがある。こんなふうに。 f:id:yu8as:20180824223351p:plain

デフォルトでは、1枚もののテクスチャ(?)の裏側は透ける設定になっているらしい。
以下のように対処した。(シェーダーにcubedparadoxを使用している前提での例です)

  1. Asets -> Materialsフォルダを開く
    f:id:yu8as:20180824223416p:plain
  2. Materialsフォルダ内のbuffer#00を選択、ShaderをFlat Lit Tone Liteにし、Culling ModeをOffに f:id:yu8as:20180824224348p:plain

そもそもシェーダーとは、Culling Mode をOffにするとは・・・?

「シェーダとは何なのか」を自分の言葉でまとめてみる - 渋谷ほととぎす通信 【Unityシェーダ入門】Unityのシェーダで遊んでみよう - おもちゃラボ

3Dモデルをごにょごにょ(色を設定したりライティングしたり)して画面に表示するプログラムのこと。

んで、Culling Mode とは、

カリングは、視点から見えない反対側を向いたポリゴンをレンダリングしないという最適化手法です。すべてのポリゴンは表と裏側があり、オブジェクトのほとんどが閉じている事実を利用します。
 
ShaderLab :Culling と Depth Testing - Unity マニュアル

今回作ったモデルの場合、反対側を向いたポリゴンが見えちゃっていてそれを最適化した結果透けてしまっていた。なのでこの最適化をOffにすることによって裏側もレンダリングされるようになる。

Culling Mode を Offにした結果 f:id:yu8as:20180824231048p:plain

※ この方法、実はあんまり良くないらしく、裏側にもテクスチャをあてるのが正しい対象方法だそうです・・・(わからん

やたらなで肩になるのを防ぐ

VRoidからエクスポートしたFBXを、ボーンの座標を一切変更せずにVRChatにアップロードするとこのようにやたらなで肩になってしまう。
f:id:yu8as:20180824234505p:plain

対処法

ShoulderとUpperArmを上げれば良いのか・・・?

とりあえずやってみた

  1. Asets -> FBXのモデルを選択、右側のInspector -> Rigを選択、 Configureをクリックf:id:yu8as:20180825000307p:plain
  2. 以下の4 箇所のY座標をいい感じに上げる。値を変えるとモデルのボーンの位置も変わるのでそれを見ながら値を変えていく(塩梅がわからない・・・)
    • J_Bip_L_Shoulder
    • J_Bip_R_Shoulder
    • J_Bip_L_UpperArm
    • J_Bip_R_UpperArm

f:id:yu8as:20180825001239p:plain

結果

多少マシになった!!!
f:id:yu8as:20180825001701p:plain

まとめ

まずは以上3点、自分がハマった点をまとめた。VRoidをVRChatで使用する際の参考になれば幸いです。

f:id:yu8as:20180825004255p:plain

このちくわ、弾力とか質感が現実のそれだった(すごい)。
3Dモデル「ちくわ」 - bironist - BOOTH(同人誌通販・ダウンロード)

次やること

  • 表情をつける(デフォルトだとキーに表情が割り当てられていない)
  • 走るモーションがキモいのでなんとかする
  • 腕が胴体すり抜けるのをなんとかする(Dynamic Boneというのを使うのか・・・?)