モーションベクトル AOV のチュートリアル

motion_vector AOV を使用したモーション ブラー

Arnold のモーション ブラーは、一般的に自然なモーション ブラー サポートを使用するのが最も効果的です。このサポートでは、カメラのシャッターを開いてからシャッターを閉じる間に、オブジェクトのトランスフォームと頂点が時間の経過とともにサンプリングされます。モーション ブラーによるノイズを解決するには、AA サンプルの数を増やす必要がありますが、通常これらのサンプルは、被写界深度、直接光と間接光、ボリュームレンダリングなどからのノイズのために必要になります。厳しい時間制約がある場合には、代わりにモーション ベクトルを出力し、後で合成パッケージ内でイメージをブラーする方が高速です。このタイプのモーション ブラーは、精度が低く、オブジェクトの移動や、カメラに対する深度の複雑な相互作用などによるライティングの変化をキャプチャしません。ただし、場合によってはそれでも十分です。

ここでは、モーション ベクトルの使用が望ましい場合のために、モーション ベクトルを生成する方法を説明します。モーション ベクトルを生成するには、2 つの方法があります。1 つはシェーダを使用する方法、もう 1 つは Arnold が提供するビルトインの AOV を使用する方法です。このチュートリアルでは、ビリヤード台のシーンで motion_vector AOV を使用する方法について説明します。本当の 3D モーション ブラーと比較して、この手法を使用した場合の利点と欠点について確認します。 motion_vector AOV は、シーン内のオブジェクトの動きを示すカラー チャネルを出力します。この AOV は、2D モーション ブラー エフェクトを計算するためにポスト プロセッシング ソフトウェアで使用することができます。本当の 3D モーション ブラーと比べて、一般的にレンダリング時間が短いという利点があります。

シーン ファイルは、こちらからダウンロードできます。

ビリヤード台のレイヤを作成する

モーション ベクトル AOV をレンダリングするには、最初にバックグラウンドからビリヤードの球を分離する必要があります。ビリヤードの球を(motion_vector AOV を使用して)個別にレンダリングし、Nuke などのポスト プロセッシング プログラムで球を 1 つにコンポジットします。

ビリヤードの球のレンダリング(残りのシーンでは primary_visibility は無効)

バックグラウンド レイヤを作成する

バックグラウンドのレンダリング(primary_visibility が無効に設定されたビリヤードの球)

ビリヤード台のカメラ レイ(primary_visibility)が無効

Arbitrary Output Variables (AOVs) Managerに、AOV として RGBA と motionvector を追加

コンポジット

Nuke での Vector Blur ノードの設定

VectorBlur: アルファ無効: 正しくない VectorBlur: アルファ有効: 正しい

最後に、バックグラウンド レンダーにコンポジットされたビリヤードの球のレンダーが次のように表示されます。

モーション ベクトル AOV によってレンダリングされたビリヤードの球 バックグラウンド レンダリング 背景にコンポジットされたビリヤードの球

制限事項

Arnold のネイティブ 3D モーション ブラーのレンダリングと比較すると、2D モーション ベクトルのレンダリングにはいくつかの制限事項があります。その制限事項には、反射面のモーション ブラー、デフォメーション ブラー、実際にはない 3D モーション ブラー エフェクト(カメラに向いていないホイールの回転など)、モーション ブラーが適用されている光源を使用したタイム ラプス エフェクトなどがあります。

反射モーション ブラーは、モーション ベクトル ブラーを使用している場合には適用できません。

ヒント:

モーション ベクトル AOV にはデフォメーション モーション ブラーの処理に問題があります。 デフォメーション モーション ブラーに適切なモーション ベクトル AOV をレンダリングする必要がある場合、このモーション ベクトル AOV に添付された motion_vector シェーダを使用してカスタム AOV を作成する必要があります。