トップ > 知っておきたい機能 > ノードとノードネットワーク >
コンポジットノードネットワークで霧を表現する

コンポジットノードネットワークで霧を表現してみよう

ここで、少しだけノードを使って遊んでみましょう。 この記事では、コンポジットノードネットワークを構築し、レンダリング後の画像の加工を行います

霧

カメラからの距離に応じて淡い水色を加算することで霧を表現してみましょう。 カメラに近い面では加算の係数を小さく、遠いほど大きくなるようにします。

霧を表現する

では、作業を開始しましょう。 今回は、Blenderの新規ファイルを元にして作業を行います。 トップバーのプルダウンメニューの"File" -> "New" -> "General" を実行して新規ファイルを開きましょう。

まずは、地面に見立てた平面のメッシュを追加しましょう。 空中に立方体のメッシュが浮いているだけでは、霧の効果がわかりずらいですから。

キーボードのSHIFT + Aを押します

1.  Mesh -> Planeを実行
1. Mesh -> Planeを実行

上図のように"Add"というタイトルのメニューが表示されますので、"Mesh" -> "Plane"を実行します。

2. 平面のメッシュが追加される
2. 平面のメッシュが追加される

上図のように3Dカーソルの位置に平面のメッシュが追加されます。

続いて、平面のメッシュを下に下げましょう。 Z方向に -1 移動します。 キーボードのGを押し、さらにZを押し、続けて、-1 -> Enterキーを入力します。

3. 平面のメッシュをZ方向へ -1 移動
3. 平面のメッシュをZ方向へ -1 移動

上図のように平面のメッシュをZ方向に -1 移動します。

続いて、平面のメッシュを8倍に拡大します。 キーボードのSを押し、続けて、8 -> Enterキーを入力します。

4. 平面のメッシュを8倍に拡大
4. 平面のメッシュを8倍に拡大

上図のように平面のメッシュを8倍に拡大します。 これで、地面に見立てた平面のメッシュの準備ができました。 では、いよいよコンポジットノードネットワークの構築に進みます。

コンポジットノードネットワークの操作はCompositorというエディタで実施します。 ワークスペースをCompositingに切り替えるのが早道です

  
Blender 2.7系では、シェーダノードネットワーク / テクスチャノードネットワーク / コンポジットノードネットワークの3種類ともNode Editorで編集していました。 Blender 2.8系からはそれぞれ、Shader Editor / Texture Node Editor / Compositorで編集します。
5. ワークスペースをCompositingに切り替える
5. ワークスペースをCompositingに切り替える

上図のようにトップバーにあるワークスペース切り替えタブの "Compositing" をマウスの左ボタン(マウスの左ボタン)でクリックします。

6. ワークスペースがCompositingに切り替わる
6. ワークスペースがCompositingに切り替わる

上図のようにワークスペースがCompositingに切り替わります。 画面左上のエディタがCompositorです

では、コンポジットノードネットワークを構築します。 これは、Blenderが裏で適切に処理していた製造ラインを捨てて、自分好みの製造ラインを用意するということです

7. Use Nodesチェックボックスをオンにする
7. Use Nodesチェックボックスをオンにする

上図のようにCompositorのヘッダにあるUse Nodesチェックボックスをオンにします

8. コンポジットノードネットワークが表示される
8. コンポジットノードネットワークが表示される

上図のようにCompositor上にコンポジットノードネットワークが表示されます。 左右に2つ並んでいるボックスがノード(コンポジットノード)であり、それをつないでいる線が接続線です

  
接続線の正式名称は『スレッド』らしいのですが、わかりにくいので本ウェブサイトでは『接続線』と表記します。

ノードネットワークの表示倍率が小さくて見づらいので、大きくしましょう。 キーボードのHOMEキーを押します

9. 表示倍率の調整
9. 表示倍率の調整

上図のように画面に収まるように表示倍率が調整されます。

ではここで、製造ラインであるノードネットワーク上を、データがどのように流れているかを説明します。

10. 左側が入力ソケットで右側が出力ソケット
10. 左側が入力ソケットで右側が出力ソケット

上図のように接続線の両端が丸につながっています。 この丸は『ソケット』と呼ばれるもので、ノードが持っている入力と出力の窓口です。 ソケットとソケットをつなぐことでノードネットワークが構築され、情報が流れるようになります。

ノードの左側にあるのが入力ソケットで、右側にあるのが出力ソケットです。 入力ソケットは必ず左側に、出力ソケットは必ず右側にあります

ソケットの隣に描かれている文字がソケットの種類を表しており、それぞれのソケットの意味は以下の通りです。

ソケットの種類 意味
Image 画像
※つまり各ピクセルの色(RGB値)のこと
Alpha 不透明度
Depth / Z 視点からの距離
  
今回実現する『カメラからの距離に応じて加算の係数を変える』のカメラからの距離は、このDepthとZのことです。

続いて、左右のノードについて説明します。

11. Render LayersノードとCompositeノード
11. Render LayersノードとCompositeノード

上図のように左右にノードが並んでいます。 ノードの上部にあるタイトルバーから分かる通り、左側がRender Layersという名称のノードで、右側がCompositeという名称のノードです。

Render Layersノードは、レンダリングを行い結果を出力するノードです。 つまり、製造ラインの起点です

Compositeノードは、受け取った画像を最終的なレンダリング結果とするノードです。 つまり、製造ラインの終点です

ではここで、起点である左側のRender Layersノードに注目してください

12. シーンとビューレイヤ
12. シーンとビューレイヤ

上図のようにRender Layersノードの下部には、シーンとビューレイヤを選択するための項目があります。 Render Layersノードは、指定されたシーンを指定されたビューレイヤの設定に従ってレンダリングします。 そのため、シーンとビューレイヤを選択する必要があるのです

ただし、シーンもビューレイヤも初期状態ではそれぞれ1つずつしか存在していません。 よって、シーンやビューレイヤを追加していないなら、これらの項目については初期状態のままで大丈夫です。

  
『ビューレイヤ』はBlender 2.7系までは『レンダーレイヤ』と呼ばれていました。
  
シーンとビューレイヤについては後ほど、知っておきたい機能 > シーンとビューレイヤで説明します。

Render Layersノードには、まだ説明しておきたいことがあります。

13. 無駄に見える領域
13. 無駄に見える領域

上図のようにRender Layersノードには一見無駄に見える領域があります。

実はこの領域は無駄ではありません。 ここには、プレビュー画像を表示させることができます。 手順は簡単で、一度だけレンダリングすればいいだけです

キーボードのF12を押してレンダリングしてみましょう。

14. レンダリング結果
14. レンダリング結果

上図のようにいつも通りにレンダリングされます。

では、キーボードのESCキーを押してレンダリング結果を閉じてください。

15. Render Layersノードには何の変化もない
15. Render Layersノードには何の変化もない

上図のようにRender Layersノードには何の変化もありません。 Blender 2.7系ではこの段階でプレビュー画像が表示されていましたが、筆者のPCのBlender 2.82aでは表示されません。

Blender 2.82aの不具合なのか環境によるものかはわかりません。 わかりませんが、プレビューが表示されない場合はひと手間必要です

16. ノードの右上にあるアイコンをクリック
16. ノードの右上にあるアイコンをクリック

上図のようにノードの右上にあるアイコンをクリックします。

17. プレビュー画像の表示領域が非表示になる
17. プレビュー画像の表示領域が非表示になる

上図のようにプレビュー画像の表示領域が非表示になります。 このように、プレビュー画像は、表示・非表示を切り替えることができます

では、再度右上にあるアイコンをクリックしましょう。

18. ノードの右上にあるアイコンをクリック
18. ノードの右上にあるアイコンをクリック

上図のようにノードの右上にあるアイコンをクリックします。

19. プレビュー画像が表示される
19. プレビュー画像が表示される

上図のようにプレビュー画像の表示領域が再表示されます。 また、プレビュー画像も表示されています。 このように、一度非表示にしてから再表示することでプレビュー画像が表示されるようになります

  
他の多くのノードもプレビュー画像を表示することができます。

ではここで、ノードの移動方法について説明しておきます。 ノードは、タイトルバーをドラッグすることで移動させることができます。 ドラッグ中にキーボードのCTRLを押すことで、グリッドに合わせることもできます。

20. CTRLキーを押しながらノードのタイトルバーをドラッグする
20. CTRLキーを押しながらノードのタイトルバーをドラッグする

上図のようにCTRLキーを押しながらノードのタイトルバーをドラッグします。 赤色の矢印はドラッグの動きを表しています。

  
3D Viewportでの操作と同じようにキーボードのGで移動を開始することもできます。
21. Compositeノードを移動する
21. Compositeノードを移動する

上図のようにCompsiteノードを移動します。

次の記事へ

長くなってきましたので、ここで一区切りしましょう。 続きは次の記事を参照ください

ページの先頭へ
 

まとめ

Blenderは、内部でノードネットワークを構築しています。 各ノードがデータを受け渡すことでレンダリング処理が行われます。

ページの先頭へ