前回に引き続きNukeを使って、HDRIの補正について説明していきます。

記事の目次

    CGSLAB LLC.

    テクスチャスキャナの作成/スキャン。3Dスキャナ、フォトグラメトリー等を用いた3Dスキャニングなどのサービス、研究開発をしています

    site.cgslab.info

    関連記事:
    CG映像業界のテクニカル系の仕事を探る 第3回 前編:CGSLABの仕事
    CG映像業界のテクニカル系の仕事を探る 第3回 後編:3DスキャニングとCG映像制作の民主化

    各種設定ファイルなどの配布

    データは第4回で配布のものが共通となりますので、そのまま参照してください。

    手元にない方は、ダウンロードについてを確認して、zipファイルをダウンロードの上、展開しておいてください。

    GitHub - cgslab/CGW_TEHTAZ1_VFXHDRIHandbook: CGWORLD.jpの連載向けデータ配布先

    照度計とNukeを活用したHDRIの精度確認&太陽光の補完

    高精度なHDRIとは?

    この連載の始まりにも触れたように、“高精度なHDRI”とは、「撮影した場所の照明環境がCG上で正しく再現できるかどうか」、として扱っています。

    一番の方法は、実際にレンダリングしてリファレンス画像と比較することですが、今回はより簡単に数値として確認する方法を紹介します。この方法を応用することで、クランプされた太陽光の補完も簡易的に行うことができます。

    スタジオ照明のように多数の光源が存在し、それらがクランプしている場合は、適切に補正は難しいです。しかし、キーライトのみがクランプしている状況であれば、今回の手法は方法のひとつとなります。

    ※この手法はIDTで事前に補正されていることが前提のため、THETA Z1以外で撮影しIDTを使用していないデータの場合は、輝度値が正しい結果とならないため、正確でない可能性があります

    HDRI撮影と照度測定

    HDRIの撮影において照度計を使用することで、撮影場所の照度環境を正確に把握しHDRIの精度を確認することが可能です。

    照度計を用いた撮影の手順と注意点を以下に紹介します。

    撮影時の照度計の使用方法

    1. 照度計の測定位置
    ・HDRIを撮影するカメラレンズ位置と同じ場所で照度計を使用します。
    ・照度計の受光面を真上に向け、自分自身が照度計に影を落としたり、反射板のように機能しないよう腕を挙げ、受光面より姿勢を低くして計測します。

    2. 測定
    ・受光面を水平に保ち、値を測定します。
    ・測定した値は、THETA Z1のHDRI撮影データとペアになるよう記録しておきます。可能であれば、平均値を得るために複数回測定を行います。

    照度計の選び方と使用上の注意

    ・照度計アプリ
    スマートフォンの露出センサを利用した照度測定アプリも存在しますが、太陽光のような高照度は測定できないなど、今回のHDRI用途などでは精度含め適していません。

    ・照度計の測定範囲
    照度計の測定範囲も重要です。特に太陽光を測定する場合は、測定範囲の上限が高いものを選ぶ必要があります。例えば、真夏の日中の太陽光は約100,000lxになるため、測定範囲が0~200,000lxなどの照度計を選びましょう。

    ・精度と分解能
    測定レンジによっては、精度や分解能が異なる場合があります。誤差を最小限に抑えるためにも、JIS規格に準拠した照度計の選択が望ましいです。

    ・コストと精度のバランス
    安価な照度計(2万円以下)を使用する場合、JIS規格に非対応である可能性が高く、表示される精度よりも大きな誤差が生じる可能性があります。予算と必要な精度を考慮して選択しましょう。またJIS規格のものでも、2006年以前の旧規格対応のものは同じ等級でも別物なので注意が必要です。

    参考リンク

    照度計のJIS規格について
    CCS 光と色の話 第一部 第8回 照度の性質
    CCS 光と色の話 第二部 第6回 照度計を使用する時の注意点

    CGSLABで使用している照度計の紹介

    ・共立電気計器 KEW 5204BT 照度計(希望小売価格:税込¥44,000)

    JIS 一般形A級準拠の照度計としては比較的安価で、Bluetooth®通信機能を搭載しており、スマートフォンで値の確認・記録ができます。

    起動も早く、測定日時を含め保存ができるためTHETA Z1で撮影したデータのメタデータと日時照合もしやすく、HDRIの記録用途としては一番オススメの機種です。

    スマートフォンのGPSと連動させた位置の保存や、読み込んだ画像に対して測定場所と値の保存等もできるため、ロケ場所に合わせた記録を行いやすくなっています。

    センサ部分と本体の分離もできるため、様々な環境に対応しやすくなっています。


    セコニック 分光方式カラーメーター スペクトロメーター C-800(希望小売価格:税込 ¥201,300)

    JIS 一般形A級準拠、分光式カラーメーターなので演色性などの色評価のための測定がメインで、照度測定機能は付随機能となります。

    起動に少し時間がかかる点と、メモリにデータの保存はできますが、日時が含まれないため別途記録が必要となり、照度計としてだけ見ると扱いやすいとは言えません。


    セコニック デジタルマスター L-758D(生産終了)

    現行モデルは、非所有のセコニック スピードマスター L-858D(希望小売価格:税込 ¥86,900)になります。

    露出計に付随している簡易照度測定機能のため、測定環境によって多少の誤差が生じやすい印象ですが問題が起きるほどのレベルではありません。

    照度測定時は、光球上下リング回して平板に切り替えて測定します。

    HDRIの適正露出を決めるためのEV測定にも使え、スポットメーターでは反射光式の簡易輝度測定(cd/m²)で特定箇所の輝度値を簡易測定することもできます。


    BTMETER デジタル ルクスメーター BT-881D(約5,000円)

    Amazon等で売られているJIS規格非対応の安価な照度計のひとつです。参考として購入してみました。

    上記2機種と比べると屋内利用メインで設計されているため、太陽光などの明るい環境のレンジほど上記2機種と比べても10%ほどの誤差があります。屋内測定や参考値としては問題なく使用できるレベルのため、誤差があることをわかった上で使う分には使用可能です。

    利点と言うほどではありませんが、紹介の他2機種では測定できない0.01luxまで測定できます(※満月の空が約0.25lx)。

    HDRIの作成

    Nukeで照度計算を行う場合、THETA Z1で撮影したデータは本連載第4回で紹介しているフローで、スティッチまで行なっておきます。マージ処理はNukeでのHDRマージを推奨します。

    露出はメタデータを基にした、0EVの状態(実際の輝度値)がわかる必要があります。NukeでマージしてすでにEV値の補正をかけている場合は、補正している値を把握しておきましょう。

    ※メタデータ、TCLでファイル名にEV値が入るようになっています

    darktableでHDRのマージをしている場合は、少し厄介になります。

    現像時に露出補正している場合は、その補正値と一番暗い(シャッタースピードの速い)画像のメタデータを基に計算しますが、Nukeとは完全に一致しないので、合わせの作業が必要になります。そのため、NukeでのHDRマージをオススメします。

    「HDRI_Merge」ノードのEVパラメータが無効の場合は、完全に白飛びした画像となります。このデータがまさに現実の輝度値と一致しているので、フィジカルカメラに適正なカメラ設定をして使う場合は、データは適正となります。



    連載第4回:Nukeを用いた高品質フロー より

    現実照度とHDRI照度の比較

    検証のために、まず、日陰や曇りの日、または光源がTHETA Z1に収まる明るさの照明のみか間接光のみなどの安定した環境で、HDRIの撮影と照度の測定を行います。

    その状態で作成したHDRIから算出した照度と照度計の値が近似していれば、撮影した環境の照明状態を適切に再現できているシーンリニアなHDRIだと数値的に言えます。

    配布データに含まれる、Nukeで照度値を確認するためのHDRI_Lux_Meterノードを使用して測定を行います。[Colourspace]は、Nukeのプロジェクトの作業カラースペースに設定しておきます。

    このLux_MeterノードはNuke Pediaで公開されているPanoramic HDRI - Absolute Luminance Calibrationをカスタムしたものです。

    元々は「An Artist-Friendly Workflow for Panoramic HDRI | Unity Blog」で紹介されている手法をNukeのグループノード化したもので、測定した照度値を基に、NDフィルタを使用して撮影したHDRIを物理輝度値に補正すると言うものです。

    しかし、今回のフローではすでに物理輝度値になっているため、Luxの計算機能のみ流用しています。

    Nuke Pediaのページでは、太陽光源をそのままにしたものと消したHDRIから、CG向けの光源値を計算できる構成も配布されています。

    それではHDRI_Lux_Meterノードに、スティッチ済みで作成した日陰の中で撮影したHDRIを読み込み、Lux_Meterノードを繋ぎます。

    水平の傾きがある場合は[SphericalTransform]ノードで事前に補正しておきましょう。

    HDRI Mergeノードで事前に行なっている露出補正を計算上でキャンセルするために、補正値を入れます。

    [metaEV]にチェックを入れると[HDRI_Merge]ノードまたは[Exposure_HDRI]ノードの値を自動的に引き継げます。

    ※スティッチでPTGuiを経由した場合ではメタデータの引き継ぎが行われません。引き継ぎたい場合は[CopyMetaData]ノードでメタデータを引き継ぐ必要がありますので注意してください
    ※[SphericalTransform]はメタデータが継承されないノードのため、使用する場合metaEVを使用しないかSphericalTransformの後に[CopyMetaData]ノードを入れる必要があります

    次に、[Compute Input Illuminance]ボタンを押して計算をかけます。これで照度値(Lux)が計算されて表示されます(計算時にフレーム範囲指定が出ますが、1fで大丈夫です)。

    結果を見ると、撮影時の測定値2,770lxに対して計算結果が約2,790lxとなっており、測定値と比較して近似していることが確認できました。

    この例では極めて低誤差となりましたが、実際には測定値に対して10%前後の誤差は、誤差範疇と考えてください。

    さて、これで測定値とHDRIからの計算結果が一致したので、照明の強度に関してはレンダリングテストでの検証を行わなくても、ある程度正しいデータになっていることが計測的に確認できました。

    また、色に関しては紹介しているワークフローを守っていればある程度担保されています。光源がクランプされていない環境であれば、本連載で紹介しているdarktableで現像からNukeでマージ処理まで行うフローで作成したHDRIは現実の照度バランスに即しており、高精度なHDRIと言えることになります。

    誤差が生じる理由

    HDRIと実際の照度値との間で生じる誤差には多くの要因があります。これらの要因を理解し、適切に対処することで、より正確なHDRIを作成することが可能になります。

    ・スティッチング時の精度
    Nukeでの計算処理は画像からの算出で、スティッチング時の精度で明るい部分の範囲などのバランスが変わったり、PTGui使用の場合は特につなぎ目のブレンド補正の影響があります。

    ・照度計の測定時の誤差
    照度計の測定時にも誤差等があるため、値がきっちり一致するわけではなく近似値で問題ありません。実際に照度計で測定してみると、平均を取らないと値は変動し完全な固定値ではないことがわかります。

    ・光源による誤差
    照度計は標準光源を基準としているため、光源による波長特性による誤差が生じる場合もあります(分光タイプを除く)。また蛍光灯などのフリッカーやモニタなど動的照明環境の場合は、特にHDRIの作成に不向きで誤差につながりやすいです。

    ・照度計自体の誤差
    JIS非対応の安価な照度計を使用する場合に、照度計自体の誤差が加わるので、使用している照度計によってはより大きな誤差が出る場合があります。

    ・光源位置による精度誤差
    Nukeの計算はHDRIの上半球で計算を行うため、照度の測定時も上に向け水平を保って測定しています。そのため、日の出や日の入りなど光源が水平線に近かったり、下側や真横に照明がある場合など、照度計は斜め入光ほど値の精度が下がります。

    同様の理由でNukeでの計算も結果が正しくない場合があります。光源が近すぎる場合も、照度計の特性として誤差が生じることがあります。

    誤差が大きい場合の対処法

    誤差が大きい場合は、NukeでのLux計算時に露出補正を正しくキャンセルできているかどうか、クランプされた光源がないかなど、工程含め問題がないか確認します。

    また、撮影場所と測定位置のずれや光源の位置関係など、測定時のミスも考慮しましょう。

    照度計を使用した太陽光の補完

    日陰の中で撮影したHDRIの照度が、適切に再現できていることがわかりました。

    今度は、照度計の情報を基に、クランプされた太陽の補完を行います。

    こちらのサンプルのHDRI撮影時の照度値は約90,000lxでした。「Panoramic HDRI - Absolute Luminance Calibration」を参考にし、完全自動で補完する計算もできそうですが、今回は手動で行いたいと思います。

    同様にEV値を入れて、0EVの状態で照度計算をかけます。

    90,000lxに対して39,701lxと太陽がクランプしてしまっているため、結果は当然撮影時の照度とは一致していません。そのため、クランプしている太陽光源に追加で調整を行い補完していきましょう。

    プレビュー上の露出を絞り、光源が見えるようにして[Add Sun]ノードで光源位置に光源を追加します。

    光源色(Color)はクランプされていない周辺部からピックするか、チャート(ライトグレー)やホワイトバランスカードが撮影できていて、光源がしっかりと当たっている場合であれば、そこから反射色を光源色としてピックします。

    グローを使用する場合、光源周囲が明るくなる分照度値にも影響が出るため、照度値の計算前に有効にしておきます。

    もし、撮影プレートのチャートから光源色をピックする場合、後述のように事前にホワイトバランスを撮影プレートまたはHDRIのどちらかに合わせておく必要があります。

    また、光源サイズはデフォルト値が大まかですが、THETA Z1で作成したHDRI解像度に対して実際の太陽のサイズと近似する値になっています。

    ※Latlongの画像に対して追加するため、正確には位置によってサイズが変わったり楕円になったりするのが正しいですが、それらの補正はAdd Sunノードには含まれません

    次に光源の強度(Power)を調整し、照度の再計算をかけ、撮影時の値と近似するように強度調整と再計算をくり返し、計算結果が測定値に近似するまで調整を行います。

    先に述べている通り、計測誤差も必ず発生するので10%前後の近似値で問題ありません。10%程度であればレンダリングしてもほぼわからない程度の差となります。

    これで、NDフィルタを使用した撮影などを行わなくても、太陽光の光源補完まで行なったHDRIを作成できました。

    光源色はレンダリングしてみて合っていない場合、ズレ値を光源色にかけ直したり、ピックする箇所を変えるなど、再調整が必要な場合がありますので確認してみてください。

    適正露出の設定によっては、補完済みの太陽光の値が65,504を超える場合があるため、16-bit float書き出しの際は注意しましょう。

    照度計と合っているということは、HDRIとして使わなくてもそれぞれ映っている光源のピクセル面積の輝度値をCGのライトオブジェクトの明るさに参照したりもできるようになります。

    実際に[HDRI_Merge]ノードのEVパラメータが無効の状態で輝度測定(cd/m²)した値とHDRIの同一箇所の輝度値が近似していることも確認できているため、照度計、輝度測定の2つの測定データを基にHDRIの精度確認を行えていると言えます。

    次工程の露出、色合わせのあとに実際にレンダリングして、本当に合っているかの結果を載せています。

    Nukeを使用したバックプレートとHDRIの露出・色合わせ

    バックプレートとHDRIの簡易的な合わせ方

    バックプレートとHDRIを組み合わせて使用する際には、撮影時のTHETA Z1のカメラ設定やホワイトバランスを基にしても必ずしも完璧に一致するわけではありません。

    そのため、ここではNukeで事前にHDRIの補正をしておくことで、CGのレンダリング結果とバックプレートを重ねるだけで自然に馴染むようにすることが可能になります。

    ※ここで言う「バックプレート」は、VFX作品を前提にシネマカメラなどRAW、Logで撮影され、カラーグレーディングは適用されておらず、OCIOを使い適切なカラースペースで読み込めるものを想定しています。デジタル一眼カメラのLog撮影は、メーカーによってはフラットにならない場合があります

    こういった色合わせの際には、よくNukeのmmColortargetでHDRIのカラーチャートとVFXプレートのカラーチャートを合わせるようなフローを紹介している記事もありますが、これはあまり良くありません。

    ここで紹介しているフローでは、THETA Z1用のIDTを使用して現像を行なっています。

    mmColortargetを使用してHDRIのカラーチャートとバックプレートのカラーチャートを合わせる方法は、チャートに含まれる色は一致させることができますが、チャートに含まれない色味に関しては逆に不一致を生じさせる可能性があります。

    特に同じOCIO等でIDTを利用している場合では、元々の色のバランスを崩してしまうことがあるため、この方法は推奨されません。基本的にはホワイトバランスと露出を合わせるだけで、ほぼ一致します

    ※撮影時レンズにフィルタ等使用していないことが前提にはなります

    参考リンク

    THE COLORCHECKER CONSIDERED MOSTLY HARMLESS

    ホワイトバランスと露出の補正

    撮影されたバックプレートとHDRIのホワイトバランスを整えるというのは、両カメラのホワイトバランスのズレを直すということです。

    ホワイトバランスの補正を行うにはまず、可能であれば昼間の太陽光下や安定した高演色の白色光環境で、チャートの光源影響が変わらないように撮影カメラ、THETAを同一箇所に置き、チャート(カラーチャート・ホワイトバランスカード・グレーカードのいずれか)を本番撮影前後に別途キャリブレーション用のリファレンスとして撮影しておきます。

    ショットごとにチャート撮影を行なっていればそれを使用することもできますが、本番撮影時にチャートを正しく撮れない場合やライティング環境によっては正確な補正を行えない場合があります。

    シネマカメラ等の撮影カメラの場合では、ホワイトバランス設定は基本固定値でシーンや環境が大きく変わらない限り、ショットごとに変わることは極めて稀です。変わった場合に対応できるよう、設定ごとにチャートをキャリブレーション用として撮影しておきましょう。

    THETA Z1も、現像時に個別に調整していない限り全てデフォルトのホワイトバランス(5000K)で現像されていると思います。そのため、一度バックプレートと合わせたHDRIのホワイトバランスの補正値は機材間のズレを補正したことになるため、他のショットで撮影しているHDRIに対しても同じ補正値で多くの場合一致するということになります。

    そのため、キャリブレーション用のリファレンス撮影が正しくできていれば、本番撮影時にTHETA Z1(HDRIカメラ)ではチャートを毎回撮影しなくても最悪大丈夫ということにできます。

    複数のメーカーの異なる撮影カメラがある場合、それぞれの撮影カメラでチャート撮影しておく必要があります。キャリブレーション用のリファレンスがあっても、シーン単位ではTHETA(HDRIカメラ)でも保険としてチャートを撮影しておくほうが良いでしょう。

    配布データに含まれる[ColorMatch]ノードは、これらの考えに基づいてホワイトバランスの補正と露出の補正を分離しているため、様々なパターンに対応しやすくなっています。

    ColorMatchノードを使用した補正

    では、[ColorMatch]ノードを使用した補正の方法を紹介していきます。

    まずは、撮影カメラで撮影したチャートとTHETA Z1で撮影したチャートを用意します。

    基本的には、撮影プレートにHDRIの方を合わせたいです。

    Match WhitepointのSource colorでHDRIのチャートを、Target colorで撮影プレートのチャートの同一のグレーをスポイトでピックします。

    ※ColorMatchノードが繋がっている方のカラーピックを行うときは、一時的にColorMatchノードをショートカット[D]でdisableするか、Viewerノードを1つ上のノードに繋げておきます

    これでホワイトバランスは一致したかと思います。

    もし、全体をみて色のズレを感じる場合はチャートの他のグレーだったり、共通して映っている色ムラの少ないなるべくニュートラルな色の箇所をピックしてみて、一致する箇所を探してみます。

    カラーチャートなどが小さく映ってしまっていると、ノイズや収差の影響で精度が悪くなるため、色が合わないことがあります。


    次に露出です。露出はNukeマージツールで用意しているように撮影プレートのメタデータを参考に合わせることもできますが、カメラ自体のズレやレンズ特性、ビネット、NDフィルタ使用などの要因でズレが発生することが多いので、こちらも撮影プレートとチャートの共通箇所をピックして合わせる方が手っ取り早く確実です。

    先ほど合わせたバックプレートとHDRIの露出を合わせる場合、Match Whitepointの[Match Exposure]にチェックを入れると露出も一致します。

    これで、ホワイトバランスと露出が一致しました。

    その他のパラメータ

    [Change Exposure]では、露出のみ他のショットと合わせるためのカラーピックを行えます。

    これは、同じホワイトバランス設定で撮影された他のショットのバックプレートとHDRIを合わせる場合に有効です。ホワイトバランスを合わせたノードをコピーして、他のショットのHDRIも調整します。

    この場合、露出を合わせるためだけなので、正確なチャートでなくても撮影プレートとHDRIで共通して映っている色ムラの少ない箇所をピックして合わせても、色味を変えずに露出を合わせられます。事前にホワイトバランス補正用の撮影ができていれば、THETA Z1(HDRIカメラ)でチャート撮影が最悪できてなくても良いということに繋がります。

    [Pick Other source Match Exposure]にチェックを入れ、合わせたい共通箇所をピックします。

    [Use Whitepoint Source color]にチェックを入れると、Source colorにはホワイトバランス補正時にピックした箇所の露出を使えます。複数のショットに対してHDRIが共通といった場合にHDRIのソースは固定になるため、露出のみそれぞれの撮影プレートに合わせ直して色調整のズレがないかの確認や、ショットごとに露出まで合わせたHDRIの書き出し等ができます。

    事前にこの調整を行なっておくことで、ショットごとにコンポジターがCGを調整することによるバラツキが出ることがなく、CG合成が馴染まないときにも何が問題なのかを探りやすくなります。

    実際にはショットごとにHDRIを合わせて書き出すとHDRIの数も増えるため、VFXプレートのカットごとの露出のバラツキなどを抑える補正をしておくNeutral Grade(Neutral Balance Grade)のフローと組み合わせると、よりよい結果を得られます。

    共通のHDRIを使用できるように、撮影プレートの露出を事前にある程度シーン単位でColorMatchノードで揃えておいたり、HDRIに対して撮影プレートを一度合わせておきます。合成後に補正を戻せるようにreverseのチェックがColorMatchノードには付いています。

    結果の確認

    調整ができたらHDRIでレンダリングを行なって、CGの馴染みを確認します。必要に応じてCGのブラックポイントの調整のみ合成時に行うだけできれいに馴染む合成を行えます。これにより、コンポジターはより画づくりのための作業に集中できます。

    照度計の値を基に太陽光の補完処理をし、バックプレートに露出とホワイトバランスを合わせたHDRIを書き出してCGのチャートとグレー・ミラーボールのレンダリングを行なってみます。

    • ▲実写撮影プレート
    • ▲何も補正なし光源がクランプされているため暗く、反射を見ても色味がバックプレートに合っていない
    • ▲照度計の測定値を基に太陽光補完、バックプレートに合わせて色補正

    CGは今回のフローで作成したHDRIだけを使ってレンダリングを行い、何も調整せずレイヤー合成しただけです。

    いかがでしょうか? 測定値を基に合わせただけとしては、十分近似している結果はないでしょうか?

    事前に照度計での測定は必要ですが、この方法だと、簡易ながらチャートやグレーボールの光源のハイライト、落ち影のバランスを見ながら、光源の追加や調整を行うより早く正解に近い値にたどりつくことができます。光源調整を行うたびに再レンダリングして確認する手間も最小限にできます。測定値と近似しているという安心感もあります。

    多くの場合、以上の方法でファーストルックとしては十分な結果を得られます。

    ここまでにできたHDRIは、あくまでHDRIを撮影したポイントを再現できただけです。これだけでレンダリングして合成した場合、馴染みは良くてもライティングが良い、ルックとして良いとは言えないことがあります。

    そのため、多くの場合、より良く見せるために追加のCGライティングを行うのが一般的になります。また、HDRIだけでは再現できない環境もあったりします。このあたりは長くなるため、次回以降の連載で紹介できればと思います。

    こんなときはどうすれば?

    ・HDRIカメラでチャートが撮影できていないとき
    もしチャートが撮影カメラでは撮影されていて、HDRIカメラではキャリブレーション用の撮影もショットでも撮影されていない場合や、それ以外では素材サイト等のHDRIを使用する場合などが当てはまります。

    その場合はひとつの色合わせの方法として、補正していないHDRIを使って一度チャートをレンダリングし、実写のチャートと上記手法で同様にカラーマッチを行い、その結果をHDRIに適用する方法があります。

    なお、この方法は最終手段なので、品質的観点から見るとあまり推奨はされません。
    ※HDRIの光源補正等が行えているか、クランプされていないHDRIを使用する場合に限られます。

    また、補正していないHDRIを使いレンダリングを行なったあと、コンポジット段階でレンダリングされたCGチャートを使い実写のチャートと合わせる方法もあります。

    バックプレートは暖色なのにHDRIだけのレンダリング結果は寒色といった場合は、CG上でライティングやシェーダ確認がやりづらかったり、追加ライトやシェーダを調整して強制的に暖色系に合わせることでおかしなレンダリング結果になってしまったりします。

    また、それらを合わせるコンポジターごとにズレが出たりしてしまうなどの可能性を考えると、可能な限り事前に補正しておくほうが良いでしょう。



    ・露出が合わないとき
    バックプレートに露出を合わせた際に、光源は照度計に合わせて誤差も少ないはずなのに露出が合わないときがあります。

    考えられる原因としては、CG上でHDRIの向きが合っていない、HDRIとチャートの撮影位置やチャートの向きが撮影時やCG上でズレていて、そもそもの明るさが異なる場合。

    HDRI撮影前後で照明の調整が入ってしまった場合や、日の出や日の入り、雲の流れが早い屋外での撮影など数分で明るさが変わってしまい、撮影カメラとHDRIの露出を合わせても光源の照度値が合わないことが考えられます。

    こういったケースもあるため、必ずしもHDRIやリファレンスが本番の撮影ショットと一致しないことがあると認識しておいて下さい。

    太陽や雲などの場合は、本番撮影時に照度値だけでも計測できていれば、HDRIを強制的に本番ショットの照度と合わせることができますので意識しておくと良いでしょう。



    ・色味が合わないとき
    バックプレートとHDRIを合わせたのに、プレートのチャートの色味とCGレンダリングのチャートの色が合わない場合があります。

    そういった場合は、光源がクランプされていないか、光源を補正している場合はその補正値の色が間違っていないかなどを見直しましょう。HDRIをsRGB等で書き出している場合に、カラー照明の色域がクランプされていたり色が変わったりする場合があります。

    また、初歩的なミスとして、CGソフトでHDRIを読み込むときのカラースペースを間違っていないかも注意が必要です。

    光源の色がズレている場合には、ホワイトバランスの補正と同じように、CGカラーチャートのライトグレーのズレを実写のチャートと合うように一度計算し、同様の補正を光源(Add Sun)のカラーに施しHDRIを書き出し直すことでズレを補正できます。

    それ以外ではチャートは正しく映っている前提で考えると、以下の原因などによってズレが起きていると考えられます。

    ・バックプレート素材がIDTによる補正がされていない
    ・照明の組み合わせや照明の演色性
    ・撮影時のレンズや使用されたフィルタ

    そういう場合に限っては、レンダリングしたCG素材をプレートに合わせるためにmmColorTarget等をCG素材に対して使用するのは適切といえます。

    はじめに紹介した通り、mmColorTargetを使うと、正しいはずのバランスが崩れたり、チャートにはない色域で破綻が起きたりすることがあります。そのため、IDTを使用できているプレートには極力使わず、HDRIにはそもそも使用しない方が良いでしょう。光源として使うHDRIの場合では、画像としての見た目が合っていても実際にレンダリングした結果が合わなくなる場合があります。

    もっと高い精度は必要?

    本連載ではなるべく撮影に手間をかけず、難しいカラーマネジメント、カラーサイエンスの話も省いて、アーティストの方が誰でも真似できて必要十分な品質のHDRIを作成する手順を説明しています。

    例えば、THETA Z1ではなく一眼レフとNDフィルタを使ったより厳密な撮影・現像と補正を行なったり、照度計ではなく輝度計と標準反射板を使用したり、光源補正も分光カラーメータの測定値からクランプされた光源色を求めるなど、もっと手法を掘り下げると、より品質を上げることはできます。

    しかし、そこまで作業コスト、機材コストをかけて厳密にやる必要性があるのか? という話が必ず出るでしょう。どんなに精度が高くなっても画像ベースの天球光源でしかなく、撮影したレンズのその位置の再現性しかありません。

    より正確な照明を考える場合は、3D空間的な正しさを再現していくことにコストをかける方が重要になっていきます。

    そう考えると、ここまでに紹介しているフローは、コストパフォーマンス的に比較的誰でも簡単に真似することが可能で、必要十分な結果を得られるフローになっているかと思います。

    また、実写合成で使用しない場合は、第3回で紹介している簡易的なフローでも十分な品質を得られます。

    ※クランプされた光源の補正は何かしら必要な場合があります

    コストをかけた手法の参考リンク

    The Definitive Weta Digital Guide to IBL
    SIGGRAPH course 2016: An Artist-Friendly Workflow for Panoramic HDRI(Unity)
    信頼性の高いHDRI作成術: CEDEC 2020 株式会社バンダイナムコスタジオ

    撮影時のリファレンス

    カラーチャート

    ここでは、VFXに限定して説明をしていきます。

    カラーチャートは必要に応じてカラーキャリブレーションや色、露出を合わせ、ショット間のバラツキを整えるために使用します。

    主に使用されているのはcalibrite(旧X-Rite)ColorChecker Classicで、様々なサイズで展開されています。

    他にもDatacolor Spyder Checkrなど一般的です。ケース入りで扱いやすく、たまに現場でも見かけますがSpyder Checkrはカラーパッチの色とパッチの配列がcalibriteのものと若干異なるため、キャリブレーション用途やCG上のチャートの作成等では注意が必要です。撮影プレートとの色合わせ、露出合わせにしか使用しない場合は問題ありません。

    カラーチェッカーは現calibriteが取り扱う商品名称であり規格です。「マクベス」と呼ばれることもありますが、これはカラーチェッカーの初めの開発販売元がマクベスで、商品名がマクベスカラーチェッカーだったからです。その他のメーカーのものや、品質保証がされていない安価なものは基本的に推奨されません。

    色合わせのためのグレーカード、ホワイトバランスカードはある程度ちゃんとしたメーカーが出しているものであればどれでも問題ありませんが、撮影時に混在しないように注意が必要です。

    連載第2回で説明している通り、HDRIとセットで撮影する場合にはHDRI撮影位置と同ポジションで、撮影カメラを使ってリファレンス撮影しましょう。

    HDRIカメラでチャートを撮影する場合は、理想としてはチャートの位置はHDRI撮影位置から変更せず、HDRIカメラを撮影カメラ位置に動かして撮影しましょう。そうすることで、光の当たり方が一定のチャートを撮影できます。

    撮影カメラでチャートをリファレンス撮影する場合は、チャートを上下左右に傾け光の当たり方が変わるようにしておくと、角度による光の強さやチャートに光が当たった状態と影になった状態を撮影できます。そうすると、光源に対する反応がわかりやすくなりトラブルが起きづらくなります。一番良くないのは一部だけ影が入っていたりする場合です。

    近年はOCIOの登場でシネマカネラ等のIDTを使用したシーンリニアワークフローが使用できるVFXにおいては、カラーチャートよりグレーカード、ホワイトバランスカードが大きく映っている方が良いでしょう

    特に屋外などの撮影現場ではチャートは小さくなりがちです。そのため大きなサイズのチャートを使うか、ホワイトやグレーカードだけのものが大きく映っている方が後の補正に使いやすくなります。

    撮影カメラとチャート位置が遠くサイズ的に映らない場合では、カメラにチャートを近づけても照明環境が変わってしまうため、あまり意味がない素材になってしまいます。そのため、可能であればカメラの方を近づける方が好ましいです。

    こうした点に気をつけて撮影されたカラーチャートがあると、照明の演色性等が問題で、CGと実写の色が合わないなどの問題を発見しやすくなります。

    くり返しになりますが、露出とホワイトバランスを合わせるためには、撮影カメラとHDRIカメラの両方で撮影するのが理想となります。しかし、先に述べたように事前に整った環境で、ホワイトバランスのキャリブレーション用の素材が両カメラで撮影されていれば、必ずしもショットごとにカラーチャートがなくても対応できるため、無理にチャートを撮影しなくてもいいようにできます。

    CGソフト内で使用するカラーチェッカーは、colour-science.orgが制作したものが良いと思います。

    X-Rite ColorChecker 2005 - 2014 Classic - GretagMacbeth 2.0

    Nukeデータと各カラースペースでレンダリング済みのEXRへのリンクもあります。

    ※ACESの技術文書にもカラーチェッカーのリファレンス値が記載されています。CGWORLD vol.262(2020年6月号)で配布のチャートはこちらを基に作成されているもので、IDTもこの値を理想とし作成されています。colour-science.orgのチャートとの差は僅かです

    余談ですが、ACESの仕様に準じると、D60標準光源において標準拡散反射板の18%を露出基準としたとき、IDTを使用して撮影された素材のカラーチャートの22番パッチのACES上での理想値は0.2(R:0.20253 G:0.20243 B:0.20287)となります。そのため22番を18%グレーとして0.18にして露出を合わせてしまうと、全体の露出が少し暗い印象に感じる場合があります。

    その他のパッチの値はACESの技術文書(Page 23)をご覧ください。

    小話:18%グレーカードとホワイトバランスカード

    カメラで正確なホワイトバランスを取得する場合では、一般的には18%グレーではなく約60~90%のライトグレーになっているホワイトバランスカードが良いとされています。

    主な理由

    ・18%グレーは露出基準のためにつくられており反射率が18%だが、反射率18%=完全にニュートラルなグレーではない
    とは言っても多くの場合ニュートラルなグレーですが、メーカーによっては反射率が18%であっても少し彩度をもっている場合があります。ホワイトバランスカードはホワイトバランスを合わせるためのものなので、よほど安価なものでない限り、基本的にはニュートラルな白になっています。

    ・18%グレーよりライトグレーの方がグレイン、感度ノイズの影響を受けにくいため
    暗い環境だと特に暗めのグレーはグレイン、感度ノイズの影響でカメラによっては色味が正確でなくなることがあります。

    ・ライトグレーの方が環境の影響に反応しやすいため
    60~90%と反射率が高いライトグレーの場合、それだけ入ってきた光を拡散反射しているため、照明・環境による影響を受けていると言うことなので正確なホワイトバランスのピックをしやすくなります。


    しかしながら、白飛びしやすい環境などニュートラルな18%グレーの方が良い場合もあります。

    上記はあくまでも白を白としたいときにホワイトバランスを正確に合わせる場合の話となり、夕景や朝日などはチャートを使ってホワイトバランスを取ってしまうと赤味が抜けて気持ち悪い画像になってしまいます。

    HDRIと撮影プレートを合わせる場合には、同じ環境影響で撮影したもの同士を合わせる作業なので、パッチが小さすぎたり、どちらかによほどノイズが乗ったり色かぶりしていない限りは、なるべくニュートラルであれば18%グレーでもライトグレーでも大きな問題は起きにくいです。

    グレーボール

    HDRIを使用したIBLにおける露出バランスの確認に使用します。ハイライトと暗部の影の出方や、ハイライトの色、影色の出方が確認できます。

    クランプされた太陽光を追加する際の光源の強さ、柔らかさ(影のボケ具合)の調整の確認の他、HDRIに限らず、追加のライトで演出をする際のライティングのバランス確認等にも使用できます。

    塗装は18%グレーである必要はないですが、なるべく無彩色のグレーで光沢は少ない方が良いとされます。

    ※光沢は少ない方が良いとされるが、光沢が多少あることでスペキュラの判断を行いやすいため、用途によっては光沢を残した塗装の方が良い場合もあります
    ※海外ではVFX向けの18%グレーとされる塗料もいくつか売られていますが、多くが日本への発送非対応で購入は難しいです
    ※無彩色であることで光源の色、環境によるバウンス光、影色の確認等を行いやすく、グレーであることで光が当たったときのグラデーションを見やすいです

    シンプルな発泡スチロールの球で代用することも可能ですが、白飛びしやすいためハイライトの確認には向きづらく、意外と光沢もあるので反射が出やすい等の欠点があります。

    球体のため様々な要因の影響を受け、18%グレーに塗装を行なっても色味の正確性や塗装具合により反射が出るため、グレーカードの代わりとしての使用は推奨されません。同じ理由で合成時、リファレンスとCGのグレーボールに色味を無理に合わせない方が良いです。

    撮影時、特に屋内では光源の影響が変わらないように、HDRI撮影のレンズとなるべく同位置にグレーボールが来るようにしましょう。

    正確なHDRI(光源がクランプされない高演色の環境で撮影したHDRI)を使用してルックデヴを行い、現物のグレーボールのマテリアルを再現した3Dアセットを作成しておくと扱いやすいです。

    塗装が傷つかないよう、取り扱いには注意しましょう。自作でハーフミラーにしない場合は、プラスチックや木など塗装の定着しやすいベース球体の素材にすることで、塗装ハゲしにくくなります。

    ミラーボール(クロームボール)

    HDRIの方向調整や、光源位置の確認を行うために使用します。

    海外ではクロムメッキ(ミラーコーティング)を主な由来として、「クロームボール(Chrome Ball)」という名称がVFX用語として定着しているようです。

    ディスコ等で使用されるミラーボールとの差別化もあるのかと思いますが、本連載ではVFX含めず一般的に伝わる呼称であり、CG内での呼称としても適切な「ミラーボール」の方で記載しています。

    ひと昔前にはミラーボールを撮影して反射マップやHDRIを作成することもありましたが、THETA等が手軽に使える現在においては、精度的にもあまり推奨されません。

    方向の調整用途としては、HDRIを作成して3Dソフトに読み込んだままでは、撮影カメラと同じ方向を向いていない場合があります。バックプレートを見ただけではHDRIとバックプレートを撮影したカメラの位置が異なるため正確な方向合わせがしづらいので、CG上のミラーボールと比較することで方向の調整を行えます。

    また、CG上のミラーボールの映り込みと撮影されたミラーボールを比較することで、撮影時に追加の照明がないかなどの現場の状況確認も行えます。

    一般的にステンレス(鉄+クロムが原料)のミラー球体、半球が使用されますが、サイズによってそこそこ重量があります。

    方向合わせの確認に使用するだけであれば、アルミ蒸着やメッキ処理の軽量なプラスチック製品や黒のアクリル球体、半球等でも基本的に大丈夫です。いずれも防犯用やアクリル素材として売られています。

    黒のアクリル球体の場合は、雲観察ドームとしてもあるように、屋外においては白飛びが少なく映り込んだ光源位置や物体を確認しやすい利点があります。透明アクリル半球の内側を黒塗装するだけでもつくることができます。

    表面に傷や指紋などの汚れがつくとスペキュラが強く発生したりして肝心の光源が見づらくなるため、取り扱いには注意が必要です。

    撮影時は、特に屋内ではHDRI撮影のレンズとなるべく同位置にボールが来るようにします。そうしないと、HDRIを使用してレンダリングしたCGのミラーボールと映り込み方が合わなくなるため、調整がしづらくなります。

    ステンレス製のものでも反射の減光や若干の色ずれが出るため、基本的に色や露出を見るためには使用しないものですが、空の色味等がある程度合っているかの確認はできます。

    その他のリファレンス

    その他のリファレンスとして、造形サンプルなどがあります。実際にCGに置き換わる現物や、モックアップや近しい形の造形物、塗装サンブルや布地、毛皮など質感や色味の参考となるもの。それらがある場合、同じ環境で撮影しておくことで、光の当たり方や質感などCG制作の参考になりやすいです。

    チャート等と同様に、HDRIを撮影したレンズと同じ位置に置いてリファレンス撮影することで、ルックデヴやライティングのときに差異が生じづらくなります。これらはHDRIカメラでの撮影は基本的に不要です。

    リファレンス撮影のポイント

    カラーチャート、グレーボール、ミラーボールのサイズは現場に応じて適切なものを選択する必要があります。小さなもので良い場合もあれば、大きめでも撮影カメラからは小さく映って使えない場合もあります。

    グレーボール、ミラーボールはHDRIカメラでの撮影は基本不要です。バックプレートのない、HDRIだけの単体撮影の場合は、あるとレンダリング時の確認に使用できます。

    ボールといいますが、カメラに映るのはカメラを向いている半球のためいずれも基本半球で問題なく、ミラーとグレーを半々にしたものもよく用いられています。

    チャート、グレーボール、ミラーボールを一緒に並べて配置することで撮影を1回で済ませられます。それぞれが影等の影響を及ぼさないように、屋内の場合は光源との位置関係に注意しましょう。

    グレーボール、ミラーボールを持ってキャラクター等と同じ導線を動くリファレンス動画を撮影カメラで撮ることで、グレーボールで照明の影響の変化の確認、ミラーボールでその影響している照明の確認を行うことが可能です。

    グレーボールやミラーボールは自作するか、海外から輸入購入することになるでしょう。購入の場合はVFX Ball、Chrome Ball、Grey Ballなどの用語で探すと出てきますので参考にしてください。

    参考リンク

    The Grey, the Chrome and the Macbeth Chart : CAVE Academy Wiki
    VFX Firsts: What was the first film to use a chrome ball, and when were they first used for HDRI lighting?:befores & afters
    THE COLORCHECKER PAGES (1/3) : The BabelColor Company
    実は知らない?!カラーチェッカーの正しい使い方と活用法 : GIN-ICHIスタッフブログVOL.20
    18%グレーボールの作り方:CGcompo
    比較的ニュートラルな18%に近いグレーボールの自作例
    水性塗料 【つや消し 日塗工 N-50】 マンセル N5 DIY 建物 壁紙 ビニルクロス 塗装 エバーロック ロックペイント ペンキ
    こちらも比較的ニュートラルな18%に近いグレーだったCGSLAB検証済み塗料のひとつです


    テクスチャ撮影やルックデヴに関しては、以前に掲載の記事もご参考ください。
    CGSLABが教えるテクニカルルックデヴの真髄。フォトリアルルックデヴのためのリファレンス撮影TIPS

    リファレンス撮影の利点

    実写の撮影ではショットごとに細かい照明の調整がされ撮影が行われますが、全てのショットでHDRI撮影が行えるとは限りません。そこで、グレーボールとミラーボールがショットごとにあると、照明がどう変わったかの確認を行えるため、追加ライト等で実写撮影の照明を再現できるようになります。

    ただ、THETA Z1を使えるならHDRI撮影に時間がかからないため、ショットごとに全て撮影してしまう方が良い場合もあります。

    もしグレーボールとミラーボールどちらもリファレンス撮影されていないがHDRIはあるという場合は、撮影プレートの影方向等を参考に向きを調整するしかなくなるため、可能な限り撮影する方が良いでしょう。

    また、長距離を走るクルマの反射や、スモークや土煙など環境の影響がある場合、木漏れ日演出やMVなど動的ライトがある場合などでは静的なHDRIでは役に立たないため、ミラーボールなどがリファレンスとして有用な場合があります。こちらに関しても、次回以降の連載で紹介できればと思います。

    今回までで、HDRIの作成から補正までを紹介したので、次回はより実践的に、実際の実写映像の撮影からHDRIを使った合成までをやってみたいと思います。

    TEXT_CGSLAB
    EDIT_小村仁美 / Hitomi Komura(CGWORLD)