マテリアルによるトゥーンアウトライン研究(2) ポストプロセスマテリアルとは何か
「StylizedRenderingサンプルは全体的にイラスト風の表示になってるけど、おおまかにわけると3つの処理に分かれてる」
・色の塗り方をアニメ風に(セルシェーディング)→普通のマテリアル
・画用紙っぽい質感→ポストプロセスマテリアル
・黒の輪郭線→ポストプロセスマテリアル
「最初のやつは水面とか金属とかと同じ、普通のマテリアルを色々調整して作ってる。そのへんはあとでやるかもしれないけど今回はパスして、ポストプロゼスマテリアルの方を調べる」
妹「ポストプロセスというのは聞いたことがあるような」
「後工程とか、仕上げとかいった意味の英語。ゲームエンジンで使う場合は、ポリゴンを置いて、光をあてて、金属の質感とかアレして、そういうのが終わった後の仕上げ処理をポストプロセスという。UE4の標準設定だと、暗いところに行くとまわりの色が変わって見やすくしたりするけどあれもそう。ポストプロセスでかける特殊効果だからポストプロセスエフェクト」
参考記事
unrealengine.hatenablog.com
「こういう最初から決まった効果をオンオフしたり、強さを調節したりするのもあるんだけど、もっと色々変なことがやりたい人用の仕組みがポストプロセスマテリアル」
妹「普通のマテリアルとはどう違うの?」
「通常のマテリアルは、そのマテリアルが設定されたポリゴンに対して作用するけど、これは画面全体に効く。画面全体の、1ピクセルずつに対して何かしらの処理をする。マテリアルのアセットとして作るのは普通のマテリアルと同じ」
「具体的な設定としてはこのへんが違う。あとポストプロセスじゃないと上手く作動しないノードとか、逆にポストプロセスだと動かないノードとかもある。出力先もエミッシブカラーしかない」
「これが多分一番シンプルなポストプロセスマテリアル。Constant3Vectorで適当な色を設定して、それをエミッシブカラーにつなぐ。それを画面上、全てのピクセルに対してそうするわけだから、結果的に画面中全部ピンクになった」
「もう少し高度なやつ。SceneTexture:PostProcessInput0というのが元のピクセルの色らしいから、それをピンクと半分だけ混ぜるようにした」
妹「なんかお絵かきソフトのレイヤみたい」
「だいたいそんな感じ。ただもっと複雑な事もできるから、プログラムが出来るレイヤ機能みたいな」