ライティングまで終わって1枚の絵ができたあと、その絵全体に後処理として掛けるのがポストプロセス(post process)です。写真の現像に近く、明るい所を滲ませる(Bloom)・ピント外をぼかす(DOF)・輪郭のジャギーを消す(TAA)など。3D計算ではなく、完成画像を「画像処理」する段だと捉えると分かりやすい。実際に効果を掛けて確かめましょう。
Primer 04 で見たライティングパスが終わると、色のついた1枚の画像ができます。ポストプロセスはその画像(と、必要なら深度チャンネル)を入力に、画面全体を1回なめるように後処理を重ねます。3Dのメッシュはもう関係なく、扱うのは2Dのピクセルだけ。だから「シーンが複雑でもポストの重さは画面解像度でほぼ決まる」という性質があります。
効果には順番があります。例えば Bloom はトーンマッピング前の明るい値(HDR)を見て滲ませ、TAA はブレを避けるため比較的早い段で掛かります。順番が変わると絵も変わる、というのがポストの勘所です。
Bloom の作り方は素朴です。①しきい値より明るいピクセルだけ抜き出し、②それをぼかし、③元の絵へ足し戻す。下のデモはまさにその3段を実行しています。しきい値を下げると滲む範囲が広がり、強度を上げると光があふれます。
UEの Bloom はしきい値ではなく物理的な明るさを基準に、複数サイズのぼかしを重ねてより自然な減衰を作ります。ただし骨格は同じ「抜き出す→ぼかす→足す」。かけ過ぎると全体が白っぽく眠くなるので、強度は控えめが定石です。
DOF は「ピント面から奥行き方向にどれだけ離れているか」でボケ量を決めます。ここで効くのが Primer 04 の深度チャンネルです。各ピクセルの深度と焦点距離の差から錯乱円(CoC)の大きさを求め、その分だけぼかす。下の3つの物体は奥行きが違います。焦点スライダーを動かすと、ピントの合う物体が入れ替わります。
これがUEの DOF が深度バッファを必須とする理由です。焦点の前後で急にボケが立ち上がるとうるさいので、UEでは絞り(Aperture / F-stop)で「どのくらいの範囲をシャープに保つか」を調整します。数値が小さいほど背景が大きくボケる ── 実カメラと同じ感覚です。
斜めの輪郭は、ピクセルの格子に対して階段状のギザギザ(ジャギー / aliasing)になります ── Primer 02 のちらつきと同じ根っこです。TAA(Temporal Anti-Aliasing)は、毎フレームカメラをごく僅かに揺らして(ジッタ)少しずつ違う位置を描き、それを前フレームの結果と混ぜることで、実質的に1ピクセルを複数回サンプリングしたのと同じ滑らかさを得ます。下のトグルで、掛ける前後の輪郭を比べてください。
「前フレームと混ぜる」ため、速く動く物ではブレ(ゴースト)や、細部が甘くなる副作用があります。UE5 ではこれを進化させた TSR(Temporal Super Resolution)が既定で、低い内部解像度から高解像度を復元します。動きの速いゲームで「なんか輪郭が滲む」ときは、まずこの時間的AAを疑います。
UEではレベルに Post Process Volume を置き、その中に入ったカメラへ効果を適用します(範囲を無限にすればシーン全体に常時適用)。露出・Bloom・DOF・カラーグレーディング・Motion Blur などを一括で持ち、複数ボリュームをブレンドすることもできます。
確認のヒント:ShowFlag(ビューポートの Show メニュー)で各ポスト効果を個別にON/OFFして原因を切り分けられます。「なんか画面が眠い/眩しい」の多くは Bloom・露出・トーンマッピングのどれか。次の Primer 06 では、逆にポスト前の“形”をどれだけ細かく描けるか=Naniteを見ます。