LoginSignup
1
0

More than 1 year has passed since last update.

Unity 2022.1.x - URP環境のDecalがFXAAを適用したカメラに映らない現象について

Last updated at Posted at 2022-08-26

大分久しぶりの記事になってしまいましたが、今回はUnityで遭遇したバグについてです。
かなり限定的な状況で発生するバグですが、誰かの助けになるかもしれないので書き残します。

本記事は2022/08現在の情報で、すぐ情報が古くなりますのでご承知おきください。

結論

先に結論だけ書いておくと、URPの14系で修正されているようなのでUnity2022.2を使用しましょう。
現状2022.2はベータ版なので、不安な人は本リリース版を待ちましょう!

Unity2022.1を使い続ける人は、CameraのAnti-aliasingSMAAにすればデカールが表示されるようになります。

バグについて

今回のバグは、まっさらなURPサンプルプロジェクトでも再現しました。
詳細を以下に書きます。

環境

  • Unity2022.1.14f1(2022.1.11f1でも再現)
    • UnityというよりはURPのバージョン依存と思われます。今回はURP 13.1.8。
  • Android(iOSは未確認)
    • エディタ(Windows)・実機ともに発生
  • URP環境でDecalを使用すると発生

事象

URP環境でDecalを使用すると、シーンビューには映るのにゲームビューには映りません。
下の例では、左がシーンビュー、右がゲームビューです。
青い画像のデカールが配置されていますが、ゲームビューには映っていません。
image.png

再現手順

1. Unity2022.1.14f1で新しいプロジェクト(テンプレートは「3D Sample Scene (URP)」)を作成
2. Build SettingsからAndroidにSwitch Platformする
3. UniversalRenderer(Universal Renderer Data)を選択、Add Renderer Featureから「Decal」を追加
4. 「Shader Graphs/Decal」シェーダーを適用したMaterialを作成、Base Mapに適当な画像を設定
5. HierarchyにURP Decal ProjectorをアタッチしたGameObjectを作成、4.で作成したMaterialを設定する
6. Rotation.Xに90を設定して、シーンビューでデカールが表示されていることを確認する
7. ゲームビューを見ると、デカールが描画されていないことが確認できる
8. HierarchyのMain Cameraの「Anti-aliasing」をSMAAに設定すると、ゲームビューで描画されることが確認できる

(この手順、「Unityにバグレポート出すぞ!」と思って書いたものなんですが、結局不要に...。この記事で供養ということで...

原因

細かい原因はわかりませんが、どのような条件で発生するかを調査しました。
以下の条件を満たすときに上記の現象が発生するようです。

  • URP ver13系(確認したのは13.1.8)
  • Android環境
  • CameraのAnti-aliasingFXAAに設定
  • Decalを使用
    image.png

対策とまとめ

現状確認できる二つのUnityバージョン(異なるURPのバージョン)でどうなるか調査しました。
結果、URP 14系では修正されているようです。

ということで、今回の事象に悩まされている方はUnity2022.2を使用するとよさそうです。(現状ベータ版なので、心配な人は本リリースまで待ちましょう)

現状では、アンチエイリアスの設定をSMAAにすればデカールは表示されますので、Unity2022.1環境でデカールを使いたい人はそれで耐え忍ぶ感じになりそうです。
もしくは、これからのバージョンで修正がURP 13系にも取り入れられるかもしれません。

問題ない動作が確認できたUnity

  • Unity 2022.2.0b5:URP 14.0.3
  • Unity 2023.1.0a6:URP 15.0.0
1
0
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
1
0