RenderLayer の基本的な使い方

RenderLayer を使うことで、レンダリングの対象となるレイヤを制御することができます。
ここでは、基本的な使い方を説明します。

Layer の使用例

Layer 機能の使用例を説明します。
レンダリングの際に、あるレイヤ群を 1 シーンとし、それを複数作成するために、レイヤ群毎に RenderLayer を作成します。
その際、各 RenderLayer に属する レイヤを、Layer - Layer にて指定します。
各 RenderLayer でレンダリングされる際、Layer - Layer でオンになっているレイヤのみ表示され、その他のレイヤにあるオブジェクトは表示されません。しかし、Layer - Scene でオンになっているすべてのレイヤ (3D View で表示されているレイヤ) にあるすべてのオブジェクトがレイ (光線) のヒット判定に利用され、影や透過色等は表示されます。

主な手順例は以下の通りです。
  1. 各オブジェクトを、RenderLayer で分けやすいようにレイヤ変更します
    • RenderLayer_Layer_1.png レイヤ 1 にあるオブジェクトの例
    • RenderLayer_Layer_2.png レイヤ 2 にあるオブジェクトの例
  2. Properties - Render Layers - Name で、RenderLayer に名前を付け、Layer - Layer で、その RenderLayer に属するレイヤのみをオンにします
    • RenderLayer_RenderLayer_Box.png レイヤ 1 用の RenderLayer: Box
    • RenderLayer_RenderLayer_Model.png レイヤ 2 用の RenderLayer: Model
  3. レンダリングするレイヤをすべて表示します
    • RenderLayer_Layer_on.png
    • これは、3D View のレイヤで設定しても、各 RenderLayer で設定しても、すべて共通の設定となります。
  4. Properties - Render - Film の Transparent を オンにします
    • これを設定しないと、なにもオブジェクトがヒットしないピクセルが World の色になってしまい、あとで合成するのが大変になってしまいます。
    • RenderLayer_RenderResult_Model_noTransparent.png
  5. この状態でレンダリングを実行すると、各 RenderLayer 毎にレンダリングが実行されます
    • UV/Image Editor の Render Result に、各 RenderLayer 毎のレンダリング結果が表示されます
  6. Node Editor で Compositing Nodes に切り替え、Use Nodes をオンにします
    • RenderLayer_CompositingNodes.png
  7. Compositing Nodes で、Render Layers ノードと Composite ノードの間に Alpha Over ノードを追加し、空いている Image ソケットに Render Layers ノードを複製して接続し、Render Layer を他のに切り替えます
    • RenderLayer_CompositingNodes_AlphaOver.png
  8. UV/Image Editor の Render Result の Select Layer に Composite が表示されます
    • RenderLayer_RenderResult_SelectLayer.png
    • ここを切り替えることで、各 RenderLayer 毎のレンダリング結果をファイルに保存することができます。
    • RenderLayer_RenderResult_Box.png RenderLayer: Box のレンダリング結果
    • RenderLayer_RenderResult_Model.png RenderLayer: Model のレンダリング結果
    • RenderLayer_RenderResult_Composite.png RenderLayer: Composite のレンダリング結果


Exclude の使用例

上の RenderLayer および、Compositing Nodes を利用し、Exclude 機能の使用例を説明します。
Layer - Layer でオンになっていないレイヤにあるオブジェクトも、レイ (光線) のヒット判定に利用されてしまうので、これを防ぐために Exclude 機能を利用することができます。
  1. RenderLayer: Box を選択し、Layer - Exclude で、レイヤ 2 (RenderLayer: Model 用のレイヤ) を選択します
    • RenderLayer_RenderLayer_Box_Exclude.png
  2. この状態でレンダリングを実行すると、RenderLayer: Box には、RenderLayer: Model の影等は反映されません
    • RenderLayer_RenderResult_Box_ExcModel.png RenderLayer: Box のレンダリング結果
    • RenderLayer_RenderResult_Model.png RenderLayer: Model のレンダリング結果
    • RenderLayer_RenderResult_Composite_ExcModel.png RenderLayer: Composite のレンダリング結果


Mask Layer の使用例

上の RenderLayer および、Compositing Nodes を利用し、Mask Layer 機能の使用例を説明します。
Exclude 機能は、指定したレイヤのオブジェクトをレイの対象外としましたが、Mask Layer 機能は、指定したレイヤのオブジェクトでマスキングします。
指定したレイヤにあるオブジェクトが、Holdout ノードでホールドアウトされたことと同じ状態になります。
画像の後加工の方法によっては、マスキングされている方が便利な場合があります。
また、他のオブジェクトで隠れてしまう部分のレンダリング結果が不要な場合は、マスクすることでレンダリング時間を短縮することができます。
マスキングしたオブジェクトと、マスキングされたオブジェクトを合成した結果、境界がきれいにならない場合もありましたので、確認が必要です。
  1. RenderLayer: Box を選択し、Layer - Mask Layer で、レイヤ 2 (RenderLayer: Model 用のレイヤ) を選択します
    • RenderLayer_RenderLayer_Box_MaskLayer.png
  2. この状態でレンダリングを実行すると、RenderLayer: Box には、RenderLayer: Model の影等は反映されません
    • RenderLayer_RenderResult_Box_MaskModel.png RenderLayer: Box のレンダリング結果
    • RenderLayer_RenderResult_Model.png RenderLayer: Model のレンダリング結果
    • RenderLayer_RenderResult_Composite_MaskModel.png RenderLayer: Composite のレンダリング結果



コメントを投稿するには画像の文字を半角数字で入力してください。

投稿済みコメントに返信する場合はコメントを選んでから投稿してください。


画像認証
  • すごいですね! --- 人間 (2017/06/17 18:05:48)

  • 最終更新:2013-12-12 11:03:01

このWIKIを編集するにはパスワード入力が必要です

認証パスワード