この記事でのバージョン
Unity 2022.3.21f1
はじめに
今回はUnityのURPで、デカール(Decal)という
3Dモデルの表面の形に沿って、画像をスタンプのように投影して表示する公式機能の紹介です!
イメージとしては以下のような感じ。
![]() |
ちなみに同様のシステムにサイバーエージェントが開発したOSSの「AirSticker」があります。
(双方メリットデメリットがあるので、用途によって使い分けるか、もしくは併用する感じ)
なお、記事中では以下のアセットを使っています。
![]() |
Night Club (SRP) - Unity Asset Store |
![]() |
Riko - Unity Asset Store |
![]() |
2D Casual Game UI Set - Unity Asset Store |
デカール(Decal)の使い方
デカールを使うにはまずEdit/Project Settings…を開き、
![]() |
Graphicsの項目で設定されているUniversal Render Pipeline Assetを選択、
![]() |
さらにそのアセットに設定されているUniversal Renderer Dataを選択し、
![]() |
Add Renderer FeatureからDecalを追加します。
![]() |
なお、デカールが表示されない時はTechniqueをScreen Spacesすると表示されるかもしれません。
ただし、TechniqueをDBufferにした方がクオリティ(と負荷)は上がります。
![]() |
次にデカール用のマテリアルを作成して、ShaderをShader Graphs/Decalにし、
投影したい画像とそのノーマルマップを設定します。
![]() |
![]() |
ちなみにノーマルマップはなくてもいいですが、以下の記事のように自動で簡単に作る事も出来ます。
![]() |
あとは任意のオブジェクトにURP Decal Projectorを追加し、先程のマテリアルを設定するだけ。
![]() |
Mesh Rendererはもちろん、
![]() |
Skinned Mesh Rendererにも表示可能です。
![]() |
さらにリアルタイム(ゲーム中)に動かす事も可能です。
![]() |