ポストプロセス・画面表現

被写界深度

Depth of Field / Bokeh

焦点以外をぼかして視線を誘導する。

4 / 10

インタラクティブデモ

デモを準備しています…

被写界深度

ドラッグで視点を回転、Ctrl(⌘)+ スクロールでズーム。タッチ操作は 2 本指です。

ひとことで

カメラのピントが合った距離から外れるほど、像をぼかす表現です。本物のカメラでは、レンズの口径(絞り)が大きいほど、ピントの合う範囲(被写界深度)が狭くなり、背景や手前が大きくぼけます。ゲームでは、深度から画素ごとのぼけの大きさを計算し、その大きさの円の範囲を平均することで再現します。見せたい物に視線を集める、映画のような画作りの基本です。

ゲームでの使いどころ

  • カットシーン・会話シーン:話している人物にピントを合わせ、背景をぼかして注目させる。
  • エイムダウンサイト(照準を覗く):照準の先にピントを合わせ、手前の銃身をぼかす。
  • フォトモード:プレイヤーがピントや絞りを調整して撮影する。
  • ミニチュア風の演出:画面の上下を強くぼかすと、ジオラマのように見える(ティルトシフト)。
  • メニュー画面:ポーズ画面の背景をぼかして、UI を読みやすくする。

しくみ

錯乱円(CoC:Circle of Confusion):ピントが合っていない点は、画面上で点ではなく円に広がって写ります。その半径は、物体までの距離 dd、ピントの距離 ff、絞り AA からおおよそ次のように決まります。

CoC≈A⋅∣d−f∣d\text{CoC} \approx A \cdot \frac{|d - f|}{d}

ぼかし方(ギャザー方式):各画素の周りを、円盤状に並べた標本点で読み、その点のぼけがこの画素まで届くなら色を加えます。

  • 標本点は、黄金角で螺旋状に並べると円盤を均一に覆えます(円盤一様サンプリング)。
  • 明るい点は、周りの暗い画素よりも強く寄与するので、HDR の画面から読むと丸く光るボケ(玉ボケ)になります。

手前と奥の扱い:ピントの合った物の上に、奥のぼけがにじみ出るのは不自然です。一方、手前のぼけた物は、奥のピントの合った物の上に広がって見えます(手前の物で奥が少し隠れる)。この非対称を扱うのが実装の難しいところで、デモでは「奥のぼけは、自分より手前の物の範囲には広げない」という条件で近似しています。

実装のポイント

  • 低解像度で計算する:ぼけの計算は画面の半分の解像度で行い、ピントの合った部分と合成すると大幅に安くなります。
  • 手前と奥を分ける:本格的な実装では、手前のぼけと奥のぼけを別々の画像で計算してから合成します。
  • ピント合わせの演出:ピントの距離を急に変えず、目標に向かってなめらかに近づけると、カメラがピントを探すような自然な動きになります(デモの「ドローンを追いかけて」)。

つまずきやすい点

  • 輪郭のにじみ:ピントの合った物の縁に、奥のぼけた背景がにじんで光の輪ができる、または逆に縁がくっきり切れすぎる、という問題が起きやすいです。
  • かけすぎ:常に強いぼけをかけると、プレイ中に周囲の状況が分からなくなります。ゲームプレイ中は控えめにします。
  • 細い物・半透明物:髪の毛や草、パーティクルは深度が 1 つに決まらないため、ぼけ方がおかしくなりがちです。

デモで試すこと

  1. 床をクリックすると、その距離にピントが合います。手前の球をクリックすると手前にピントが移り、奥の柱やネオンが大きくぼけます。
  2. 「ぼけの強さ」を上げると、ぼけが大きくなり、ネオンが丸い玉ボケになって広がります。
  3. 「ぼけの大きさを色で表示」で、手前(青)と奥(橙)のぼけの大きさの分布を確認できます。
  4. 「ドローンを追いかけてピント合わせ」をオンにすると、動くドローンにピントが追従します。

参考資料

Unreal Engine Post Process Effects ↗

分野全体の資料で、この項目を直接扱っているとは限りません。