Unityでは、ゲーム内に配置した3Dオブジェクトの形状に沿ってデカール(ステッカーのようなもの)を貼り付けることができます。これは実際のゲームでもよく使われています。
デカール機能は、3Dオブジェクトのテクスチャに似た表現が可能ですが、シーン内の効果やエフェクトの表現に特に向いています(画像をプロジェクターでシーン内に映し出すイメージです)
デカール機能を使って表現できるもの
デカール機能を使った表現は無限大で、デカールの表示タイミングも自由に調整できます。以下はその一例です
テクスチャ間のつなぎ目を目立たなくする
単調になりがちな背景オブジェクトにアクセントを加える
床にこぼしたペンキを表現する
壁や地面にひびを入れる
水面に雨粒が落ちている表現
絨毯や傷、汚れ、落書き、ポスターなど
また、3Dモデルのポリゴン数を削減できるメリットもあります。
URP・HDRPのゲームで使用可能
この記事の見出し画像はURPを使ったデカールの例ですが、ガラスなどの半透明なオブジェクトにデカールを貼ることはできません。
HDRPでは、半透明なオブジェクトにもデカールを表示させることができます。デカールを使う場合は、ゲームのボリュームや表現に合わせてURP、HDRPを選択する必要があります。
(この記事では動作が軽いURPを使って解説を進めています。)
デカールを実装する手順
プロジェクトにURPまたはHDRPを導入する、もしくは対応したプロジェクトを作成します。
PNG画像などの素材をUnityに追加します。
このとき、他の素材と混同しないようにアセットに「DECA」などのフォルダを作っておくと管理が楽です。
また、取り込んだ画像の設定は特に修正する必要はなく、テクスチャタイプは「デフォルト」、テクスチャ形状は「2D」のままでかまいません。
デカールに使用するためのマテリアルを新規追加し、インスペクターでShaderを「Shader Graphs/Decal」を選択し、さきほど追加した画像をInputs「Base Map」に割り当てます。
これでデカールの準備は整いました。
ヒエラルキーにDecal Projectorを作成する
ヒエラルキーから「+」を押し「レンダリング」→「URPデカールプロジェクター」を選択します。このとき、「Decal Projector」という名称のゲームオブジェクトが作成されます。任意の名称に変更しても構いません。
Decal Projectorのインスペクターに、先ほど作成したマテリアルを割り当てます。
デカールのマテリアルとDecal Projectorにそれぞれ設定を割り当てる工程が複雑に感じるかもしれませんが、あとはシーン内のデカールの位置や角度を調整するだけです。
シーン内にデカールを貼り付ける方法
ヒエラルキーまたはシーン内から、先ほど作成したDecal Projectorを選択すると、白い枠のオブジェクトがハイライトされます。
太く表示されている面が画像が貼り付けられる面、細い線がデカールの範囲です。
白い枠の中に表示されるデカールは、一般のオブジェクトと同様に、インスペクターのTransformで位置や回転、角度調整をすることができます。
URP Decal Projectorでは、さらに細かい設定が可能です。デカールのサイズ、範囲、位置調整やピボット、木の柵やフェンスのように連続して画像をタイル表示したい場合は「タイリング」や「オフセット」を使って細かく設定することもできます。(タイリングのXの値を増やすと横方向に画像が並び、Yの値を増やすと縦方向に画像を並べることができます)
複数のオブジェクトに跨ってデカールを貼る場合と注意点
デカールは貼り付けた位置や角度によって、複数のオブジェクトに自動で貼り付けることができます。ただし、注意点もあります。
立方体などにデカールを貼り付ける場合、デカールの向きによっては画像が部分的に間延びしてしまうことがあります。
2面以上の面や複数のオブジェクトに跨って画像を表示したい場合は、デカールの角度を調節します。
デカールの範囲が大きすぎると、意図しない裏側の面にもデカールが表示されてしまうことがあります。
薄い壁や曲面にデカールを貼り付ける場合、デカール範囲の調整や元画像を分割することで改善することができます。
以上が、Unityでのデカール機能の使い方とその表現方法です。この機能を使って、よりリアルで魅力的なゲームシーンを作成してみてください。
コメント