Unityでインディゲームを作る!

Unityでのゲーム制作を目指し、それに関わる話題についてのブログ

Unity Universal Render Pipelineでデカールが使えるようになった!! [ Decal ]

URP_Decal_TopCover

 Unity 2021.2の新機能として、デカール(Decal)機能がユニバーサル・レンダーパイプラインに追加されました。

 デカールとはシーン内のオブジェクトにマテリアルを貼り付ける(投影する)機能であり、壁にステッカーやマーク、ポスターを張り付けたり、あるいはリアルタイムに弾痕を付けたりすることが出来るようになります。

 いよいよURPにもデカール機能が来たということで、さっそく試してみました!いくつかの手順が必要ですが、覚えてしまえば簡単に使えるので興奮しています!

 

 ※本記事は、このUniversal Render Pipelineの公式パッケージ・ドキュメントに含まれるデカール項目のページを参考に書きました。

 

レンダラーに機能追加

 まずはレンダラーにデカール機能を追加する必要があります。まずはプロジェクトに設定されているRender Pipeline Assetを確認します。

URP_Decal_ProjectSetting

 Project SettingQuality画面で、設定されているパイプライン・アセットを確認できます。ダブルクリックしてファイルの位置を確認し、そこからインスペクターを開きます。

URP_Decal_RenderPipelineAsset

 ここでセットされているレンダラー(Universal Renderer Data)を確認します。これらはURPパッケージのテンプレートとして用意されているものなので、Assetフォルダ下のSettingフォルダにまとめて置かれています。(見分けつきにくいからアイコン変えて欲しい・・・)

URP_Decal_SettingFolder

レンダラーを開き、いよいよデカール機能を追加していきます。

URP_Decal_RendererData_Inspector

 同じく新機能であるScreen Space Ambient Occlusionがレンダラー機能として追加されています。その下に、Add Renderer Featureというボタンがあるので、これを押します。

URP_Decal_AddDecalFeature

するとDecal項目があるので、これを選択します。

URP_Decal

これでデカール機能が使えるようになります。

 

デカールを投影しよう!

 というわけで、次にシーン内に空のゲームオブジェクトを作成します。そして、それにコンポーネントとして、URP Decal Projectorを追加します。

URP_Decal_AddDecalProjector

 Add Componentボタンを押して、decalと打ち込むと出てくるので、これをアタッチすればデカール投影機の完成です。

 そのままだと、白い正方形が映し出されるだけなので、マテリアルを作成する必要があります。

 

URP_Decal_Decal_Shader

まずは普通にマテリアルを作成します。そのマテリアルのシェーダー選択欄から

Shader Graphs/Decal

というURPで用意されているシェーダーを選択します。URPのデカール機能はこのシェーダーにしか対応していないので、これを必ず使います。

URP_Decal_Material_Inspector

 するとマテリアルのインスペクターがこのように変化するので、各テクスチャを設定し、デカール投影機のマテリアル設定に適用します。

 

URP_Decal_DecalProjector

 特に複雑な設定項目はないので、細かい説明は省きますが、これでデーカルを使えるようになるのはとても便利だし、感動ものです。

URP_Decal_ProjectToWall

ポスターのように画像を壁に貼り付ける!

 以上、比較的簡単な手順でURPでデカールが使えるようになりました!壁に弾痕を付ける、というのも近々試してみたいです!

 

まとめ!

 Unity2021.2については、また後日に記事を書きたいと思っていますが、URPもかなりの進化と変化がありました。デカールはその中の一つに過ぎません。

 しかし、望まれていた機能であり、URPはどんどん良くなっているということです。個人的にはとっとと現状のビルトイン・パイプラインと置き換わってほしいな、と焦る気持ちを抑えつつ、これからのURPにちゃんとついていけるように努力していきたいと思います。