2018年12月29日土曜日

レンダーレイヤー活用とファイル出力の話

先日 CyclesとBlenderレンダーでの法線レンダリングした時の結果が違う
という話があり、そこからレンダーレイヤーの使い方を話す機会があったのですが
検索してもレンダーレイヤーに関係する解説が少ないようだったのでまとめてみます

今回はCyclesレンダーを扱いますがBlenderレンダーでもほぼ同じ機能になります
(これを書いている2018年12月末時点ではBlender2.8Betaにはレンダーレイヤーが搭載されていないため今後のバージョンでは変更になる可能性があります)

レンダーレイヤーについて

Blenderはオブジェクトを20個のレイヤーに振り分けて表示を切り替えたりする機能があります
レンダーレイヤーでは レンダリングの時にどのレイヤーをレンダリング対象にするかといった設定を切り替えられます

レンダーレイヤーの設定に並んでいる20個チェックボックスが3Dビュー上でのそれぞれのレイヤーに対応してます

シーン:」の方がレンダーレイヤーに関係なくシーン全体でオンオフが切り替えになり
右側の「レイヤー:」の方がレンダーレイヤー毎に切り替わる設定になっています
因みに3Dビューの赤丸をしたアイコンはがオンになっていると「シーン:」の方の設定と同期しますが
レンダーレイヤーを使用する場合には本来使いたいレイヤがレンダリング対象から外れてしまうことがあるので個人的にオフにしています

レンダリング結果はUV画像エディッタのプルダウンを切り替えて確認することができます
 
また、レンダーレイヤーの「パス」の設定で色の情報の他に レンダリングに使われた情報を個別に出力することもできます

参考までにレンダーレイヤーのレンダリング結果を疑似的に切り替える画像を作るとこうなります
レイヤーの切り替えでのレンダリングは比較的イメージしやすいかと思いますが
他の機能もみておきます

マスクレイヤーは そのレイヤー内のオブジェクトより奥にあるものを背景に透過させます
図では通常だと球体が描画される部分が背景になっています
背景を透明にしたい場合にはレンダー設定のフィルムにある透過のチェックボックスをオンにします

マテリアル:」にマテリアルを設定するとその設定が強制的に適応された状態になります
例えばシーン内で使っていた緑色のマテリアルを指定するとこうなります

あくまでも レンダーレイヤの「マテリアル:」にマテリアルを割り当てたレンダーレイヤのみ影響して、他のレイヤではオブジェクトに設定したマテリアル通りになります


ここで冒頭の法線レンダリングの話しになります
まずは BlenderレンダーとCyclesレンダーでの法線(ノーマル)のレンダリング結果を比較してみます
どうやらBlenderレンダーではカメラ基準でデータが出るのに対して Cyclesレンダーではシーンの座標軸で出ているようです
そこでまずカメラ基準の方向で色が出るマテリアルノードを作成してみます
オブジェクトを選択していない状態でマテリアルを操作できないようなのでスザンヌで確認しながらマテリアルを設定しています
これをマイナス方向も画像として出るように調整したものがこうなります
背景部分の色は不要のため「ワールドを使用」のチェックボックスを外しています

この話題の元になった 劇団ネコ@gekidan_nekoさん はAfterEffectsのフィルターでこういった光源効果をつけているようです
面白いですね

素材ごとのファイル出力

さて、レンダーレイヤーを使って色々な素材をレンダリングする例をみてきましたが
他のソフトに持っていく場合、素材を書き出す必要があります。

そこでコンポジッティングモードを使用します
初期状態の「コンポジット」の出力はレンダー設定の出力で設定したファイルパスに保存されます

ノードエディッタのコンポジッティングモードでは背景のチェックボックスをオンにして 出力ビューアーのノードに画像のデータを接続するとビューの背景で出力画像をプレビューでき
出力ファイル出力ノードでは入力した画像をファイルとして出力します
ファイル出力ノードは画像を基本パスで指定したフォルダの下に 「ファイルサブパス」で指定した名前で保存します
(図の状態だと tmpのフォルダに image0001.pngといった具合に画像が保存されます)

このファイルパスには色々書き方があって
基本パスに「//」で始まるファイルパスを手入力すると 開いている.blendファイルのあるフォルダが基準になる相対パスで指定できます
例えば「//render/」と入力すると ファイルのある場所にrenderフォルダが作成されて その中に画像が保存されます

入力に追加」を押すことで同じ基本パスを使用するノードの入力を増やすことができて
また、ファイルサブパスの方もスラッシュ”/”区切りでフォルダを作成することができます

図はファイルの保存されたのと同じ場所にranderフォルダを作成して
その中にimageで始まるpngファイルと さらにそこにAOフォルダを作成して別の画像が保存されている例です

imageの後ろについている数字は レンダリングしたフレーム番号です
デフォルトでは4桁ですが image#####abc と#を並べると#と同じ桁数に揃えたり 後ろに文字を挿入することもできます

駆け足で機能のレンダーレイヤーとファイル出力を使った素材の書き出しについてまとめてみました
このノードの使い方関連の話しはもう少しあるのでまたの機会に

0 件のコメント:

コメントを投稿