7080 + 1

ゲームプログラミングの記事を書いてます。

【Unity】トランジションするシェーダを作りました

テクスチャ一枚を差し替えるだけでトランジションの仕方を変えられるシェーダを作りました。

f:id:atori708:20180303001548g:plain
動画は汚いですがきれいにでてます。本当です。
何かいいGIFレコーダーないですか...

とそれは置いておいて、使い方を。

uGUIのImageに適用するシェーダとして作ってます。
トランジション用テクスチャはマテリアルにではなく、Imageにつけてください。
またテクスチャはグラデーションしてるグレイスケールの画像を用意してください。
機能は以下です。

また、ImageのColorの値が反映されるようになっています。

ソースは以下になります。

ImageEffectを使ってやる方法も出来るっぽいですが、こっちのほうが実装簡単だったのでこっちに落ち着きました。
(多分ImageEffectでの実装の方が軽くなると思います)

補足

ニーアオートマタのポーズ画面に入る時の演出はこの方法でやってるといつかのCGWorldで書いてありました。
この手法自体は昔からあるみたいですが、あんな複雑な動きが出来るテクスチャを作れるツールって何使ってるんでしょうか...