CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Unity】デカールの使い方【URP・HDRP対応】
こんにちは!デカールという表現方法をご存知でしょうか。
デカールはゲームでよく使われる手法の一つで、例えば壁や床などにヒビを入れたり、銃弾の跡などが表現できるんです。
このデカール機能、実はUnityで標準機能として用意されています!
そこで本記事ではデカールの基本的な使い方を解説していきます。
デカールとは?
デカールとは、ゲームオブジェクトの任意の位置にテクスチャを貼り付ける機能のことです。
下の画像はUnityマニュアルのサンプルシーンです。
オレンジ色の「D」のテクスチャが壁や地面に貼り付けられているのが分かりますね。
このようにデカールを使うことでペンキやステッカーのような表現や、FPSゲームであれば銃弾の跡のような表現まで可能になります。
Unityでは、URPまたはHDRPで作られたプロジェクトでデカールが利用できます。
ビルトインのプロジェクトではデカールは使えません。
URPとHDRPでの具体的な違いとしては、HDRPでは半透明オブジェクトにも投影が可能という点があります。
URPやHDRPとは何か、については下の記事で解説しています。
デカールシェーダーの使い方
デカールシェーダーの基本的な使い方を以下の順番で解説していきます。
- URPまたはHDRPプロジェクトを作成
- Decalを追加
- マテリアルを作成しシェーダーを割り当てる
- デカールを投影するゲームオブジェクトを作成
URPまたはHDRPプロジェクトを作成
デカールはURPまたはHRDPのプロジェクトで使用することができます。
今回はURPのプロジェクトを例に解説します。
Unity Hubから3D(URP)プロジェクトを作成しましょう。
Decalを追加
URPのプロジェクトが作成できたら、最初にDecalを有効化する必要があります。
Assetsフォルダ > Settings内にあるURP-HighFidelity-Renderer.assetのインスペクターを開きましょう。
インスペクターの一番下のAddRenderFeatureからDecalを選択して追加しましょう。
これでDecalを使う準備ができました。
マテリアルを作成しシェーダーを割り当てる
次にDecalを適用するマテリアルを作成しましょう。
Assetsフォルダ内で右クリック > Create > Materialを選択します。
新たにマテリアルが作成できました。
続いてマテリアルのインスペクターを開き、Shadderの項目からShader Graphs > Decalを選択しましょう。
続いてBaseMapに好きなテクスチャをドラッグ&ドロップで登録しましょう。
今回使用するテクスチャは下のフリーアセットを利用しました。
マテリアルの作成方法、シェーダーグラフについては下の記事で詳しく解説しています。
デカールを投影するゲームオブジェクトを作成
続いて、デカールを投影するゲームオブジェクトを作成します。
今回はCylinderを使用します。
ヒエラルキー上で右クリック > 3D Object > Cylinderを選択しましょう。
Cylinderが作成されました。
作成したゲームオブジェクトのインスペクターを開き、Add Componentから
URP Decal Projectorを選択して追加しましょう。
追加したURP Decal Projector内のMaterialに、先ほど作成したマテリアルをドラッグ&ドロップしましょう。
すると下のように、作成したゲームオブジェクトにデカールが反映されているのが確認できます。
URP Decal Projector内のWidthやHeightからデカールのスケールを変えることができます。
またOpacityではデカールの透明度を変えることもできます。
以上がデカールの基本的な設定手順です。
デカールが表示されないようにする
一部のオブジェクトだけにデカールを表示させて、他のオブジェクトにはデカールが表示されないようにしたい場合があるかと思います。
例えば下のデカールの使用例では壁にのみデカールを表示して、床には表示されないようにしています。
そんなときはデカールレイヤーを使えば、デカールを投影するオブジェクトと投影しないオブジェクトを分けることができます。
デカールレイヤーの具体的な設定方法については下の記事が参考になります。
おすすめアセット
デカールが重い時に使いたい軽量デカールアセット
Air Stickerはサイバーエージェントからオープンソースとして提供されている軽量なデカールアセットです。
Air Stickerはメッシュ貼り付けによるデカール表現により処理負荷が低くなっていたり
アニメーションに追従するためキャラクター移動時にもずれずボディペイントにも利用できるなど
Unityに実装されているデカールにはない特徴を持ったアセットです。
簡単にデカールを配置できる便利アセット
Easy Decalはデカールを簡単に配置することができるようになるアセットです。
曲がったオブジェクトや凸凹のあるオブジェクトでも、パラメーターを自動で調整してくれるためぴったりとデカールを配置することができます。
まとめ
以上、デカールの使い方を解説してきました。
本記事で紹介したことをまとめると以下のようになります。
- デカールとは、ゲームオブジェクトの任意の位置にテクスチャを貼り付ける機能のこと。
- デカールを使うことでペンキやステッカーのような表現、銃弾の跡のような表現ができる。
- URPまたはHDRPで作られたプロジェクトでデカールが利用できる。
- URP Decal Projectorにデカールシェーダーのマテリアルを登録して使う。
- デカールレイヤーで一部にのみデカールを表示させることができる。
ぜひデカールを使いこなして表現の幅を広げたいですね!