はじめに
今回はShaderGraphを使ってゲームボーイ風の色合いを作ってみる記事になります!
先日こんなツイートをしてみました。
ShaderGraphのゲームボーイ風の奴を進化させてみましたー#unity pic.twitter.com/VuSbbMhDi8
— はなちる@ゲーム制作 (@hanaaaaaachiru) December 9, 2019
この色合いに注目してみていきたいと思います。
仕組みについて
ざっくりと調べたところ、ゲームボーイは画面を4色で表現しているみたいです(もしかしたら間違っているかも)。
というわけで色分けをしなければならないのですが、そこで用いるのは前回の記事で紹介したグレースケールです。
www.hanachiru-blog.com
グレースケールにより色(RGB)から色の濃淡の明暗(0~1)に変換し、0~0.25
,0.25~0.50
,0.50~0.75
,0.75~1
にそれぞれ色を割り当てます。
ShaderGraphで表現する
さきほどの仕組みをシェーダーグラフのノードで表現してみます。
グレースケールについては前回の記事に書いたので、是非そちらを参照してみてください。
www.hanachiru-blog.com
グレースケールのノードはこちら↓↓
次にグレースケールが0~0.25
,0.25~0.50
,0.50~0.75
,0.75~1
の箇所だけ抽出します。
そのためにstep
ノードを用いましょう。
step
ノードとは、Edge
に入力された値以上の時は1,それ以外は0を出力するノードのことです。
これを使って以下のようなノードを組んでみてください。
さいごに
最初に貼ったツイッターの奴は、これらのノードにテクスチャを動的にカメラが描画したものに変えて、モザイクをかければできます。
暇があれば詳細を書きたいと思います。
では。