NUKE Smart Vector ツールセットの使用方法 パート1

こちらの記事では、NUKE 10より追加されているSmart Vectorツールについて紹介致します。

※Footage courtesy of FOUNDRY(こちらの記事で使用している素材は、FOUNDRY社よりご提供いただいている素材です。)

※使用しているNUKEのバージョン:NUKEX 10.5v3

 

SmartVectorツールとは

Smart Vector ツールは、シーケンス内の動きや変形が行われている部分に対して、あるフレームのペイント情報や画像をシーケンスの一部に貼り付けるためのツールセットです。この機能を使用することで、動いている対象に画像やペイント情報を変形しながら追従させるような場合に必要になるペイント作業を最小限に抑えることができます。このツールセットには、以下のノードが含まれます。

SmartVectorノードは、VectorDistortノードをSmartVector ツールセットの一部として動作させるために必要なモーションベクター情報を.exr形式に書き込みます。

VectorDistortノードは、参照用のあるフレームからペイント情報を取り出し、それをSmartVectorノードによって生成されたモーションベクター情報を使用して、シーケンスの残りの部分でペイント情報を変形させます。

実際の操作方法につきまして、こちらのシーケンスを使用し、以下にて紹介致します。

 

 

モーションベクターの生成

Smart Vectorツールセットを使用する場合には、まず、あとの処理の計算時間を減らすために、一度モーションベクター情報を生成します。

  1. 画像を変形し、追従させるシーケンスをReadノードで読み込み、SmartVectorノードを下に接続します。この時点ではエラーがでますが、これは次の手順で解決できますので、問題はありません。
     

     
  2. SmartVectorノードのプロパティの[file]で、有効なファイルパスを入力します。この際、モーションベクター情報の書き出しを行うファイル形式は、.exr形式を指定する必要があります。また、[Preferences] > [Behaviors] > [File Handling]の設定に応じて、フレームパディングをファイルパス内に追加してください。以下の画像では、[###]を使用して設定しています。
     


    この時点で、エラー文章が変わります。引き続きエラーはでたままですが、こちらも次の手順で解決します。
     

     
  3. [range][from]、および[to]のコントロールを使用して、情報をレンダリングするフレームの範囲を設定します。
     

     
  4. [vector detail]コントロールで、保存する情報に必要なディテールレベルを設定します。低いディテールと動きのあるシーケンスでは、デフォルト値の0.3で十分ですが、作業中の領域が小さく、0.3ではうまく情報が得られない場合や、より高品質の結果が必要な場合は、数値を1.0に上げてディテールを追加することも可能です。この値を上げることでレンダリングに時間がかかるようになりますが、後のVectorDistortノードの結果でより細かい結果が得られます。
    以下は、左が[vector detail]を0.3に設定した時の画像、右が[vector detail]を1.0に設定した時の画像です。
     

     

  5. [Render]ボタンをクリックして、モーションベクター情報の.exrファイルを書き出します。
    ビューアーをSmartVectorノードに接続し、ビューアーの上にある[layer]コントロールをsmartvectorに切り替えることで、生成されたベクトルを確認することができます。
     

     
    また、NodeGraph内の作業を継続できるようにするには、SmartVectorノードを選択し、F7キーを押します(または[Render]>[Render Selected Write Nodes]に移動します)。
    [Render]ダイアログで、[Render in Background]を選択し、[OK]をクリックして、レンダリングをバックグラウンドで実行します。

尚、現時点ではSmartVector ノードは[motion][forward][backward]レイヤーを出力しません。これらのチャンネルが必要な場合は、SmartVectorノードの下にVectorToMotionノードを追加してください。VectorToMotionノードは、ベクトル情報を、VectorBlurでモーションブラーを作成するために使用可能なmotion情報に変換します。

 

 

ソースにペイントを追加する

先程取得した情報を適用する先のペイント内容を作成します。適切な参照用のフレームを確認し、必要なペイント補正または画像をフレームに追加します。今回の素材では、顔につけたマーカーを削除するためのペイントを、RotoPaintノードで行います。

  1. まず、シーケンス内容を確認し、参照用に使用するフレームを確認します。一番動きおよびモーションブラーが少なく、貼り付ける箇所が隠れていないフレームを選びます。
  2. 次に、RotoPaintノードを追加して、選択したフレームにペイントを行います。ペイントする各シェイプは、[Stroke] > [source]backgroundを選択しておきます。こちらでは、Cloneツールを使用してペイントを行いました。
     

ペイントに選択したフレームと、そのペイント内容は以下の通りです。

もちろん、この時点では、選択したフレームでしか効果は適用されておらず、他のフレームでは、マーカーはそのままです。

Node Graphは以下のように設定されています。(RotoPaintのノードの下にあるErode(blur)ノードは、輪郭を調整するためのものです。)

 

これで、VectorDistortノードに入力するための必要な要素は揃いました。次回のNUKEの記事で、実際に他のフレームへ、このある1フレームの結果を変形して適用します。