3Dアニメーションを作成すると,モーションブラー使いたくなりますよね.レンダリング時にモーションブラーをかけると3D空間上で計算するため,とてもリアルなブラーを得ることができますが,反面計算に時間がかかることが難点ですね.
そこで,3D側でモーションデータをRGB画像に記録したモーションベクターと言う画像を出力し,それをAfterEffects側でモーションブラー用のソースとして利用することでコンポジット側でモーションブラーを後付けするテクニックをご紹介します.レンダリングコストを抑えつつ比較的リアルなモーションブラーを表現できるので知っておくと便利です.
特に3Dレンダリングでモーションブラーをかけた場合,ブラーの加減を強く弱くといった調整ができないので再レンダリングになってしまうというデメリットがあるため,修正がありそうな場合は使用を躊躇してしまいます.
そういった点で,後付けのモーションブラーで済む場合はモーションベクターの利用をお勧めします.ただ,After Effectsでモーションベクターを利用する場合はプラグインが必要になります.本記事で使用したのは「ReelSmart Motion Blur Pro」(モーションベクターを使えるのはPro版)というブラー用プラグインです.
動画での解説もはじめました!
まだ慣れてないので,全然こなれてない感がすごいですが…
本記事で使用したソフトウェアバージョン
Cinema 4D 2023.1
Redshift 3.5.0
After Effects 2022
ReelSmart Motion Blur Pro
ステップ1 アニメーションを作成する
モーションブラーなので前提としてアニメーションが必要です.なんでもよいでのとりあえず動かしてみましょう.というわけで簡単なアニメーションを作成しました.
ステップ2 レンダリング設定とAOV設定
まずはレンダラーをRedshiftに変更します.変更しておかないと「レンダリング」メニューに「RS AOV Manager」が表示されません.そして「レンダリング」メニュー→「RS AOV Manager」を開きます.
AOVに「Motion Vectors」を追加します.
最低限の準備はこれで完了です.
Redshift Render Vieweで確認してみる
Redshift Render Viewで確認してみます.Motion VectorsはIPRモードでは表示されないので,のRenderを実行してください.表示パスを「Motion Vectors」に切り替えると,このような中間黄色をベースとしたR,Gチャンネルのカラーが付いた画像が表示されます.RチャンネルがX軸方向の移動,GチャンネルがY軸方向の移動とその強度を表しています.
デフォルト設定では全く動きが無い場合にR=0.5,G=0.5が出力されるため中間の黄色となりますが,これ自体はAOV ManagerでMotion Vectors設定の最小/最大レンジを変えることで調整もできます.
特定のオブジェクトを「Motion Vectors」から除外したい場合
もし特定のオブジェクトのみMotion Vectorsを出力したい場合はオブジェクトにRedshift Objectタグを設定し,Motion Blurを有効にします.
ちなみに,Motion VectorsをAOVに追加した場合はレンダリング設定側にあるMotion Blurはオンにしていても強制的に無効になります.
ステップ3 マルチパス設定をしてレンダリングする
AOVを保存するためにレンダリング設定の保存でマルチパスの出力先を指定しておきます.RedshiftのドキュメントによるとMotion Vectorsは32bitのEXRで出力した方がより精度の高い結果を得ることができるとのこと.ピクセルあたりの情報量が多くなるのでコンポジット側でもより精度の高いブラーを再現できるのだと思います.ReelSmart Motion Blur Proで使用するMotion Vectorも16bit以上必要なので最低でも16bitで出力する必要があります.
ステップ4 After Effectsでモーションベクターを使用する
After EffectsでReelSmart Motion Blur Proを使用してMotion Vectorsからモーションブラーを追加をしてみます.Motion VectorsをマルチレイヤのEXRファイルで出力している場合,ExtractRでモーションベクターを抽出してあげましょう.
モーションブラーをかけたいレンダリング画像に対してReelSmart Motion BlurのMotion Vectorを適用して,モーションソースに抽出したモーションベクターレイヤーを指定すれば完了です.簡単ですね.
3Dレンダリングのモーションブラーとどれくらい違うのか
このようにモーションベクターデータを使えばモーションブラーを後から調整できるので大変重宝します.しかし実際に3Dで計算したモーションブラーとどれくらい違うものでしょうか.
Redshiftのレンダリングによる3Dモーションブラー
3Dレンダリングでは当然奥行きデータも考慮したモーションブラーになるため,精度は高くなります.最も自然ですがレンダリング時間は長くなりますし,後から調整は難しいです.
モーションベクター(16bit EXR)による後付けモーションブラー
ReelSmart Motion Blur ProのMotion Vectorを使ってAfter Effectsでモーションブラーを付けたものです.モーションベクターは16bit EXRで出力したものを使用しています.細かいブラーのかかり方は確かに2次元的で,ブラー強度を大きくすると破綻してきますが,実際にアニメーションで見るとこれくらいであればほとんど問題ない範囲じゃないでしょうか.
16bit PNGのモーションベクターではどうか
同じ16bitなのですが,こちらは明らかに綺麗ではなかったです.EXRで出力したモーションベクターを使う方が良さそうです.Redshfitのドキュメントに従ってEXRの方が良さそうですね…
まとめ
3Dモーションブラーは静止画で見たり,コマ送りでみても自然で綺麗ですがやはり最大のデメリットは,後で調整が効かない,レンダリング時間が長いの2点になってきます.
モーションベクターを使う場合は多少の精度は犠牲になりますが,そもそもアニメーションしている場合はモーションブラーの精度がうんぬんはあまり(よほどおかしな場合は除いて)気になることは少ないのでCGアニメーションを作る場合は常にこちらのオプションを持っておいたが方が良いと思います.
モーションベクターは16bit以上のEXRフォーマットで書き出しを推奨します.
また,モーションベクター自体はREDSHIFTに限らず,他のどのレンダラーでも同じことができる(はず)なので覚えておいて損はないでしょう.
おまけ:最後まで読んでくれた方へ
ころころボムの3Dデータをプレゼント.メッシュは綺麗にしてないで扱うのが大変ですが,モーションベクター練習素材用にでも使ってやってください.かなり細かいメッシュですのでたくさん配置すると重いです...
ダウンロードはこちらからどうぞ
https://c4dhigh.net/dat/gift/SphereBomb_20221117.zip