回答編集履歴

3

図に合わせてEventにAfterRenderingを追記

2022/07/09 03:08

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -23,7 +23,7 @@
23
23
  ![図4](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-09/20e40723-3cc5-4073-99fd-2e0ce975768d.png)
24
24
 
25
25
  - レンダラーアセット(私の場合は`Assets/Settings/Renderer2D.asset`に置かれていました)のインスペクター末尾にある「Add Renderer Feature」ボタンで「Render Objects (Experimental)」を追加する。
26
- - EventをAfterRenderingPostProcessingにする(Nameはそのままでもいいですが、役割に即した名前を付けておくとFrame Debuggerで確認するときだとかに区別が付きやすいかもしれません)。
26
+ - EventをAfterRendering、またはAfterRenderingPostProcessingにする(Nameはそのままでもいいですが、役割に即した名前を付けておくとFrame Debuggerで確認するときだとかに区別が付きやすいかもしれません)。
27
27
  - FiltersのQueueをTransparentにする(スプライトなら普通はTransparentでしょうが、特殊なシェーダーを使っていたり不透明オブジェクトを使いたい場合はOpaqueにする必要があるかもしれません)。
28
28
  - FiltersのLayer Maskを追加描画したいオブジェクトのレイヤー(今回の和服男の場合はIgnore Raycast)にする。
29
29
 

2

レイヤー名に余計なスペースが入っていたため削除

2022/07/09 03:04

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -18,7 +18,7 @@
18
18
  別案として、下記のような手順はどうでしょうか。
19
19
 
20
20
  - 和服男用のカメラは使用せず(非アクティブにするか削除してしまう)、青空用カメラ単独とする。
21
- - 青空用カメラのCulling Maskは青空も和服男も両方対象にする(今回の場合はTransparent FXとIgnore Raycast)。
21
+ - 青空用カメラのCulling Maskは青空も和服男も両方対象にする(今回の場合はTransparentFXとIgnore Raycast)。
22
22
 
23
23
  ![図4](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-09/20e40723-3cc5-4073-99fd-2e0ce975768d.png)
24
24
 

1

RenderObjectsRendererFeature案を追記

2022/07/09 02:55

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -12,3 +12,26 @@
12
12
  ![図3](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-08/97122d8e-2e43-45ee-b5e4-a436888df11d.gif)
13
13
 
14
14
  もしHDRをオフにしたくないとかの理由があったり、あるいはその他うまくいかなくなる条件を見つけましたらコメントください。恥ずかしながら未だにURPは不慣れでして自信がありませんが、可能であれば回避方法を考えてみようと思います。
15
+
16
+ ## RenderObjectsRendererFeature案
17
+
18
+ 別案として、下記のような手順はどうでしょうか。
19
+
20
+ - 和服男用のカメラは使用せず(非アクティブにするか削除してしまう)、青空用カメラ単独とする。
21
+ - 青空用カメラのCulling Maskは青空も和服男も両方対象にする(今回の場合はTransparent FXとIgnore Raycast)。
22
+
23
+ ![図4](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-09/20e40723-3cc5-4073-99fd-2e0ce975768d.png)
24
+
25
+ - レンダラーアセット(私の場合は`Assets/Settings/Renderer2D.asset`に置かれていました)のインスペクター末尾にある「Add Renderer Feature」ボタンで「Render Objects (Experimental)」を追加する。
26
+ - EventをAfterRenderingPostProcessingにする(Nameはそのままでもいいですが、役割に即した名前を付けておくとFrame Debuggerで確認するときだとかに区別が付きやすいかもしれません)。
27
+ - FiltersのQueueをTransparentにする(スプライトなら普通はTransparentでしょうが、特殊なシェーダーを使っていたり不透明オブジェクトを使いたい場合はOpaqueにする必要があるかもしれません)。
28
+ - FiltersのLayer Maskを追加描画したいオブジェクトのレイヤー(今回の和服男の場合はIgnore Raycast)にする。
29
+
30
+ ![図5](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-09/e8f77ca4-7df7-4395-ba36-22a4fe479454.png)
31
+
32
+ 以上のような措置を加えたところ、描画過程は下図のようになりました。
33
+
34
+ ![図6](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-09/1c0dbff8-51d5-4fcf-b085-65f47c15e44c.gif)
35
+
36
+ 和服男がメインのレンダリングパスと追加パスで合わせて2回描画されるのが若干無駄かもしれませんが、とりあえず色付きになりました。
37
+ ただしキャラクター側に半透明部分があると、この2回描画の仕様のせいで半透明部分が濃くなってしまうかもしれません。それが困るようでしたら、また別案を検討する(独自のRendererFeatureを作るとか?)ことになるかと思います。