Unity 2021.2の新機能として、デカール(Decal)機能がユニバーサル・レンダーパイプラインに追加されました。
デカールとはシーン内のオブジェクトにマテリアルを貼り付ける(投影する)機能であり、壁にステッカーやマーク、ポスターを張り付けたり、あるいはリアルタイムに弾痕を付けたりすることが出来るようになります。
いよいよURPにもデカール機能が来たということで、さっそく試してみました!いくつかの手順が必要ですが、覚えてしまえば簡単に使えるので興奮しています!
※本記事は、このUniversal Render Pipelineの公式パッケージ・ドキュメントに含まれるデカール項目のページを参考に書きました。
レンダラーに機能追加
まずはレンダラーにデカール機能を追加する必要があります。まずはプロジェクトに設定されているRender Pipeline Assetを確認します。
Project SettingのQuality画面で、設定されているパイプライン・アセットを確認できます。ダブルクリックしてファイルの位置を確認し、そこからインスペクターを開きます。
ここでセットされているレンダラー(Universal Renderer Data)を確認します。これらはURPパッケージのテンプレートとして用意されているものなので、Assetフォルダ下のSettingフォルダにまとめて置かれています。(見分けつきにくいからアイコン変えて欲しい・・・)
レンダラーを開き、いよいよデカール機能を追加していきます。
同じく新機能であるScreen Space Ambient Occlusionがレンダラー機能として追加されています。その下に、Add Renderer Featureというボタンがあるので、これを押します。
するとDecal項目があるので、これを選択します。
これでデカール機能が使えるようになります。
デカールを投影しよう!
というわけで、次にシーン内に空のゲームオブジェクトを作成します。そして、それにコンポーネントとして、URP Decal Projectorを追加します。
Add Componentボタンを押して、decalと打ち込むと出てくるので、これをアタッチすればデカール投影機の完成です。
そのままだと、白い正方形が映し出されるだけなので、マテリアルを作成する必要があります。
まずは普通にマテリアルを作成します。そのマテリアルのシェーダー選択欄から
Shader Graphs/Decal
というURPで用意されているシェーダーを選択します。URPのデカール機能はこのシェーダーにしか対応していないので、これを必ず使います。
するとマテリアルのインスペクターがこのように変化するので、各テクスチャを設定し、デカール投影機のマテリアル設定に適用します。
特に複雑な設定項目はないので、細かい説明は省きますが、これでデーカルを使えるようになるのはとても便利だし、感動ものです。
以上、比較的簡単な手順でURPでデカールが使えるようになりました!壁に弾痕を付ける、というのも近々試してみたいです!
まとめ!
Unity2021.2については、また後日に記事を書きたいと思っていますが、URPもかなりの進化と変化がありました。デカールはその中の一つに過ぎません。
しかし、望まれていた機能であり、URPはどんどん良くなっているということです。個人的にはとっとと現状のビルトイン・パイプラインと置き換わってほしいな、と焦る気持ちを抑えつつ、これからのURPにちゃんとついていけるように努力していきたいと思います。