LoginSignup
5
5

More than 1 year has passed since last update.

URP非対応のアセット・マテリアルを使用する場合のシェーダー設定や変換関連

Last updated at Posted at 2021-08-06

手順を忘れると、URP対応時に時間を取られるのでメモとして記録します。
もっと簡単に設定できる方法があれば、コメントを頂けると助かります。

※Unity2021.2以降の自動アップグレード方法が変更になっています。

URPに対応していないシェーダーがある場合

テクスチャが割り当てられていない状態の表示になります。
screenshot.306.png

URP対応する場合の基本的な方法

Unity2021.1以前の方法

以下をクリックすると一般的なシェーダーはURPに対応したシェーダーに一括で変換することができる。

Edit > RenderPipeline > UniversalRenderPipeline > UpgradeProjectMatelialsToUniversalRPMaterials
image.png

Unity2021.2以降の方法

"Edit > RenderPipeline"の項目が無くなり、別ツールとして追加されています。
image.png

Built-in to URPを選択してConvertを実行します。

image.png

fbxとかに埋め込まれているようなReadOnlyになっていたマテリアルの場合、これまでは一度エクスポートしないと変換ができなかったのですが(その認識であってます?)、新コンバートツールではエクスポート無しで変換できるようになっています。

image.png

新RenderPipelineConverterの注意点

2021.2.7f1の時点では、従来の機能でURPマテリアルに変換した方が、変換できるシェーダーの種類に違いがあるようで、UIだけでは無く、内部の変換処理も変わっていると思われます。

ちなみに私の変換したかったマテリアルは従来の機能で変換した方が変換成功率が高かったため、若干劣化している様に感じました。

自分の使いたいマテリアルが2021版だけ変換できなった!というケースでは、一旦2020のプロジェクトでURP用のマテリアルに変換してから、コピーする方法が良いと思います。

2022/02/24追記:UnityStationで本機能の解説動画が公開されました

上手くシェーダーが変換されない条件

  • カスタムシェーダーを使用している場合(URPに変換できない機能が含まれている場合)
  • Prefabにマテリアルが組み込まれている場合

カスタムシェーダーを使用していた場合の対応

  • 一つづつピンクに表示されているマテリアルを選択し、標準のシェーダーに変更する。
    ※複数同時にシェーダーを変更しようとすると、テクスチャが剥がれてしまうので、元のテクスチャを探すのが面倒になります。

screenshot.317.png

  • UpgradeProjectMatelialsToUniversalRPMaterialsを実行する。ここでテクスチャが表示されているはず。
    screenshot.320.png

  • テクスチャに透過する部分がある場合、透過しない状態になっているので、AlpahaClippingにチェックを入れる。
    image.png

image.png

Prefabに組み込まれているReadOnlyなマテリアルの対応

  • Unity2021.2以降は組み込みマテリアルも自動変換できるので不要です。
  • 本ケースの場合、シェーダーの編集自体ができなくなっているため、PrefabのInspecterからExtractMaterialsをクリックし、マテリアルをPrefab外に出力すると、編集が可能になる。

image.png

  • UpgradeProjectMatelialsToUniversalRPMaterialsを実行する。
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5