NUKE LensDistortion ノードについて パート2

こちらの記事では、NUKEX および NUKE STUDIOで使用可能なLensDistortionノードについて、前回の記事に引き続き、使用方法を紹介致します。

 

前回の記事では、LensDistortionノードを使用して、レンズディストーションの除去を行いましたが、こちらの記事では分析して計算したレンズディストーションを利用する方法について紹介致します。

 

▼レンズディストーションの他の素材への使用方法

各分析([Image Analysis][Grid Analysis][Line Analysis])を使用した場合、自動的にレンズディストーションの除去を行うため、[LensDistortion]タブの[Undistort]にチェックが入ります。このチェックを外すことで、分析したレンズディストーションを適用するノードに切り替えられます。

これを使用することで、一度検出したレンズディストーションを、ディストーションが含まれていないCG素材に適用することができます。

前回の記事で作成したLensDistortionノードから、以下の画像にディストーションを適用します。

  1. レンズディストーションの分析を行ったLensDistortionノードのプロパティを開き、[Undistort]のチェックを外します。
     

     
  2. LensDistortionノードのインプットを、レンズディストーションを適用したい素材に接続します。
     

これで、分析した結果を基に、素材にレンズディストーションを適用できます。結果は以下の通りです。

 

 

▼レンズディストーションをSTMapとして出力し、使用する方法

LensDistortionノードは、デフォルトでは[Output Type]imageのため、インプットに接続した素材に、分析した結果のレンズディストーションの適用または除去を行います。

こちらをDisplacementに設定すると、入力された素材に対しては処理を適用せず、分析したレンズディストーションをUVチャンネル(Viewerのレイヤーリストではforwardmotionレイヤー)として出力します。出力した内容はSTMapノードで利用できるほか、これを書き出して別のプロジェクトで使用することができます。

前回の記事で作成したLensDistortionノードから、以下の画像にディストーションを適用します。

  1. レンズディストーションの分析を行ったLensDistortionノードのプロパティを開き、[Output Type]Displacementに変更し、[Undistort]のチェックを外します。これで、レンズディストーションを適用するmotionレイヤーを出力することができます。出力内容は、Viewerでレイヤーのドロップダウンメニューでmotionを選ぶことで確認できます。
     

     
  2. Transform > STMapSTMapノードを追加します。レンズディストーションを適用したい素材を読み込み、srcインプットに接続します。
     

     
  3. LensDistortionノードをSTMapノードのstmapインプットに接続します。
     

     
  4. STMapノードのプロパティで、[uv channels]ドロップダウンメニューから、motionを選択します。
     

以上で、出力したマップで、素材にレンズディストーションを適用できます。結果は以下の通りです。

 

 

▼レンズディストーションをCardノードに適用する方法

LensDistortionノードで分析した結果は、画像に対して適用するだけでなく、3DのCardノードへ適用することも可能です。これにより、Cardノード自体を変形させ、imgインプットに接続している素材に対しては影響を与えずにCardノードに投影された画像をゆがめることができます。

  1. LensDistortionノードの[LensDistortion]タブの[Card Parameters]を展開します。
     

     
  2. 3D > Geometry > Cardから、Cardノードを作成し、imgインプットにCardノードに貼り付ける素材を接続します。Cardノードの[scale]と、LensDistortionノードの[Card Parameters]が同じ画面上で表示できるように、プロパティの位置を調整してください。
     

     
  3. LensDistortionノードの[scale]の値を、[Ctrl]キーを押しながらアニメーションのメニューボタンをドラッグし、そのままCardノードの[scale]のアニメーションのメニューボタンの上でドロップします。
     

     
  4. Cardノードのプロパティを、[LensDistortion]タブに切り替えます。そして、3の手順と同様に、LensDistortionノードの[a][b][c]のそれぞれの値を、[Ctrl]キーを押しながらアニメーションメニューボタンをドラッグし、Cardノードの[a][b][c]の各アニメーションメニューボタンの上でドロップします。
     

この操作により、LensDistortionノードの[Card Parameters]の値を基に、Cardノードが変形します。

計算したレンズが非対称である場合、つまりX軸とY軸のディストーションの値が異なる場合は、CardノードのLens Distortionパラメータは推定され、必ずしもLensDistortionノードの結果と一致するとは限りません。