BMS, Movie, Illustrations, Programming

【自分用メモ】Unity 6 の Unity Recorder でアルファ付き連番 PNG を書き出す方法 (URP)

Unity 6 では標準機能 (+ Unity Recorder) でアルファ付き連番画像が出せるらいしのでやってみた

設定項目

1. MainCamera

  • MainCamera のタグが付いたカメラの設定
    • Background Type : Solid Color
    • Background : 色のアルファ値を 0 にする (RGB 値はなんでも良い)

2. RPAsset

  • Assets/Settings/PC_RPAsset の Inspector を開いて、以下を設定
    • Quality -> HDR をオフにする ← ここが重要っぽい
    • Post-processing -> Grading Mode : Low Dynamic Range ← Quality の設定と一致させる
    • Post-processing -> Alpha Processing : オン

3. Recorder

  • Recorder 設定
    • Source : Targeted Camera
    • Camera : MainCamera
    • Media File Format : PNG
    • Include Alpha : オン

以上です!

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

備考 : HDR にしたい場合

Show All Advanced Properties で全ての設定項目を表示させた上で、 HDR Precision を 64 bit にして、 Grading Mode もそれに合わせる。

64 ビットにしないと “Camera back-buffer format does not support alpha channel. Final output will be opaque.” というエラーメッセージが表示されてしまう。

https://discussions.unity.com/t/transparent-rendertexture-with-postprocessing/877890/41?page=3

Hi, The camera color buffer format must be RGBA8 for SDR (HDR off) or RGBA16F for HDR (64-bits)

My settings is Alpha Processing On, HDR On, HDR precision 64 bits, Render Texture color format R16G16B16A16_SFLOAT & Depth Stencil Format D32_SFLOAT

グロー効果などを使う場合は HDR にしないと厳しい気がする。

Blender もそうなんだけど、アルファ付き画像を出力しようとすると、設定する箇所が 1 箇所じゃなくて大変