67
トゥーンシェーダー・マニアクス 2 ―ユニティちゃんトゥーンシェーダー2.0徹底解説― ユニティ・テクノロジーズ・ジャパン合同会社/コミュニティエバンジェリスト 小林信行 2017/11/18

【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

Embed Size (px)

Citation preview

Page 1: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

トゥーンシェーダー・マニアクス 2―ユニティちゃんトゥーンシェーダー2.0徹底解説―

ユニティ・テクノロジーズ・ジャパン合同会社/コミュニティエバンジェリスト小林信行2017/11/18

Page 2: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ユニティ・テクノロジーズ・ジャパン所属のコミュニティエバンジェリスト。UnityやMayaをはじめとする各種3Dツールの研究、ゲーム制作、企画書の書き方やシナリオディレクションのノウハウの普及を通じて、Unityデベロッパーコミュニティの支援活動をしています。

自己紹介

小林信行 Nobuyuki Kobayashi

Page 3: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

「アーカイブを落としてみたけど、ユニティちゃんトゥーンシェーダー2.0

難しそう…」と思って、そのままプロジェクトを閉じてしまった人、いませんか?

Page 4: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

今回は、マニュアルには載っていないユニティちゃんトゥーンシェーダー2.0の使いこなしや、ゼロからシェーダーを設定する時のコツを紹介します!

ユニティちゃんトゥーンシェーダー2.0の技術的側面は、Unite 2017 Tokyoの

「トゥーンシェーダー・マニアクス」をどうぞ!

Page 5: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

本セッションの内容に関して、ご質問等ございましたら、Twitterハッシュタグ

#Unity道場まで、お問い合わせください!

Page 6: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ユニティちゃんトゥーンシェーダー2.0の紹介

1.

Page 7: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ユニティちゃんトゥーンシェーダー2.0とは?

ユニティちゃんトゥーンシェーダー2.0iOS/METAL/Linear Colorでの表示

Unity5.6.x以上で利用できる映像指向の本格派トゥーンシェーダー。セルシェーディングからイラスト風シェーディングまで、幅広い絵づくりが楽しめます。リニアカラーが使える環境ならば、Windows/Mac/iOS/Android/PlayStation 4/Xbox One/Switchなどの幅広いプラットフォーム上で共通の絵づくりができます。

http://unity-chan.com/ダウンロードコーナーよりUCL2.0で提供中!

Page 8: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ユニティちゃんトゥーンシェーダー2.0

+

プリレンダー作例

Page 9: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ユニティちゃんトゥーンシェーダー2.0 リアルタイムレンダー作例: C92 「 The Phantom Knowledge 」

Page 10: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

【VR✕HEARTalk】 Catch Unity-chan's HEART!

Page 11: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

【VR✕HEARTalk】 Catch Unity-chan's HEART!

Page 12: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

シェーダーとそのセッティングによる見え方の違い

2.

Page 13: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

Unityでは、PBRからNPRまで、幅広い絵づくりが可能

PBRPhysically Based Rendering

NPRNON-Photo Realistic

Page 14: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

Unityでは、ハイエンドからカジュアルまで、幅広い絵づくりが可能

High endDARK AVENGERⅢ / ネクソン

Casual神巫女 / フライハイワークス

Page 15: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

シェーダーキャリブレーションシーンのセットアップまずは共通のライティング条件下にあるシェーダーキャリブレーションシーンを作ることから始める。今回は、物理ベースレンダリング環境下で、リニアカラースペースにプロジェクトを設定した他は、近距離での影の精度をなるべく高くする設定にしてある。

リニアカラーへのセッティングは、Build Settings内のPlayerSettingsから行う。

Page 16: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ユニティちゃんシェーダー

SDユニティちゃんモデルに付属する「ユニティちゃんシェーダー」PBR環境下でも、手描きのディフューズマップのカラーを素直に表示する。スポットライトやシステムGIなどの影響は受けない。手で高品質のマップを描くことができれば、PBR環境でもキャラクター用シェーダーとして、十分に活用できる。

Page 17: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

スタンダードシェーダー(フルセットアップ)

PBR向けにすべてのマップを作成してセッティングしてみた例。PBRの定義に則って、アルベド、メタリック、スムーズネス、ノーマル、オクルージョンの各マップを割り当てた他、エミッションマップも追加で割り当ててみた。ディズニーやピクザーなどのCGアニメ風のルックになる。よくできたフィギュアやビスクドールのような質感。

Page 18: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ユニティちゃんトゥーンシェーダー2.0(イラスト風ルック)

セルシェーディングに対応できるように、なるべくシンプルな通常色マップと影色用マップを用意して、シェーディング影の部分はユニティちゃんトゥーンシェーダー2.0に任せた作例。シェーダープロパティを調整することで、ブラシ風のシェーディング影を入れることができる。

Page 19: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ユニティちゃんトゥーンシェーダー2.0(セル風ルック)

まったく同じマップを使っていても、シェーダープロパティの調整で、完全なセルルックにすることもできる。

Page 20: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ゼロから始めるユニティちゃんトゥーンシェーダー2.0

3.

Page 21: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

最新版のアーカイブは、ユニティちゃんオフィシャルホームページのダウンロードコーナーより利用できます。

ユニティちゃんトゥーンシェーダー2.0をダウンロードする

Page 22: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ユニティちゃんトゥーンシェーダー2.0のアーカイブを解凍し、中のマニュアルを読む⇒マニュアルには、日本語版と英語版があります。

使用上の注意やTipsなどが、マニュアルに書かれています。

ダウンロードしたら、真っ先にやるべきこと

Assets/Sampleフォルダ内には、シェーダー設定のサンプルがある。

Page 23: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

1. カラースペースをリニアにする⇒カラーの階調変化が正確に捉えられる。

2. シーン内のディレクショナルライトのカラーを白系にする⇒新規に作成したシーン内のディレクショナルライトは、

太陽の色を反映して黄みがかっているため。

3. シェーダーキャリブレーション用のシーンを作っておくとよい⇒Lightingウィンドウの設定も含めて、シェーダーキャリブレーション用のシーン

を前もって作っておくと、何かと捗る。ハイメッシュのスフィアもしくはシェーダーボールのモデルがシーン内に配置されているとなおよい。

ゼロからシェーダーを設定する際のUnity Editor側の準備

Page 24: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

File>Build Settings>Player Settings

Page 25: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ディレクショナルライトのカラーを白系にする

Page 26: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

Hiカラー

通常(ノーマル)

1号影(1影)

2号影(2影)

ユニティちゃん髪の毛カラー設定

アニメーション制作では、各シーン単位でパーツごとにカラー設計がなされる。

カラー設定が直接指定できる

これらのカラー設計をする、色彩設計の専門スタッフがいるのが普通。

UTS2.0の特長

Page 27: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

光源方向を考慮しつつ、強力なカラー塗り分けの制御が可能UTS2.0の特長

Page 28: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

専用マップによる明色/影色の制御UTS2.0の特長

Page 29: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

1. シェーダープロパティは、すべて設定する必要はない⇒最後までまったく触れないプロパティがあってもかまわない

2. 最低限必要なのは、通常色と1影色の指定のみ⇒まずは、シェーダーボール上で、通常色と1影色を配置してみることから設定を

始めるとよい。他の多くのパラメタは、上の2つがほぼ決まってから、設定し始めると効率がよい。

3. 沢山あるシェーダープロパティは、トライ&エラーを繰り返しながら、どんなルックがありえるのか、探索するためにある

UTS2.0のシェーダープロパティの数を見て、そのままプロジェクトを閉じてしまった人向けのTips

Page 30: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

光源方向とライトカラー、およびシェーダーによって決まる要素

GI(グローバルイルミネーション)のカラーで決まる要素

ライトのシャドウタイプで決まる要素。(キャストシャドウのカラーは、GIとシェーダーに依存する。)

ポストエフェクトで設定する要素

Page 31: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

基本的なシェーダー設定の手順左のようなシェーダーボールを新規に設定してみましょう。実際に設定したシェーダーは、キャラクターの肌表現などに使えます。肌色の設計は、結構難しいので、NPR系のシェーダーの実力をみるのにはちょうどよい課題です。

Page 32: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

新規にマテリアルを作成し、UTS2.0を割り当てる新規にマテリアルを作成して、ユニティちゃんトゥーンシェーダー2.0(UTS2.0)を割り当てます。ここでは、Toon_DoubleShadeWithFeatherを使います。次に作成したマテリアルをシェーダーボールに割り当てます。

Page 33: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ざっくりと通常色と1影色で塗り分ける

Page 34: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

1影色の領域をいい感じに調整する

Page 35: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

通常色と1影色の境界をぼかす

Page 36: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

メリハリをつけるために2影色を足す

Page 37: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

2影色をぼかし、立体感を強調する

Page 38: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

反射表現として、ハイカラーを足す

Page 39: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ハイカラーを強くする

Page 40: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

リムライトを追加してエッジを強調する

Page 41: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

アウトラインを追加し、下地のカラーに馴染ませる

Page 42: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

Unite 2017 Tokyo以降に強化された機能の紹介

4.

Page 43: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

u リムライトの機能強化(2.0.1〜2.0.2)u ハイカラーマスクおよびリムライトマスクの搭載(2.0.3)

⇒これらの機能は、主にハイライトとして使われる、リムライトやハイカラーをより細かく制御するために搭載されました。

u モバイル版の搭載とiOS/OSX METAL使用時の注意の追加(2.0.2)⇒複数ライトなど、モバイルでは重い機能を省くことで、大幅に軽減しました。⇒iOS/OSX METAL環境では、「カリングなし」の設定を使わないように、

注意を追加しました

UTS2.0.1〜2.0.3で搭載された機能

Page 44: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

アーティストは、絵を仕上げるまでの過程で、様々な効果を入れるために、手でマスクを切っていきます。左のイラストにも塗り分け用のマスクの他、ハイカラーやリムライト等の効果をみることができます。これらの多くは、光源とそれへの向きを考慮しつつ設計されるものです。

通常色/影色の塗り分けマスク ハイカラー

(スペキュラ)

リムライト

イラストに含まれる各マスク効果をさらに調整する

Page 45: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

通常色/影色の塗り分けマスク

ハイカラー(スペキュラ)

リムライト

ユニティちゃんトゥーンシェーダー2.0では、左のような部分にそれぞれのマスク効果が出ています。これらのマスク効果はリアルタイムに計算されていますので、光やモーションの変化に応じて違和感なく表示されます。

Page 46: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

リムライトに追加された、光源方向マスク光源方向

通常のリムライト(リムライトは光源とは関係なく、エッジ部分に出る)

通常のリムライト+ 光源方向マスク

通常のリムライト+ 光源方向マスク+ 光源反対方向リムライト

リムライトがカット

別カラーのリムライトが追加

Page 47: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

光源方向からのリムライト

光源方向とは反対側のリムライト

Page 48: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ハイカラーマスク&リムライトマスクの効果肌のハイカラーやリムライトがカメラの角度によっては、ひどくテカってしまうのをマスクで抑えている

Page 49: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ところで、 って知ってます?5.

Page 50: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ntnyさんが、 放送やってるよ!

京野 光平a.k.a.ntny unityjp

Page 51: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

u 2影色を「照り返し」として使うu ライトカラーの影響をON/OFFするu 板ポリを使ったパキッとした影の入れ方u Canvas/Imageを使ったフレア効果

⇒詳しくは、 をみるべし!

「UnitychanShader2.0の使い方」で紹介されたTips

ここでは、ちょっとだけ紹介…

Page 52: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ライトカラーの反映なし

ライトカラーの反映を各色でON/OFFできる

影色にのみライトカラーを反映

『もえたん』©三才ブックス

影色にのみ、淡い紫色のライトカラーを反映させている。

©カラー

Page 53: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

こういうスパンと切ったような影はどう作るのか?

こういう影はどうやって作る?

Page 54: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

左図のように、Shadow Onlyのプレーンを被写体に差し込むことで、簡単にスパンと切ったような影を落とすことができます。ただし、このプレーンは、カメラには写りませんが、背景にも同時に影を落とすので注意!カメラアングルを選びますが、顔のアップなど、背景をほぼ飛ばせるカットでは、効果的な演出ができます。

Page 55: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

2影色を照り返し的に使う

ユニティちゃんトゥーンシェーダー2.0は、光源方向を考慮しつつ自由にカラーがおけますので、本来なら一番暗い部分の2影のところにも明るいカラーを置くことできます。

このようなカラー配置をすることで、2影色を環境からの照り返しのように使うことができます。

Page 56: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2
Page 57: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ステージライティングにみる、ライトプローブの配置

6.

Page 58: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

「ステージの環境光がキャラに反映する」ことで、「キャラが空間内を移動している感覚」がより強くなる。

Page 59: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

u シェーダー側とLightingウィンドウ側の設定「GI_Intensity」と「Indirect Intensity」

u ベイク用ポイントライトの配置

u ライトプローブの配置

システムGIによる環境光をキャラクターに反映するには?

Page 60: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

シェーダー側:GI_Intensity

0以上に設定することで、UnityのLightingウィンドウ内で管理されているGIシステムに対応する。GI_Intensityが1の時、GIの強度が100%となる。

Lighting設定側:Indirect_Intensity

リアルタイムライトおよび焼き付けられたライトマップに保存されたIndirectライトの明るさを変化させる。1より大きな値はIndirectライトの強度を増加させ、1よりも小さい値はIndirectライト強度を減少させる。この2つのパラメタの掛け算として、シェーダー側で指定

するキャラクターのカラーに「環境からの補助光(カラー)」として最終的に加えられる、GIの強度が決まる。

Page 61: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ポイントライトの配置。ステージ上のプロップの配置を参考に、各カラーライトの位置を決めていく。

Page 62: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

u ベイク用ポイントライトは、左図のように、各ライトの領域が互いに重なり合いながら、ステージ上をまんべんなく、 カラーで空間を分割するように配置する。

u 配置する高さも、カラーライトごとに変えることで、リズムを付ける。

u 各ライトのインテンシティは、青系のライトは強めに、黄〜緑系のライトは抑えめにする。

Page 63: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ライトプローブの高さは、ユニティちゃんの背の高さを参考に、広さはユニティちゃんの動き回る範囲を参考に、ステージ上に配置していく。

Page 64: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

ポイントライトの明るさとカラー情報が、ライトプローブにベイクされたステージ。この中をキャラが移動することで、キャラシェーダーにGIが反映される。

メイン光源のリアルタイムディレクショナルライト側にも、Y軸の首振りとインテンシティ変化のアニメーションが付いているので、ライトプローブによる事前計算のGIと組み合わさって、リアルタイムが1灯しかなくても、様々なライティング状況を楽しめる。

Page 65: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

よい作例ができたら、#unitychanでツィートしてください!

最後に

Page 66: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

UTS2.0.3で搭載された「リムライトマスク」なども使いこなしていて、各パーツの質感もきちんと出ているステキな作例です。

暁ゆ~き @AkatsukiWorks さんの作例

https://twitter.com/i/moments/856781628466528257

Page 67: 【Unity道場スペシャル 2017京都】トゥーンシェーダー・マニアクス2

Thank You!