UnityのHDRP(High Definition Render Pipeline)を使ったいい感じのキャラクターの表現
この記事は,VTuber Tech Advent Calendarの16日目の記事です.
昨日の記事 :
自己紹介
とぐちです.
学生で,Unityインターハイ2017本戦出場,最近ではVTuberハッカソン石川・福井会場で最優秀賞を頂きました.
概要
綺麗なVTuberがつくりたーーーい!!!
最近UnityのHDRPを試していて,ある程度キャラの見た目をいい感じにできるようになったので知見を共有します.
実行環境
- Windows10 64bit
- Unity 2018.3.0b7
プロジェクトの作成
プロジェクト作成時,Templeteから「High-Definition RP(Preview)」を選択します.
プロジェクトを作成すると,デモのシーンが表示されています.
ここから,HDRPを使えるように設定していきます.
High Definition Render Pipeline Asset を作成します.HDRPを使うときの設定がこれに含まれています.
このAssetをGraphics SettingsのScriptable Render Pipeline Settingsにセットします.これで,このHDRP Assetがこのプロジェクトに適用されます.
シーンの設定
シーンの設定は他にも書いてくださっている方がいるのでざっくりと説明します.
シーンを作成するとなにもない灰色のシーンになっているので,HierarchyからScene Settings, Density Volumeを作成.
Scene Settings の Visual EnvironmentのFog TypeをVolumetricに変更.
これで,Volumetric Fogが適用された状態のシーンが出来上がりました.(モデルはデモシーンから拝借)
Spot Lightの軌跡が表示されています.
CameraのPost Processing Stackの設定も通常通り行います.
これで下準備は終了です.
キャラクターのMaterial設定
ここから本題に入ります.
サンプルのモデルは,「Tda式初音ミク・アペンド Ver1.10」を利用させていただきます.
通常の手順でインポートし,Prefabをシーンに配置します.
お馴染みのマゼンタでミクさんが召喚されます.
これはHDRPを設定しているプロジェクトでは通常のShaderが利用できないことが原因です.
そこで,HDRPのために用意されているShaderへの差し替えを行います.
ミクさんのすべてのMaterialをHDRenderPipeline/Litに変更します.
この状態だとテクスチャがアタッチされていないので,InspectorからBase Colorにテクスチャをアタッチしていきます.
適宜,Alpha Cutoffの設定も行っていきます.(目のハイライトなど,Alphaで切り抜くものに適用する)
質感を見ながらMetallic, Smoothnessの設定なども行っていきます.
テクスチャの設定が終わりましたが,この状態だと印影が強く,見栄えがよくありません...
SSS(Subsurface Scattering)の適用
ここがキャラクターをいい感じにする肝です.
Subsurface Scatteringという技術を利用します.これは,半透明な物体の内部の光の散乱をシミュレーションするものです.
SSSを利用するために,Diffusion profile settingsというものを作成します.
今回はサンプルで用意されているものをベースに使います.
このSSSSettingsを先程作成したHDRP AssetのDiffusion Profile Settingsにアタッチします.
これでSSS Settingsに含まれているProfileが利用できるようになります.
SSSを適用したいMaterialのMaterial TypeをSubsurface Scatteringに変更します.
また,Diffusion Profileに利用したいProfileを設定します.
これだけだと物足りないので,SSSSettingsのProfileをカスタマイズしていきます.
こんな具合に,SSSSettingsに含まれているProfileを調節します.
具体的には,Scattering Distance, Transmission tintのColorを調節,Intensityを上げています.
その他のProfileもルックを確認しながら調節し,適用したいMaterialにセットしていきます.
ちょっと調整不足ですが,最終的にはこういったルックに仕上がりました.
SSS適用前と比べるとかなり見れるようになっていると思います.
このモデルは,肌・髪・その他で3つのProfileを分けて設定しています.
ひとまず完成です!!!
最後に
HDRPを使うと簡単に(Unityっぽくない)いい感じの絵を作れるので,背景含めHDRPでVTuber作ると綺麗なVTuber作れるんじゃないかなーと思います.
ただし,現在HDRPはVRに対応していない(今後対応予定)ようなので,Vive+Final IKとかでやる場合はちょっと工夫が必要かもしれません(いろいろやりようはある).
明日は,@matsu_vrさんのVtuberの方の遠隔登壇かトークショーをやる時の話です.
最後に,公式のHDRPのクイックスタートがとても参考になったので貼っておきます.