Unity:2Dスプライトに対するノーマルマップとライト②
掲載日: 2025/08/14
今回はユニバーサルレンダーパイプライン環境で2Dキャラクタに対してノーマルマップを作成し、ライトの陰影効果をアップさせるための検証をしたのでまとめました。
以前、描画パイプライン:ビルトインの環境で実装する方法をまとめたので興味がある方はそちらもご確認ください。
*内容が重複する部分があります。
■検証環境
・Unity 【バージョン:6000.033f1】
・描画パイプライン:【ビルトイン】
■行うこと
①テストプロジェクトの作成
②動作テスト1
③キャラクタのノーマルマップを作成
④キャラクタへノーマルマップを設定
⑤動作テスト2
■①テストプロジェクトの作成
Unityで2Dプロジェクトを作成する
プロジェクトに配置するものは下記となります。
・背景
・キャラクター
・ライト(GlobalLight、SpotLight)
背景とキャラクタは2DObjectのSpriteを作成し試したい画像を設定して配置してください。
ライトはGlobalLight2D, SpotLight2Dを作成してください。
ライト効果がわかりやすくなるようにパラメータを変更します。
GlobalLight
Intensity : 0.2
■②動作テスト1
背景とキャラが表示されていてライト効果で暗くSPOTライトの周辺が明るいことを確認してください。
内容は省略しますが【PointLight】をキーボードで移動させられるようなスクリプトを追加しておくと更にわかりやすいと思います。
■③キャラクタのノーマルマップを作成
ノーマルマップを生成する方法には、いくつかの手法があります。
Materialize、Normal Map Online、Photoshopのレイヤースタイルなどのツールを使って自動的にノーマルマップを作成できます。
NORMALMAP ONLINE
https://cpetry.github.io/NormalMap-Online/
作成したノーマルマップをUnityで選択しInspectorにてTextureTypeをNormalMapとしてください。
■④キャラクタへノーマルマップを設定
ここでノーマルマップをSpriteに設定します
まず対象のSpriteRendererのOpenSpriteEditorを選択しSpriteEditorを起動してください。
左上のメニュー【SpriteEditor】から【SecondaryTextures】を選択
右下のウィンドウにて以下の設定をします
Name : _NormalMap
Texture : ③で作成したTexture
設定したらApplyして設定を反映してください
■⑤動作テスト2
実行しましょう。左がノーマルマップ無しで右がノーマルマップ有りとなります。
■まとめ
上手に使用すれば2Dキャラクタの深度感、立体感、動的な照明の錯覚を与えられそうです。
URPではNormalMapをSecondaryTexturesとして設定することで対応できるので良いですね。
■使用アセット
無料キャラクターアートパック
Free Character Art Pack | 2D Characters | Unity Asset Store