【Unity】2DでURPを使うためのセットアップ手順

どうも、個人ゲーム開発者のゆみねこです。

Universal Render Pipeline、通称URPのpreviewが遂にはずされました。
これで、オレオレCustomizeをした美麗な画作りがUnityでできるようになり、見飽きた灰と水色のデフォルト画面ともおさらばできます。

実はこのURP、2Dでも使えるのですが、あまり注目されていません。

そこで今回は、2D ProjectでURPを使うために必要な手順を、分かりやすく解説していきます。

準備

動作条件

  • Unity 2019.3以上

※もっと前のバージョンでも動くと思いますが、手順が違うかもしれません。

Projectの作成

Unity HubからProjectを作成

  1. 新規作成 を選択
  2. Universal Project Template を選択
  3. 作成 を選択しProjectを作成

普通のProjectからPackage Manager(UPM)を経由してインポートしてもいいですが、Unity Hubから作ればすべて導入済みな上、Render Pipeline Assetファイルが作成されているので簡単です。

作成すると、人によっては見慣れたScene画面が登場します。
が、今回は2Dなので、これらは使いません。
邪魔なので、全部削除してしまいましょう。

すっきりしましたね。

2D用のProject設定にする

URPのテンプレートProjectは、3D用の設定が適用されています。
2Dで表現するのに不都合があるので、変えていきましょう。

この辺はURPとあまり関係ない作業なので、テキパキいきます。

  1. Edit -> Project Settings を選択
  2. Editor 項目を選択
  3. Default Behaviour Mode2D に変更
  1. Window -> Rendering -> Lighting Settings を選択
  2. Skybox Material , Sun Source を None に設定
  3. 他、負荷がかかりそうなライティング設定を変える
  1. Hierarchy ビューにて Main Camera を選択
  2. Transform を 2D用に設定
  3. ProjectionOrthographic に変更

最後に、HierarchyビューにあるDirectional Lightを削除したら完了です。

2D用のテクスチャを用意する

描画するためのテクスチャを用意しましょう。
今回は有名な無料アセットを使いますが、すでに自分用にテクスチャがあるならそちらでOKです。

上記のアセットを使う前提で話を進めます。
インポートしたら、背景に適した画像を探してHierarchyにドロップしましょう。

この時点で、もうURPは適用できています(Post Processがかかっています)

が、これだけでは虚しいので、2D Light(Experimental)を設定してみましょう。

スポンサードサーチ

2D Lightを導入する

注意事項

2D Lightは、まだExperimental(実験的)な機能です。今後仕様が大きく変わる可能性があります。

本番プロジェクトで使うのはあまり好ましくないので、GameJamや個人開発の小さなゲームに使うといいでしょう。

導入方法

  1. Project ビューにて 右クリック -> Create -> Rendering -> Universal Render Pipeline -> 2D Renderer (Experimental) を選択
  2. Asset -> Settings -> UniversalRP-HighQuality ファイルを選択
  3. General Renderer List に、先程作成したアセットをアタッチ

UniversalRP-HighQuality以外にも2つアセットがありますが、どれを使うかは Edit -> Project Settings -> Graphics -> Scriptable Render Pipeline Settings で設定できます。

デフォルトではHighQualityが指定されているので、このアセットに2D Rendererをアタッチしました。

必ずバックアップを取りましょう!
この手順は、巻き戻しできません。

  1. Edit -> Render Pipeline -> Universal Render Pipeline -> 2D Renderer -> Upgrade Project to 2D Renderer (Experimental) を選択
  2. 現れたダイアログで Proceed を選択

これで、初期設定が完了しました。

2D Light用のMaterialを作成する

「ん? なにも変わってないぞ?」
と困惑したと思います。

2D Lightを適用するには、Spriteを専用のMaterialに差し替える必要があります。

  1. Projectビュー にて、 Create -> Material を選択
  2. 生成されたMaterialに Sprites-Lit と命名(わかりやすければ何でもいい)
  3. Materialの Shader Universal Render Pipeline/2D/Sprite-Lit-Default であることを確認
  4. 影を設定したい Sprite RendererMaterial に、先ほど作成したMaterialをアタッチ

Spriteが真っ黒になったら成功です。

2D Lightを設置する

真っ暗になって困惑したかもしれませんが、Lightが一切ないので暗闇なだけで、設置すればちゃんと明るくなります。さっそくやってみましょう。

これまでの設定が正しく行なえていれば、 Hierarchy上で右クリックをし、Light -> 2D から、各種ライトが設定できるはずです。
(もし灰色になって選択できない場合は、設定を見直しましょう)。

Freedom Light 2D

自由に編集できる多角形のライトです。

Sprite Light 2D

Spriteの形状でくり抜くライトです。
Spriteの色も反映されるので、赤い霧などを表現するのにいいかもしれません。

Parametric Light

正多角形のライトです。角度を増やすことで擬似的な円も表現できます。

Point Light

ツクールでおなじみの円形ライトです。
大きさを変える時はTransformのScaleではなく、Inner RadiusとOuter Radiusを変更します。

Angleを変えることで、扇形にもできます。
懐中電灯の表現にいいですね。

Global Light

どこに置いても等しい光量で照らす、日光のようなライトです。
3DのDirectional Lightと同じです(方向の影響はありませんが)。

色の影響を受けるので、天候や時刻の表現をしたい時に便利です。

Lightのカスタマイズ

Lightによって細かい項目は異なるものの、おおむね共通して言えるものを挙げていきます。

種類の変更

ライトの種類は、InspectorLight Type から変更できます。

明るさの変更

Intensity(強度)を大きくすると、ライトが明るくなります。

Sprite LightのBlend StyleをAdditiveにしてIntensityを上げれば、発光する物体も表現できますね(Blend Styleに関しては後述)

Blend Style

先ほど作成した2D Renderer AssetのBlend Styleを有効化・編集することで、最大4つまで描画方法を指定できます。

Blend Modeを変更することで、描画方法を大きく変えることができます。詳細は公式ドキュメントをどうぞ。

Scriptから操作する

記事を書く気力がなくなってきたので、後日また詳しく書きます。
手短に言うと、Light 2D classはpartialで宣言されているので、新たにLight2D.csファイルを作り、各自必要な機能を追加で宣言していくことになります。

さすがにこの仕様は、正式リリースと共に変わると思われます。

補足

描画順がおかしくなった場合は、以下の記事も読んでみると解決するかもしれません。

記事をシェアする