忘却まとめ

Blenderの中級者・上級者向けの踏み込んだ情報や、アドオン・3DCGに関する情報を記事にします

レンダーパスのノーマルを書き出し、レンダリング後にライティング調整する方法【Blender】

Blenderアドオン

更新日:

ノーマルのレンダーパス素材を利用して、レンダリング後に画像編集ソフトなどでライティングを調整することができる。
Matcapを利用することによって擬似的にノーマルパスをレンダリングする方法を紹介する。

アドオン

この記事の内容を一括で行うアドオンを制作しました。

デフォルトのノーマルパス

デフォルトのノーマルパス

Blender標準のレンダーパスの"ノーマル"の方では、一般的なノーマルとは違う画像が書き出される(赤・青・黒色などの画像)。
これとは違う方法を紹介する。

Workbench レンダー利用する利点・欠点

Workbench は、ライティングの含まないシンプルなレンダリング結果がほしい場合に使える。
ビューポートと同じようなレンダリング結果を得ることができる。

Matcapを利用できるので、Matcapの1つであるノーマルに似た質感を利用することで、ノーマルのパスを書き出すことができる。

  • MatCapをレンダリングできる
  • ライティングを利用しないので早い
  • テクスチャを利用できないので、テクスチャのアルファを利用できない

やり方

このレンダリング結果のノーマルパスの作り方を例に解説する。

シーンを[リンクコピー]で複製

シーンを[リンクコピー]で複製する

  • リンクコピーは、オブジェクトなどのデータは元のシーンと共有し、シーンの設定だけを別々にすることができる
  • 全レンダラーに共有されるカラーマネージメント設定を変更するため、ノーマルパス作成用のシーンを分けてやった方がよい
  • 元のシーンでコレクションを新しく追加した場合、リンクコピーでは動悸されない。そのため、その都度手動で追加する必要がある
    • もしくはノーマル用シーンを再度リンクコピーで作成するとよい

Workbenchレンダラーを設定

  • レンダーエンジンをWorkbenchに変更
    • プロパティエディター → レンダー → Workbench
  • サンプリング → レンダー を、8サンプル程度に設定
  • 照明 → MatCap をノーマルマップのようなものに設定
  • カラーをシングルにし、白色の初期値が若干暗いのでRGB[1.0,1.0,1.0]にする
  • フィルム → 透過を有効
    • 背景を透過する
    • 背景にカラーを付けたい場合は、ワールドのカラーをRGB[0.25,0.25,1.00] などとする
  • カラーマネージメント → ビュー変換 → 標準 に変更
    • デフォルトのFilmicだと、色味が若干薄くなるため

Workbenchではコンポジターエディターを無効化

もし、すでにコンポジットノードを設定しているシーンを複製した場合は、コンポジットノードも複製される。

Workbenchのシーンの方でレンダリングしたときにもこのコンポジットが反映されてしまうため、意図しない場合は[ノードを使用]を無効化する必要がある。

特にファイル出力ノードを設定している場合は、Workbenchのシーンの方で上書きされてしまうので注意。

元のシーンでノーマル書き出し設定を追加

コンポジターエディターのノードを使えば、別のシーンのレンダリングを同時に行うことができる。

  • ヘッダー → 追加(Shift + A) → 入力 → レンダーレイヤーを追加
  • 設定をノーマルのシーンに変更
  • ファイル出力ノードを追加し、書き出し先を設定
  • ファイル出力ノードに、レンダーレイヤーを接続

注意点

ビュー変換の設定は現在のシーンの設定が利用されるため、元のシーンのコンポジターエディターでノーマル用のシーンを書き出そうとすると、ノーマルの結果が薄くなる。

ノーマルパスを利用してライティング調整する

PhotoshopやAfter Effectsなどには、ノーマル画像を利用して疑似ライティングを行える機能が用意されている。先程書き出したノーマル素材を利用してライティングを行う。
ここではAffinity Photoでのやり方を紹介する。

  • レイヤ → ライブフィルタ → カラー → 手続きテクスチャ → シンプルバンプマップ照明 を利用して作る
  • プリセットのままでも使用できるが、自分で数式を組み合わせてさらに調整することができる
  • 上の数式により結果が作られる
    • dot(debump(R,G,B),v)*b
  • 下のカスタム入力以下が数式に使う要素で、v や a の名前を変数のように利用する

画像では、 プリセットの照明の向き v に、 新規追加した照明の向き a を減算することにより、 輪郭だけを抽出している。

  • dot(debump(R,G,B),v-a)*b

ノーマルマップとしても使える

出力した画像を平面プリミティブに使用した結果。
単純にノーマルマップとしても利用できる。

その他の方法

加工後

Blenderで一般的なノーマルパスを書き出す方法を調べた際、デフォルトのノーマルパスを加工する方法が紹介されていた。
上記のノード構成でできると書かれていたものの、画像編集ソフトの方でうまくライティングに利用できなかった。
一応ノードを記載しておく。

加工前の元画像

手動で保存する

Matcapを利用してレンダリングする方法にて、シーンを複製しなくても可能ではある。
画像保存する際に、オプションの[レンダー色空間で保存]を無効化する。
レンダー色空間を利用しないので、標準 で書き出すことができる。

ただしこのオプション項目は他では設定できないようなので、毎回手動で画像保存する必要がある。

一括レンダリング

シーンを一括でレンダリングするアドオンはこちら。

アドオンの制作依頼はこちら

-Blenderアドオン
-,

Copyright© 忘却まとめ , 2024 All Rights Reserved Powered by STINGER.