Autodesk Maya 編
続いて、同様のレンダーパスの書き出しを Autodesk Maya から行う場合について解説しよう。まず、Maya からマルチレイヤーの OpenEXR を出力する場合だが、大前提としてマルチレイヤー OpenEXR 出力に対応しているレンダラを使わなければならない。そこで今回は、Maya のデフォルト環境で使用できる mental ray を使用した OpenEXR の出力に関して解説していくことにした。
Maya と mental ray でマルチレイヤー OpenEXR を出力する場合、Maya 標準のレンダーパスを使用するのが一番簡単だ。
レンダラをデフォルトの [Maya software]から[mental ray]に変更することで、Render Setting ウィンドウ内に Passes のタブが確認でき、そこから各種レンダーパスにアクセスができる
レンダーパスは mental ray でのみ使用でき、出力に OpenEXR を選択しレンダーパスを使用することで、簡単にマルチレイヤーの OpenEXR ファイルが出力される。今回は実際に、デプス、モーションベクター、オブジェクトマスクの 3 つを出力してみたい。
出力設定を OpenEXR に設定して1つのファイルで複数のレンダーパスを持たすことのできるマルチレイヤーを用いる
1.レンダーパスの作り方
レンダーパスを作成するには、まず mental ray がロードされていることを確かめるため、[Window→Settings/Preferences→Plug-in Manager] を実行し、Mayatomr がロードされていることを確認。ロードされると RenderGlobals の Render Using で選択可能になるので、レンダラを mental rayに切り替える。
デフォルトでプラグインが読み込まれていない場合があるので、その場合 [Plug-in Manager] から確認し、[Load]にチェックを入れて読み込ませる
Passes タブに移り、右上にある[Create Render Passes]をクリック。すると、下の画像のようなウィンドウが現れる。リスト表示されているのが、Maya で作成できるレンダーパスだ。
mental ray がデフォルトで持っているレンダーパスたち。前述したように、これら全てのパスを一度のレンダリングで出力できる
今回の作例では、次の 4 つを作成していく。
・Camera Depth
・2D Motion Vector
・Custom Color ×2
それぞれデフォルトでは depth, mv2DToxik, customColor, customColor1と、非常に分かりづらい名前になっているので、適宜名前を変更していこう。
<変更前→変更後>
・depth → depth(深度情報)
・mv2DToxik → mv2D(2D ブラー用モーションベクター)
・customColor → objectMaskA(オブジェクトマスク用)
・customColor1 → objectMaskB(オブジェクトマスク用)
レンダーパスの作成はこれで完成。depth は深度情報、mv2D は 2D ブラー用のモーションベクター、objectMaskA, B はオブジェクトのマスク用のパスだ。これらを実際に使用するには、[Scene Passes]ではなく、[Associated Passes] に登録する必要がある。登録すると、レンダーパスが [Scene Passes] から [Associated Passes] に移る。
出力したいパスを上段の [Scene Passes」 から選んで [Associate selected passes with current render layer] のボタンを押すと、下段の [Associated Passes」 に移る。こうすることで実際にそれらのパスがレンダリングされる。上段の [Scene Passes] に登録しただけではレンダリングされないので要注意
また、レンダーパスはシェーダごとに対応状況が異なる。 使用しているシェーダがレンダーパスに対応しているかどうかは、Mayaユーザガイドのマルチレンダーパスを参照にすると良い。
2.レンダーパスの設定
今回の作例では、depth と mv2D はデフォルトのまま使用する。これらはデフォルトで 32bit float の情報として格納されるようになっており、何か理由がない限り、レンダーパスの設定自体をいじる必要はない。ただし、モーションベクターに関しては、レンダーパスを有効にした時点でモーションブラーが自動で ON になる。詳しくは後述するが、その際、モーションブラー OFF の時の画とはオフセット分だけ異なった仕上がりにレンダリングされるので、これを回避するには少し設定を変える必要がある。
また、objectMaskA, B に関しても、そのままで問題なし。ただし、これらは簡単なオブジェクトマスクレイヤーなので、Frame Buffer Type を 8bit integer に変更しても良いだろう。ちなみに、オブジェクトマスクは Custom Color Buffer を使用するため多少設定が必要となるが、この方法も後述する。
3.モーションブラーの設定
前述した通り、モーションベクターのレンダーパスを使用する場合、レンダー時に自動でモーションブラーが ON になる。その結果、モーションブラーなしの画像と異なる結果の画像がレンダリングされてしまう。これを回避するためには、[RenderGlobals] の [Quality→Motion Blur] から、モーションブラーを ON にし、[Shutter Open] および [Shutter Close] の値を共に 0.5 とし、予めモーションブラーの設定を変えておく。
Quality タブの Motion Blur の項を調整
このように設定を変えることで、モーションブラーがかかっていないものと極めて近い結果を得ることが可能だ。
モーションブラーの有り無しを比べたもの。重ねてみるとスペキュラなどに若干の違いが確認できるが、運用を間違えなければ問題なく使用出来るレベルだろう