もう「ぼくが持ってるUnityと違う…」ではない!HDRPで劇的にルックを変えよう!~部屋とかキャラのセットアップをしてみる。~
Gotanda.unity #10
2019/1/23 @ 株式会社アカツキ
このLTから得られる知見
https://gyazo.com/567ee15d81875f8f566b024ae0dd11c1
そこはかとなくUnityを使ってHDRPプロジェクトを開始できるようになります
本内容を元に手元PCでプロジェクトに触れば、今すぐHDRPのシーンを作成できます
誰が発表するのですか
https://gyazo.com/e61b8fd5619d86c70bbfe55baf872412
Twitter: @songofsaya_
https://gyazo.com/224c849584ee85c9b9cc57fd4daab8bf
今日はごたユニに参加するために五反田から電車に乗って移動してきました。
もくじ
HDRPとは?
さっそくUnity Hubを開いてはじめる
各種パッケージをインストール・アップデートする
Lighting Settings
Player Settings(Other Settings)
アセットをインポートしてからマテリアル変換を行う
PBR? / NPR?
キャラのシェーダーセットアップ
影
ガラス球を置く
鏡を使う
Shader Errors? Any Errors?
VRでHDRPコンテンツを楽しむ
できあがり
Conclusions
HDRPとは?
https://gyazo.com/78974a845e9996a4f4b72746c30942d6
お手軽に今までと見た目をガラッと変えられるよ。
軽率に始めてみよう!
TOYOTA LEXASがUnityのHDRPで走る!
https://gyazo.com/c426e4687b706a8a931f22525f8f1eeb
The Book of the Dead
https://gyazo.com/29c7f367ad304fe5df8e45a4fa733016
Yggdrasil
https://gyazo.com/2575bc1737ae9ef15eb2affd19996d2e
HDRPはもはや技術デモ映像としてだけ見るものではありません!
今すぐ自分のプロジェクトでHDRPの見た目を実現してみよう!!
さっそくUnity Hubを開いてはじめる
お手元のPCでUnity Hubを起動してください!!!
プロジェクトテンプレートを選択する(HDRP)
https://gyazo.com/9a2d1d61c561e8c25b814ca5c209affc
今はPreviewだが、いずれはガンにも効くようになる。
UE4なのかBlender EEVEEなのかMMDなのか、それぞれのルックが特徴的な未来が来ると楽しい。
※重要
既存のプロジェクトをHDRPに移行したい場合は、必ずプロジェクトテンプレートからプロジェクトを作った上でアセットをコピーして作ること
各種パッケージをインストール・アップデートする
わりとこれはむつかしかったりします。バージョンの組み合わせがマズいと大量の赤文字を見ることになったりします。
https://gyazo.com/d499cbe1b1dadff66eded99af145d04e
最近は「パッケージマネージャーはいじらない」でいけるのでは。
Unity2019.1.0a14ではパッケージマネージャーをいじらなくてもHDRPが使えるようです。
バージョンまとめ
Unity 2019.1.0a14
HDRP Preview-5.2.3
https://gyazo.com/160e11ff11f3b84b8048e3e26ad35634
Verifiedのマークがついているパッケージも登場してきた模様。
SRP Core、HDRP、Shader Graphといったあたりのバージョンが同じことに注目。
みんな大好きVFXもバージョン番号がそろっています。
https://gyazo.com/431b9dbfc9ece9ca47bc8f87276551ae
これらのパッケージは関連性が高く、足並みを揃えて開発されている様子が伺えます。
パッケージバージョンについての補足
2019/1/26
スクショを見るとわかるけれど、実はLWRPはUnity 2019.1.0a13からPreviewが外れている。ただ、安定しているかどうかは検証はしていない。
Unity公式のDiscordでSRP部屋でやり取りがされていたけれども、現状でSRPはパッケージマネージャーからバージョンをいじるのはマズそう(ここで言っているパッケージは、SRPやHDRPだけではなく、ShaderGraphやVFXも同様だと思われる)。もし最新のパッケージを使いたいなら、GitHubから持ってくるのが得策。
そうでないなら、パッケージマネージャーは「いじらない」がどうやら正解らしい。
Lighting Settings
https://gyazo.com/0eb7164acf7c76965b5205160c1864fd
https://gyazo.com/ea72fa4d46b03302da917f91a21407b5
GPUでライトをベイクできます。Previewと出ていても軽率に選択していきましょう!
良いGPUを積んでいるマシン向け
例によってAuto Generateのチェックは外します。
skyboxの変更はLighting Settingsからなくなっていて、Volume Settingsでプロシージャルスカイのパラメータを調整できるようになっている。
https://gyazo.com/94aba2509b2d51eec0db46f00f974ed0
スカイボックスを自作できるのか軽く調べてみたところ、ForumによるとShaderGraphでスカイボックスのシェーダーを作ることはできない模様
Player Settings(Other Settings)
https://gyazo.com/ec6b4a29dc4a47c1da5859d91e0a3e08
https://gyazo.com/1aaee87636822464e08dbfe463185eaa
もし.NET 3.5が選ばれていたら、4.xに変更しましょう。 (確かShader Graphのバージョンを上げると3.5だと怒られた記憶)
Unity 2019.1.0a12までデフォルトが.NET 3.5でしたが、a13では4.xがデフォルトになり、3.5がDeprecatedになりました。
Unity2019.1.0a14だと以下の操作は必要ないかも。(未検証)
Unity2019.1.0a13の場合、.NET Framework 4.7.2をインストールする。
https://gyazo.com/c440326d0042b5ddf1ebc00dcf61d6f0
https://gyazo.com/20d2615fdfcaa7df9ce8b3c611e3d824
[!-- と、いろいろインストールしたりしてみましたが、a13ではHDRPをうまくうごかせなかったのでa12でいきます。]
…と、思ったけどβの古いのがHubからもダウンロードアーカイブからも落とせないので、がんばってa13でいきます。 エラーメッセージが止まらない!たすけて!!
https://gyazo.com/fb7c8b839abc90a5df8c8007a39a414b
既存のプロジェクトをコピーして持っていくとこんなありさまになります。
Unity Hubでテンプレートから作って、必要なアセットをコピーして追加するやり方でいきましょう。
アセットをインポートしてからマテリアル変換を行う
部屋やキャラをプロジェクトに取り込む
HDRP用にマテリアル変換を行う
https://gyazo.com/135f2dd6f26fa9fe6107678f74279c2a
HDRP向けにマテリアルを一括変換できます。
ピンクになったら手動でマテリアル設定しましょう。(手作りしたシェーダーで発生します)
※キャラには自動変換でまったくマテリアルが当たらず白い石膏像になっていましたが、Unity2019.1.0a14ではかなりいいかんじにマテリアルが設定されるようになりました
PBR? / NPR?
HDRPはもちろんフォトリアルなアセットとの相性が良いです。
NPRなキャラでもマテリアル変換 + Litシェーダーの設定でルック調整は可能。
(NPR向けにセットアップされたキャラはNPRで見るのが一番です…今回はHDRP向けの説明ということでご容赦を)
キャラのシェーダーセットアップ
SSS!
肌にはディフューズプロフィールを割り当てましょう。
LitシェーダーでSSSを設定するには、Material TypeでSSSを、Diffusion ProfileでSkinを選びます。
https://gyazo.com/7c5aa71faa294a44b71b6b44823a60b4
髪をCull Offする
髪や服などで、「どちらから見ても描画される」ようにするにはDouble Sidedのチェックを入れます。(Cull Off)
https://gyazo.com/b735cc0ae938d2008fbac61e65953abb
目のハイライトや頬のチークにデカール、またはTransparent(透明)を使う
Transparentについては後のガラス球の説明を参照。
※HDRPでTransparentを使うと、「光の影響を受ける透明な板」のようになるので、向いていない場合もあります(頬のチークがキラキラ光る板になる)
影
デフォルトでは影のギザギザが激しい。
2箇所の設定で影の解像度を上げる(HDRPRenderPipelineAsset.assetとライト)
https://gyazo.com/48b8f2cbc56a69107c927c9a1857bca0
https://gyazo.com/f703c82b047d1608050752f9da1e1941
https://gyazo.com/7ae9de0cfe177538b7845fda1b7509ee
HDRPRenderPipelineAsset.assetとライトの両方で影の解像度を上げると、影のギザギザが緩和されます。
https://gyazo.com/dcd9f0f37fc2049a102b1796d4bbaf2a
ライトのバイアスを下げるとシャドウアクネが出る。Biasはある程度まで数値を上げましょう。(デフォルトでまずは良さそう)
Max Requests
ポイントライトは「重い」
https://gyazo.com/6ffa0ed7eb1ab13bc6064690da6e945c
ガラス球を置く
https://gyazo.com/db1dc0d6c4264739bcb276a7e3a75a05
https://gyazo.com/0f43a7634bc269cea3a84cd9c7d229d9
Translucentのマテリアルタイプを選び、Transparency Inputsを調整してガラス球のような表現ができる。
Base Color + Opacityのパレットをクリック: A(アルファ)を0に変更 ここは見落としやすいので注意
Surface Type: Transparent
Material Type: Translucent
Transparency Inputs -> Index Refraction: 1.05前後(ルック確認しながら調整)
鏡を使う
https://gyazo.com/ec7320130c512038cda3671fd587a90d
Mirrorというオブジェクトが利用できる。
https://gyazo.com/98d2a529b14f718069bb9ae3105aa8ac
Shader Errors? Any Errors?
Unityを再起動すると画面が白い
https://gyazo.com/cfd85478248b832af54d0e9461f37d87
落ち着いて再生ボタンを押せばOK。いずれFIXされるハズ。
エラーの時には?
ピンクオブジェクトには手動でマテリアル設定
Package Managerからバージョンを変えてみる(SRP,HDRP,ShaderGraph,Post-processing)
Unity Forumで情報を探してみる
Unity公式のDisacordにはrender-pipelineチャンネルがあるので、ディスカッションするのも良いかもしれません
VRでHDRPコンテンツを楽しむ
Oculus Rift、HTC VIVE Proはビルドして動作確認済
重いかも
Oculus (Standalone) 1.29.0はHDRPに未対応の模様
VIVEの人もRiftの人もOpen VR 1.0.2を使いましょう。
Android系は残念ながら
できあがり
(ここにいいかんじの絵を貼ります)
ぼくが持ってたUnityと違う!
Conclusions
プロジェクトをUnity Hubからはじめる
NPRなキャラでもHDRP上で調整はできる
SSSは重要
ガラス球、鏡、平面のリフレクションプローブ、リアルタイムのエリアライトなどいろいろ使えます
Unity ForumやDiscordの公式チャンネルも覗きにいってみましょう
バグと思ったらがんばってIssue Trackerを探しましょう
新しいバグの場合はIssueをアップすることを検討しましょう
Forumではあなたのフィードバックをお待ちしております!!
まだPreviewでW.I.P.のためよくわからんが多発しますが、それでも今すぐやる価値のあるルックが実現できます!
ご清聴ありがとうございました
Special Thx to..
かふじさん : モデルデータをスライド中で使わせてもらいました
kaiwareさん : Unityでスライドを作るためのプロジェクトを利用させて頂きました
ドジっ娘悪魔っ娘VTuberリリスさん : HDRPをVRで利用するための設定について情報交換させて頂きました
©UTJ/UCL
資料
オレオレリンク集
さやちゃんぐbotブログ HDRP 3部作
Unity公式ブログ
Volumetric Lighting
Unity Forum
Unity Official Discord Channel
マスクマップの作り方
ブログ
おまけ
https://gyazo.com/d265d512d146f85c95431dac596d6d3c
https://gyazo.com/482637ad5e0e5c27bb6964d272a86c94
https://gyazo.com/45f2dbd05befc1cd2f62ac27b6f8d15f
https://gyazo.com/c7cf245f8bf75f62902c457fb6ae014a
https://gyazo.com/4f9e44fca5198590ff0cad92acc2d3fc