【Maya×Arnold】コンポ用Motion Vector(モーションベクトル)の正しい出力設定

当ページのリンクには広告が含まれています。
motion_v_renアイキャッチ

3DCGアニメーションにおいて、レンダリング時間を劇的に節約しつつ、映像のクオリティを格段に引き上げてくれるのが「Motion Blur(モーションブラー)」です。

3D上で直接モーションブラーをレンダリングすると、膨大な計算時間がかかってしまいます。

ですが、あらかじめ「Motion Vector(モーションベクトル)」をAOVとして出力しておけば、コンポジット(DaVinci Resolve FusionやAfter Effectsなど)の段階で、一瞬でキレイなモーションブラーを後乗せ・調整することができます。

今回は、MayaのArnoldからコンポ用に正しいMotion Vectorを出力するための最新の推奨設定を、アニメーターの現場目線で分かりやすく解説します!

💡 Z-depth(カメラのボケ用パス)の出力についてのお知らせ
以前の記事では「Z-depth」と「Motion Vector」をセットで出力する手順として解説していましたが、現在のワークフロー(ACEScg環境)では、Z-depthは主要な素材AOV(DiffuseやSpecularなど)と一緒に一括出力(マルチパートEXR)する形にフローを統合しています。

最新のACEScg環境に対応した一括出力の手順については、以下の基礎編の記事をご覧ください。

目次

なぜMotion Vectorを「別枠」で出力するのか?

コンポジットのワークフローにおいて、Motion VectorはDiffuseやZ-depthなどのパスとは目的や出力するタイミングが大きく異なります。

Motion Vectorを「別枠」で出力する理由

  • 必要な時だけ出力すればいい: 静止画のルック開発(LookDev)段階では不要で、キャラクターやカメラが動くアニメーションのレンダリングの時にだけ追加でONにします。
  • データ容量の節約: モーションベクトルはフレーム間のピクセル移動量という特殊な数値データを持つため、毎回マルチパートEXRに含めてしまうと、使わないカットでも容量を大きく圧迫してしまいます。

最新のMotion Vector設定手順(Render Settings)

Render Settings(レンダー設定)を開き、現代のアニメーションシーンに合わせた最適な設定を仕込んでいきましょう。

  1. Render SettingsArnold Renderer タブ > Motion Blur セクションを開きます。
  2. Enable にチェックを入れて、モーションブラーの計算を有効にします。
  3. Deformationチェックを入れます(ON)
  4. Instantaneous Shutter「チェックを入れます(ON)」

なぜ「Deformation」をONにするのか?

古い解説記事などでは「メモリ節約やレンダリング高速化のためにDeformationを外す」と推奨されていることがありましたが、現在はONにするのが基本です。

アニメーションの現場において、キャラクターはリグやスキンウェイト、ブレンドシェイプによってメッシュ自体がグニャグニャと「変形(Deformation)」して動きます。

ここがOFFになっていると、キャラクターの手足や顔が動いた時の細かいスピード(ベクトル)が正しく出力されず、合成時にキャラの手足にブラーがかからなくなってしまいます。

※動かない背景アセットだけのカットであればOFFでも構いませんが、キャラクターがいるカットでは必ずONに設定してください。

「Instantaneous Shutter」の役割

ここにチェックを入れておくと、ビューアに表示されるメインの絵(Beautyなど)には直接ブラーがかかりません。

「カメラのシャッタースピードを0にして、クッキリしたブレのない絵をレンダリングしつつ、内部のデータ(Motion Vectorパス)にだけ正しい速度情報を書き込む」という、コンポ前提の仕込みを行うための重要なチェックボックスです。

AOVに「motionvector」を追加する

Render Settings の AOVs タブを開きます。

  1. Available AOVs のリストの中から、プリセットに用意されている motionvector を選択します。
  2. 「>>」ボタン を押して、Active AOVs(右側)に追加します。
  3. 画面下部のアクティブなAOVリスト(テーブル)にある motionvectorfilter 項目を、デフォルトの <gaussian> から closest(または closest_filter)に変更します。

なぜフィルターを「closest」にするのか?

diffusespecular などの通常のカラーパスは、エッジをなめらかにするために <gaussian> フィルターを適用して、アンチエイリアス(適度なぼかし)をかけるのが正解です。

しかし、motionvector は色ではなく「移動速度の数値(データ)」そのものです。 ここにガウシアンフィルターがかかってしまうと、「動いている球体の端の数値」と「動いていない背景(数値ゼロ)の境界線」が、エッジ部分でグラデーション状にブレンド(混ざり合って)しまいます。

このブレンドされた中途半端な数値をFusionなどのコンポソフトに持ち込むと、球体のエッジの周りに不自然なノイズや歪み(アーティファクト)が発生する原因になってしまいます。

これを防ぎ、隣り合うピクセルの数値をブレンドせずに正確に保持するため、フィルターを closest に変更してください

「aiMotionVector(カスタムAOV)」は不要?

以前は、コンポジットツール(特にNukeなど)の認識の都合で、カスタムAOVを作って「aiMotionVector」という専用のシェーダーをアサインして出力するテクニックが必要な場合もありました。

しかし現在では、標準のプリセット「motionvector」を出力するだけで、DaVinci Resolve FusionでもNukeでも問題なくそのまま正確に扱えるようになっています。

そのため、現在は手順がシンプルで確実なプリセット一択で大丈夫です。

出力時・保存時の重要な2つの注意点

Motion Vectorは、カラー(色)ではなくピクセルがどの方向に何ピクセル動いたかという精密な数値(データ)を保存するためのパスです。そのため、出力時には以下の2つのルールを必ず守ってください。

1. フォーマットは必ず「16bit Float(Half)」以上のOpenEXRで

一般的なJPGや8bitのPNGなどで出力してしまうと、速度情報が「256階調」に丸められてしまい、コンポソフトでブラーをかけた時にグラデーションがガビガビに階段状になってしまいます。

必ず、滑らかな階調を保てる16bit(Half)または32bit(Float)のOpenEXRでレンダリングしてください。

2. カラーマネジメントは適用しない(RAW / Non-Color)

ACEScg環境などでカラーマネジメントを行っている場合でも、Motion VectorにsRGBなどの色補正(ガンマなど)をかけてはいけません

数値が歪んでしまい、ブラーの方向や強さが狂ってしまいます。

必ず、Motion VectorパスのColor Space(カラースペース)設定が「RAW」または「Non-Color」になっていることを確認してください。

まとめ & 次回予告

今回のポイント:

  • アニメーションシーンでは、キャラの手足の変形ブラーを出すために Deformation は必ずON にする。
  • メインの絵をブレさせないために Instantaneous Shutter もON にする。
  • 輪郭部分のノイズを防ぐため、AOV設定下部で filterclosest に変更する。
  • 現在はカスタムシェーダー(aiMotionVector)を使わなくても、プリセットの motionvector だけでFusionもNukeも対応可能
  • 正確な速度データを保持するため、16bit以上のOpenEXR & RAW(ノンカラー)で出力する。

このように仕込んだMotion Vectorを書き出せば、Maya側での重いブラー計算をスキップしつつ、コンポ側で自由自在にブラーの強さを調整できる無敵のアニメーション素材が完成します。

次回は、この書き出した素材を使って、DaVinci Resolve Fusionで実際に美しいモーションブラーを後乗せ合成する具体的なノードの組み方を解説します!

他のレンダリングで興味がある分野があれば以下の記事を御覧ください。

Vertex Color(頂点カラー)のレンダリング方法については以下の記事を御覧ください。

AOVにわけたものをDaVinci Resolve Fusionでコンポジットする方法です。

AOVの出力方法のまとめです。

それらの完全なまとめ記事です。

motion_v_renアイキャッチ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーの3DCGアニメーター。
メインツールはMaya(使用歴20年以上)です。お仕事ではSoftimage(XSI)やMotionBuilderの使用経験もあり。思いに手付け(キーフレームアニメーション)が多いですが、キャプチャーもいけます。サブスキルとしてはリグ(Maya限定ですが)も少々いけます。

ゲームが昔から大好きなので「ゲーマー」としての側面からもいろいろ発信出来ればと考えています。
CG歴よりもゲーマー歴のほうがずっと長いもので(笑)。

twitterアカウント
@inopoa1

よろしくお願いします。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次