ポストエフェクトっぽく世界を変える試みと、指定色を残すシェーダー
さて、コミックおきゅたんをやったなら、ワールドそのものもコミック風にしてみたい。
自前のワールドならメッシュのシェーダーをそれ用のにすればいいのだけれど、任意のワールドをコミック風ににするにはポストエフェクトでやってしまうのが手っ取り早いです。
以前コミック風にするポストエフェクトは作成済み。
ポストエフェクト版も作っててある意味良かった。
— オノッチ (@onotchi_) January 10, 2018
背景になるデータはマテリアルを全部変えるのも大変だし、ポストエフェクトのエッジ検出とディザリングで漫画風にして、キャラクタはマテリアル単位でキレイに漫画風に。 pic.twitter.com/HdpuVPIfOT
ただVRChatで使えるポストエフェクトはPost Processing Stackしか許されていないようで、そもそもそれも自作ワールドにしか使えないということで、どうにも太刀打ち出来ません。
さぁ、どうしようかなぁ…と思った時に思いついたのが、カメラの前に板を置いてしまうこと。板の後ろの画をそのまま描画するシェーダーを書いて、その画を加工してしまえばいいじゃないかと。
この辺は以前遊ばせていただいたEsさんの水面シェーダー関連の記事が心に残っていました。
公式にもサンプルはあります。
で、コミック表現の前に、試しに以前作った色残しエフェクトを組み合わてみました。
実際にVRChat内で使ってみたところ。
シェーダーで任意のフィルタをかけた世界を見れるようにした。これは赤系の色だけを残すエフェクト。
— オノッチ (@onotchi_) July 19, 2018
後からの動画加工じゃないことを示す為、今はメガネ型にしたけど、カメラを完全に覆う形にすれば、自分の好きなワールドを好きなエフェクトで見ることが出来るようになる(はず)。 #VRChat pic.twitter.com/HEC8Tll46Z
カメラ全体を覆っても良かったのですが、それだと後から動画編集したのと区別がつかなそうだったので、若干アピールのためにメガネにしてみました。
メガネにしてみて思ったのですが、最初メガネをHeadの子にしていたんですが、Headの子はどうやってもカメラに映らないようでした。
変に顔とか髪とかのメッシュに視界が埋まっちゃうのを防ぐためですかね。
とりあえず苦肉の策でNeckの子にしていますが、例えばVRモードの場合は手にメガネを持って、眼前にかざす、とかでもいいかも。
あるいはうまくHeadに外からJointする方法もあるのかな?
体全体を大きな球で覆って、その球にシェーダーを適用してもいいかも。
シェーダーはBOOTHで無償公開しました。
BOOTHデビューです。
作成したマテリアルを板などにセットして使ってみてください。
パラメータは3種類で、
Target Color: 残す色
Threshold: 同系色の許容範囲
Brightness: 灰色にした部分の明るさ
が調整できます。