この記事でのバージョン
Unity 2019.2.0f1
はじめに
以前にUnityの3D用ライトを2Dで使う方法や、
2Dで光や影の表現をするためのアセットを紹介しました。
これらはUnityで2D用のライトが存在しないからこその話だったのですが、
なんとついにUnity公式の2D用のライトであるLight2Dが登場しました。
という事で今回は、そのUnityの2D用ライトを実際に試してみた感じの記事です。
イメージとしては以下のような感じで、使い勝手も良く、表現力もかなり高そうでした。
ちなみに、この機能はUnity2019.2以降で使えますが、現状Experimental(実験的)な機能なので、
今後大きく仕様が変わる可能性もある点には注意が必要です。
(個人的には実用にはまだちょっと早いと思っています。)
なお、記事中の画像は以下のアセットを使っております。
2D Fantasy Art Assets Full Pack | 2D Textures & Materials | Unity Asset Store |
導入
2D用ライトを使うにはまず、
PackageManagerでLightweight RP(LWRP)をプロジェクトにインストールします。
ちなみにPackageManagerについては以下の記事を、
LWRP(やSRP)については以下の記事を参照の事。
LWRPのインストールが完了したら、ProjectのCerateから
Pipeline Assetと2D Rendererを作成します。
さらに作成したPipeline AssetのRenderer TypeをCustomに変更し、
Dataに同じ作成した2D Rendererを入れます。
その後、Edit/ProjectSettingsのGraphicsでPipeline Assetを設定すれば準備完了です。
これでHierarchyのCreateから2Dのライトが作れるようになります。
なお、3Dのライト同様、2Dのライトも生成後に種類の変更が可能です。
ちなみにSprite RendererのMaterialが初期状態のSprite-Defaultでは2Dのライトは影響しません。
ただ、上記の設定後に生成したSprite RendererのMaterialは、
デフォルトでSprite-Lit-Defaultという2Dライトが影響するMaterialになるので、
設定前に生成したSprite Rendererのみ気にすれば大丈夫です。
2Dライトの種類
一応2Dライトの種類についても軽く紹介しておきます。
Freeform Light 2Dは形を自由に変更出来るライトです。
Sprite Light 2Dはライトを指定した画像の形に出来るライトです。
Parametric Light 2Dを三角や四角など、ライトの角の数を指定出来るライトです。
Point Light 2Dは一部を明るくするようなライトです。
Global Light 2Dは全体を明るくするようなライトです。
なお、プログラムで操作したい場合は以下のように
using UnityEngine.Experimental.Rendering.LWRPが必要になります。
using UnityEngine; using UnityEngine.Experimental.Rendering.LWRP;//Light2Dを使うのに必要 public class NewBehaviourScript : MonoBehaviour { //2D用ライト public Light2D PointLight; private void Start() { //ライトの明るさを設定 PointLight.intensity = 1; } }