VRoidのUnityでのテクスチャの設定はどうしたらいい?
シェーダーをMToonにしてMatCapを設定するとVRoidっぽくなるって本当?
こんな疑問に答えます。
僕はVRoidで漫画が作れるiPhoneアプリComicamを開発して公開中、自作の3Dモデルは400DL以上されています。
そんな僕が解説していきます。
作業環境
VRoid Studio 0.5.4-p2
Unity 2018.2.10f1
UniVRM-0.51
VRoidのUnityでのテクスチャ設定方法【シェーダーの種類・透明度の選択がポイント】
VRoid StudioからVRMをUnityにインポートする方法・下準備はこちら。
» VRMファイルをUnityにセットする(VroidモデルをCLIP STUDIOにインポートする方法【VRM/FBX】)
Blenderで編集してからからUnityにインポートする流れはこちら。(FBX形式)
» VRoidの着せ替えの方法を解説【他ソフトでの利用も可能です】
テクスチャのファイルを用意してUnityにインポートする
まずはVRoidのテクスチャのファイルを用意する必要があります。
VRMをUnityで変換してテクスチャを生成する
VRoid StudioでVRMで書き出しただけではテクスチャファイルは出現しません。
VRMを一度UnityでFBX Exporterを利用してFBX形式で書き出すと、テクスチャファイルが生成されます。
詳しくはこちらの記事に書きました。
» FBX形式でエクスポートする(VroidモデルをCLIP STUDIOにインポートする方法【VRM/FBX】)
テクスチャをフォルダに整理する
上のようにテクスチャをフォルダにまとめます。
Blenderで作業していた場合はFBXファイルを移動させてきて、同じフォルダに入れます。
(今回は別階層にフォルダにまとめています)
マテリアルを自動適用する
Modelを選択して右サイドバー>Selectタブ>Materialタブを開きます。
Extract Materialsを押す
押すと自動でマテリアルが入ってくれるのでApplyを押します。
ただしテクスチャの設定や透明度などの細かい設定は反映されないので1つ1つ手動で訂正していきます。
Blender側でテクスチャを設定しても反映はされないようです。
全パーツ共通の設定
- シェーダーをMToonに変更
- Lit Color、Shade Color両方に該当テクスチャを設定
- Lit Colorの色を白(#FFFFFF)に変更
- Shade Colorの色を透明に変更
- MatCapのテクスチャ(Mat系の名前の該当テクスチャに設定)
- Normal Mapのテクスチャ(Normal 系の名前の該当テクスチャに設定)
このように全パーツを1つ1つ変えていきました。
少しめんどいですね、5-10分はかかります。
(もっと効率のいい方法を模索中)
丸ボタンを押してテクスチャファイルを選択
小さい二重丸ボタンを押すと変更ウィンドウが開くのでそこから選択します。
このウィンドウにテクスチャファイルが出ないときはテクスチャファイルを置く場所・階層が悪い可能性があります。
個別に設定した部分を書いていきます。
服のパーツ
自分で着せ替え設定した服のバーツなどです。
MatCapのテクスチャをMatcap_Rim_01に変更。
Normal Mapは空欄のままです。
体のテクスチャ(Body.baked)
体のテクスチャはMatCapのテクスチャをすべてMatcap_Rim_01に変更しました。
Normal MapはBody以外はShader_NoneNormalのままです。
ズボン(M00_001_Bottoms_01)
トップス(M00_001_Tops_01)
アクセサリー(M00_001_Accessory_01)
髪の毛のベース(M00_000_HairBack_00.texture)
身体(M00_001_Body_00)
Normal MapはM00_001_Body_00_normalになっているか確認
靴(M00_001_Shoes_01)
顔のテクスチャ(Face.baked)
顔のテクスチャはMatCapのテクスチャはFace以外はMatcap_Rim_01に変更しました。
Normal MapはShader_NoneNormalのままです。
レンダリングタイプは下記の通り一部Transeparentで他はOpaqueです。
目のエクストラ部分(M00_000_EyeExtra_01_EYE 1)
レンダリングタイプをTranseparentにする。
黒目(M00_000_EyeIris_00)
レンダリングタイプをTranseparentにする。
白目(M00_000_EyeWhite_00_EYE 1)
口(M00_000_FaceMouth_00)
顔の肌(M00_000_Face_00)
瞳のハイライト(M00_000_EyeHighlight_00)
レンダリングタイプをTranseparentにする。
アイライン(M00_000_FaceEyeline_00)
レンダリングタイプをTranseparentにする。
眉毛(M00_000_FaceBrow_00)
レンダリングタイプをTranseparentにする。
まつげ(M00_000_FaceEyelash_00)
レンダリングタイプをTranseparentにする。
髪のテクスチャ(Hair001.baked)
髪のテクスチャはMatCapのテクスチャをすべてMatcap_RimHairに変更しました。
Normal MapはF00_000_Hair_00_nmlに変更しました。
F00_000_Hair_00_01
F00_000_Hair_00_02
VRoid Hubにアップロードして確認する
テクスチャの設定が終わったら、UniVRMを利用してUnityでVRMとしてエクスポートします。
VRMをVRoid Hubにアップロードにしてテクスチャの状態を確認できます。
VRMをVRoid Hubにアップロードする方法はこちら。
» VRoid Hubでアップロードする方法【モデルの追加の仕方も説明】
VRoidのUnityでのテクスチャの応用【項目の意味を理解してカスタマイズする】
先ほど変更したテクスチャの項目の意味を解説していきます。
テクスチャの設定項目の意味
テクスチャの設定項目はたくさんありますが、とりあえずVRoidで重要だと思う項目は以下の通りです。
シェーダー(Shader)
シェーダーとは陰影の処理をするプログラムのことです。
たくさんの種類がありますが、モデルを使用するアプリでも適用できることが大事なので標準的なものを使うのがおすすめです。
MToon
UniVRMに用意されたアニメっぽいシェーダーです。
VRoid Studioでの表現に一番近いと感じます。
レンダリングタイプ(Renderring Type)
Opaque(オペーク)
デフォルトの不透明です。
Cutout(カットアウト)
100%不透明か100%透明化の2つにくっきり分かれるタイプです。
穴の空いている表現に向いてます。。
境界の数値も調整可能。
Transparent(トランスパレント)
プラスチックやガラスのように透明度を微調整したい素材に便利。
反射やハイライトも活かしたままにできます。
Fade(フェード)
反射やハイライトも全部含めて透明にできるので、動画的にフェードアウト演出する時に使います。
VRoidのまつげなどの顔のテクスチャはTransparentを選ぶといい感じにできました。
主色(Lit Color)
光が当たる部分の主色のテクスチャ・色・透明度を設定できます。
VRoid Studioと同じ仕組みなので、同じように設定すればいいと思います。
陰色(Shade Color)
光が当たらない陰の部分のテクスチャ・色・透明度を設定できます。
デフォルトではピンク色になっていますが、変えた方がいいと思います。
何色に変えるのがベストかは研究中です。
(#000000黒色がベストか?)
マットキャプのテクスチャ(MatCap・光源環境によらない表現)
MatCap(マテリアルキャプチャ)シェーダは、照明や反射を含む完全なマテリアルです。
それらは、カメラを基準としたすべての頂点の法線方向に色を定義することによって機能します
https://help.sketchfab.com/hc/en-us/articles/115003065883-Materials-MatCap-より翻訳引用
MatCapとは光の加減が設定してあるという意味でいいと思います。
光とか細かい設定をしなくても、素材の形に反応して陰をつけてくれます。
VRoidで全パーツが黄色っぽく光が当たったように表現されるはこれの効果ですね。
設定した方がVRoidっぽくなります。
法線マップのテクスチャ(Normal Map)
法線マップは凹凸効果を表現できる特殊な種類のテクスチャです。
ポリゴン数を節約しながら、溝などの細かい凹凸を光の効果も含めて表現できます。
VRoidでもNormal Capの名前でテクスチャが排出されます。
その他の数値
その他は今回はとりあえずそのままの値でやりました。
画風(萌え絵風・ジョジョ風など)にこだわりたいときに応用技として調整していく感じだと思います。
この記事の設定通りにVRMをVRoid Hubにアップロードしたのがこちらです。
https://hub.vroid.com/characters/784531345666183244/models/1238418011616972791
参考:https://docs.unity3d.com/jp/current/Manual/StandardShaderMaterialParameters.html,https://dwango.github.io/vrm/univrm/shaders/mtoon/
というわけで今回は以上です。