---
title: 【Unity】URPでのカスタムポストエフェクト
tags:  #unity  
author: [おかひろ](https://convert.docswell.com/user/okahiro_p)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/4EQXP15L7P.jpg?width=480
description: 2022年5月に銀座Unityもくもく会でLTした資料です。
published: April 14, 23
canonical: https://convert.docswell.com/s/okahiro_p/KNR1MD-2023-04-14-224936
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/4EQXP15L7P.jpg)

URPでのカスタムポストエフェクト
おかひろ


# Page. 2

![Page Image](https://bcdn.docswell.com/page/KJ46YR9571.jpg)

自己紹介

おかひろ

Twitter：@okahiro_p

フリーランスのゲームプログラマー/TA


Maya/Blenderのpython勉強中
個人制作でスマートフォン向けの東方二次創作ゲームをリリース


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LE1V6QK27G.jpg)

ポストエフェクトとは？

描画結果にエフェクトをかけて見た目を変える 手法のことをここでは指します

例：Bloom、DepthOfField、ColorAdjustments、Vignette・・・
遠くの建物がボケている
DepthOfField
ポストエフェクトなし
明るい部分が強調されている
Bloom
ポストエフェクトあり
画面の四隅がぼんやり暗い
Vignette


# Page. 4

![Page Image](https://bcdn.docswell.com/page/GEWLWMD272.jpg)

標準のポストエフェクト

URPではPostProcessingStack v3(?)が標準ぽい


v2も使えるらしいが、そのうちサポートされなくなる模様
URP(v3)でもポストエフェクトは標準で結構な数が用意されている

Bloom

DepthOfField

ColorAdjustments

Vignette

Choromatic Aberration

Lens Distortion
など


# Page. 5

![Page Image](https://bcdn.docswell.com/page/47ZM5QG4E3.jpg)

カスタムポストエフェクト

標準のポストエフェクトでできないことは、カスタムポストエフェクトを作成
して表現する

例
モザイク


# Page. 6

![Page Image](https://bcdn.docswell.com/page/YJ6N96YGJV.jpg)

カスタムポストエフェクト

例
水彩風


# Page. 7

![Page Image](https://bcdn.docswell.com/page/GJ55N6GXJ4.jpg)

カスタムポストエフェクト

例
鉛筆画風


# Page. 8

![Page Image](https://bcdn.docswell.com/page/LE3N2QR4E5.jpg)

カスタムポストエフェクトの作り方

URPのカスタムポストエフェクトはまだ正式にはサポートされていないぽい

将来的にサポートされると思うが、いつかわからない

が、RendererFeaturesに追加すれば実現は可能

作り方

VolumeComponentを継承したクラスを作成

ScriptableRenderFeature、ScriptableRenderPass継承クラス作成

CustomForwardRendererDataに作成したRenderFeature追加

Shader作成


# Page. 9

![Page Image](https://bcdn.docswell.com/page/8EDWZ9Y57G.jpg)

VolumeComponent継承クラス作成

ポストエフェクトのパラメーター調整用インターフェース作成


# Page. 10

![Page Image](https://bcdn.docswell.com/page/V7P9DZ6DJ8.jpg)

CustomForwardRendererDataに作成したRenderFeature追加

ScriptableRenderFeature、ScriptableRenderPass継承クラスを作成し、SRPに登録


# Page. 11

![Page Image](https://bcdn.docswell.com/page/2JVM1W3GJQ.jpg)

Shader作成

かけたいエフェクトのShaderを作成する

ShaderGraphでもできる


複数パス非対応など制限あり
ShaderLabで書けば、複数パスのものも使える


# Page. 12

![Page Image](https://bcdn.docswell.com/page/5EGG2DYDEL.jpg)

まとめ

探せば結構情報が見つかる


昔のポストエフェクト向けに作成されたサンプルとかも、置き換えればだいた
い動く


やっている人がそれなりにいる
VolumeComponent、ScriptableRenderFeature/Pass系は自作の必要あり
SRPに処理を入れるので、ポストエフェクトをかけないときの処理も考慮する
必要がありそう

VolumeComponentのActive状態を調べる


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4JQXP1MXEP.jpg)

ご清聴ありがとうございました


