(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

3Dモデルの表面の形に沿って、画像をスタンプのように投影して表示するデカール(Decal)の使い方【Unity】【URP】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2022.3.21f1


はじめに

今回はUnityのURPで、デカール(Decal)という

3Dモデルの表面の形に沿って、画像をスタンプのように投影して表示する公式機能の紹介です!



イメージとしては以下のような感じ。


なお、記事中では以下のアセットを使っています。

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にも表示可能です。


さらにリアルタイム(ゲーム中)に動かす事も可能です。