こちらの記事では、NUKEX および NUKE STUDIOで使用可能なLensDistortionノードについて、概要と使用方法を紹介致します。
▼LensDistortionノードとは
LensDistortionノードは、撮影素材に含まれるレンズディストーション(レンズディストーション、歪曲収差)の適用、または除去が行えます。レンズディストーションを推定するために、Image Analysis(画像での解析)、Grid Analysis(グリッドでの解析)、Line Analysis(線を使用した解析)の3つのオプションがあります。これらのいずれかを使用してレンズディストーションを計算することができます。
これにより、CG素材との合成や、トラッキング時の補正に使用することができます。
LensDistortionはNUKEXおよびNUKE STUDIOで使用可能です。NUKEでは分析は行えません。NUKEXまたはNUKE STUDIOで分析した結果を使用することのみ可能です。
▼レンズディストーションの除去方法
手動で設定することによってレンズディストーションを除去することはできますが、[Image Analysis]、[Grid Analysis]、[Line Analysis]の3つのいずれかを使用することで、インプットに接続した素材を分析させて、レンズディストーションを除去することができます。各タブの設定を基に計算された結果はいずれも[LensDistortion]タブに反映されます。
その各タブを使用してレンズディストーションを分析し、除去する手順を紹介致します。
[Grid Analysis]を使用する
この方法はソースとして、あらかじめ同じカメラとレンズで撮影されたグリッド、またはチェッカーボードの素材が必要ですが、該当する素材があれば、とても速くレンズディストーションを分析することができます。
- グリッドを撮影した素材をReadノードを使用してそれぞれ読み込みます。グリッドの素材のReadノードを選択した状態でツールバーのTransform > LensDistortion でLensDistortionノードを作成し、Viewerノードを接続します。
- グリッドの素材を確認します。素材がチェッカーボードの場合は、白黒に近い状態にすることで、検出しやすくなります。こちらの素材のチェッカーボードは色調補正が必要だったため、LensDistortionノードの上にGradeノードを追加しました。適用前と適用後の画像は以下の通りです。
- [LensDistortion]タブで、[Output Type]で補正結果の適用先を、[Lens Type]で撮影された素材のレンズの種類を選択します。[Grid Analysis]タブに移動し、[Grid Type]で該当するグリッドを選び、[Analyze Grid]ボタンを押します。これで自動的に[LensDistortion]タブの各項目の設定がおこなわれ、レンズディストーションが補正された状態のグリッドが表示されます。
- 以下の画像は、適用する前と適用した後の結果の比較です。この方法で分析を行ったLensDistortionノードのインプットを、レンズディストーションを除去したい素材のReadノードへつなぎかえることで、分析した結果をそのまま使用し、歪みを除去することができます。
[Image Analysis]を使用する
こちらの方法は、接続されたシーケンス素材のトラッキングを行い、どの部分が歪んでいるかを分析する方法です。
- レンズディストーションを除去したい素材をReadノードを使用して読み込み、Readノードを選択した状態でツールバーのTransform > LensDistortion でLensDistortionノードを作成し、Viewerノードを接続します。
- 素材を確認します。シーケンス内にカメラの動きでないものが含まれている場合は、それをあらかじめ除去しておくと、精度が向上します。Rotoノード等をReadノードの下に接続し、マスクを作成します。Rotoノードのアウトプットは、LensDistortionノードのMaskインプットに接続します。
- LensDistortionノードのプロパティ内[LensDistortion]タブで、[Output Type]で補正結果の適用先を、[Lens Type]で撮影された素材のレンズの種類を選択します。[Image Analysis]タブに移動し、[Mask]でMask Alphaを選択します。これで選択された範囲を除外してポイントを配置、トラッキングします。マスクで囲んだ範囲のみトラッキングしたい場合は、Mask Inverted Alphaを選択します。
- [Analysis Range]で分析するシーケンスの範囲を、[Camera Motion]でカメラの動きを指定し、[Analyse Sequence]ボタンをおして、分析を開始します。これで自動的に[LensDistortion]タブの各項目の設定がおこなわれ、レンズディストーションが除去された状態のシーケンスを得ることができます。以下の画像は、この方法で分析した際の適用前と適用後の結果の比較です。
[Line Analysis]を使用する
こちらの方法は、撮影された素材の中で本来直線であるものの線を手動で指定し、その内容を基に分析を行う方法です。シーケンスでない場合や、グリッドの素材がない場合等に使用することができます。
- レンズディストーションを除去したい素材をReadノードを使用して読み込み、Readノードを選択した状態でツールバーのTransform > LensDistortion でLensDistortionノードを作成し、Viewerノードを接続します。
- [LensDistortion]タブで、[Output Type]で補正結果の適用先を、[Lens Type]で撮影された素材のレンズの種類を選択します。[Line Analysis]タブに移動し、[Drawing Mode On]のチェックを入れます。これにより、Viewer上で線が描けるようになります。Viewer上で、垂直、または水平な直線のものの上で、左クリックでポイントを配置します。1本の直線を構築するようにポイントを複数配置し、右クリックをして線にします。配置したポイントはドラッグで位置を調整することができます。ポイントやラインの削除は、[Delete Last Line]および[Delete Last Point]を使用します。
右クリックした後に、再度Viewer上で左クリックをすると、新しい線を作成できます。何箇所か作成します。線を作成するためには最低3つのポイントが必要で、分析を開始するには最低3つの線が必要です。
- 完了した段階で、[Drawing Mode On]を無効化し、[Analyze Lines]ボタンを押します。各タブの設定を基に計算された結果は、[LensDistortion]タブに反映されます。以下の画像は、この方法で分析した際の適用する前と適用した後の結果の比較です。
上記の操作で、撮影素材に含まれるレンズディストーションを取得し、除去することができます。
LensDistortionノードのその他の使用方法や、取得したデータを利用する方法につきましては、次回の記事で紹介致します。