【レポート】ShaderForgeをつかって学ぶシェーダー入門 【Unity道場】

先日渋谷で開催された「Shader Forge 102 〜ShaderForgeをつかって学ぶシェーダー入門〜」へ行ってきました。 UnityAsset「ShaderForge」の勉強会2回目です。 講師の小林さんの話がとてもわかりやすいので、この回楽しみにしていました。 【Unity道場14】Shader Forge 102 〜ShaderForgeをつかって学ぶシェーダー入門〜 カスタムライティング/トゥーンシェーダー編 - dots. [ドッツ]

IMG 1778

ShaderForgeをつかって学ぶシェーダー入門

シェーダーの書き方、考え方を勉強。 本日はカスタムライティングを学んでいきます。 ノードの機能、パターンを見ていく。 シェーダーに関しては、デザイナーの方に作って欲しいが、コードベースのシェーダーを書くのは難しい。 ノードベースの場合、「Maya」 「3dMax」の ShaderFxとかにも応用ができるかも。

絵作り

シェーダーのGPUで処理される、画像処理の手順を示したスクリプトC#とは考え方が違う(CPU と GPU) 並列処理ができるのがGPU。 全部並列処理で書かれているので、Vertexを取得を順番ではなく、一気に取得することができる。 シェーダーを使えば同じTextureを使っても表現が違う。

IMG 1779

今回の「shaderForge」は信頼度が高い。更新も頻繁にされている。

IMG 1781

カスタムライティングとは

Unity - マニュアル: サーフェイスシェーダーでのカスタムライティングモデル

Shaderforge1030 1

影を落としたい時には LightAttenを使う。 頂点を目印に影ができる。

スクリーンショット 2016 10 30 22 16 07

このままだと影が荒くなってしまう。

LambertShader

LambertとはテカリのないShader。

スクリーンショット 2016 10 30 13 29 18

Dotproductノード(内積

IMG 1780

光線と法線の内積は、オブジェクトへの光の当たり具合を知ることができる。 ノードのオプション

  • standerd 何もせず
  • positive マイナス計算しない
  • negative プラス計算せず
  • ads 絶対値
  • normalized 1 ~ 0で判定(-1が0になる)

Half Direction は反射(スペキュラー計算)で使う。 これを使って Half Lambert 通常のLambertは、影の入り方がキツイので、もう少しゆるくするのがHarfLamberd

Halflambert

Blinn-Phingモデル

Half Lambertにスペキュラを足す。

Halfdir

Powerノード 値の累乗。 絞込(明るい部分)ができる。

トゥーンシェーダー

ToonColorShaderとToonLineSahderと別れている。

CompMask:2次元ベクトルを作成する。

ランプシェーダー

傾斜シェーダー。 色がパキッと分ける。 Stepノードと Lerpノードを使う。

LampToon

環境光

AmbientColor:周りの色に影響されるかどうか。

ambientcolor

FallOff

Texture設定で wrap modeをclampにしないと変な所に色がつく場合がある。

falloffsetting.png

Costomlightingではなく Emissionに繋いでも大丈夫。 ToonShaderの場合だとEmissionの方が良いのかも。

costomlighting

ToonLineShader

マテリアルベースのアウトラインは、軽いが弱点がある。

OutLine

交差線・クリース線が出ない。 直接テクスチャに書き込む方がよいときもある。

その他アウトラインに関しては、イメージエフェクトのポストエフェクトでも出せる。 PencilはFPS出ないのでゲームで使うのは難しいらしい。 Unityでステンシルを用いたアウトライン表現 - 太郎Work

Unityちゃんシェーダー

Normalの影響を与えたい、与えたくない。これをswichで分けている。 Falloffを使っていない。 グラデーションはシェーダーで作っている。 影を頂点カラーを使っている。(テクスチャベース)入り抜きのためのテクスチャを用意。 Comp maskでデータを取り出している。

スライド

スライドが公開されていますので、こちらを見たほうがためになると思います。

感想

今回PCしか持っていってなく、ShaderForgeを動かすのがトラックパットだけでは操作がとても面倒くさかった。 小林さんも言ってらしたのですが、マウス(3ボタン)がないと生産性が全然違うとのことで、次はマウスを持参しようと思いました。

今回は、前回の入門編と違って、私がやってみたかったトゥーンシェーダーの作り方だったので、とても興味深く聞くことができました。 実践できる部分も多いと感じたので、今後手を動かして実装物を作成していきたいです。

10日で学ぶUnity 5 2Dゲーム入門 カジュアルゲーム制作で楽しく覚えよう!10日で学ぶUnity 5 2Dゲーム入門 カジュアルゲーム制作で楽しく覚えよう!
株式会社フーモア Unity部

エムディエヌコーポレーション 2016-11-15
売り上げランキング : 487129

Amazonで詳しく見る