CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Blender3.0】アンビエント・オクルージョン(AO)で陰影を表現しよう!
はじめに
こんにちは!
今回は、オブジェクト表面の陰影を表現できる「アンビエントオクルージョン(Ambient Occlusion、略して『AO』)」の使い方をまとめました!
AOをうまく使いこなすことで、簡単に陰影をつけて立体感を表現することができるようになりますので、ぜひ参考にしてみてください!
アンビエントオクルージョン(AO)とは?
アンビエントオクルージョンとは、以下引用記事の説明のように、「環境光の遮蔽」によりリアルな影を生成するレンダリング方法のことです。
シーン内の環境光(ambient)がどの程度さえぎられている(occlusion)かを計算するレンダリング方法のこと。シーン内の1点から半球方向に対する光の遮蔽(しゃへい)状況を計算し、リアルな影を生成する。比較的少ない計算量で、柔らかな陰影を表現できる。特に明るい色のモデルの陰影を表現するのに有効である。
(CG Worldさんの「CG用語辞典」より)
Blenderでは、AOを使用することによって、こちらのように光がさえぎられることで暗く表示されるべき「凹み」や「接合部」などを暗く表示し、立体感を演出することができます。
AOをレンダリングしよう!
AOを使って陰影を強調させるレンダリングの方法について、簡単に紹介します!
Eeveeの場合
レンダリングエンジン(レンダラー)にEeveeを使用する場合は「レンダープロパティ」→「アンビエントオクルージョン(AO)」のチェックを有効にします。
EeveeでのAOの使用方法については、こちらの記事でも紹介していますので、あわせて参照ください。
Cyclesの場合
Cyclesを使用してレンダリングする場合は、特に事前設定は不要です。
後で説明するノード設定をするだけでAOを表示することができるようになります。
(2.8以前のBlenderバージョンでは、「ワールドプロパティ」でアンビエントオクルージョンにチェックを入れる必要がありましたが、2.9以降では不要になりました。)
AOのノード設定
AOでオブジェクトの陰影を表現するためには、オブジェクトのマテリマルノードを以下の手順で設定する必要があります。
AOを使った陰影のつけ方については、こちらの記事でも紹介していますのであわせて参照ください。
AOマップをテクスチャにベイクしよう!
AOは、以前紹介した「光沢」などと同じようにテクスチャにベイクできます。
AOをベイクすることで、レンダリング負荷を低減出来たり、Unityなど外部ソフト上でも陰影を表現できるなどのメリットがあります。
「光沢」をベイクする方法はこちらの記事を参照ください!
Blender標準機能でベイクする
まず、Blender標準機能を使ったAOベイクの方法を紹介します。
AOをベイクしたいオブジェクトを選択し、シェーダーエディターに「画像テクスチャ」を追加します。
画像テクスチャの「+新規」から、画像を追加します。
「レンダープロパティ」→「ベイク」を選択します。
「ベイクタイプ」は、「アンビエントオクルージョン(AO)」を選択し、「ベイク」をクリックします。
しばらく待つと、AOをベイクした画像(AOマップ)が生成されます。
画像テクスチャをカラーランプにつなぎカラーバーの位置を調節すると、AOマップがマテリアルとして表示されます。
テクスチャとして陰影が色付けされているため、こちらのように光源を削除したり、オブジェクトを回転させても元の陰影がそのまま表示されます。
AOマップは画像として保存しないと消えてしまうので、「UVエディター」→「画像」で保存しておきましょう。
「テクスチャにベイク」する方法について、詳しい説明はこちらの記事を参照ください。
TexToolsでベイクする
ベイク作業やUV作業をサポートする機能が入った外部アドオン「TexTools」を使うことで、ベイク作業を効率化することができます。
TexToolsのインストール・使用方法についてはこちらの記事で詳しく説明しています。
まずはこちらを参考にTexToolsをインストールしてみてください。
TexToolsを使ってAOをベイクする手順はこちらです。
テクスチャのサイズを設定し、「Baking」メニューを開きます。
デフォルトのサンプル数(=8)だとノイズが多くて結果が汚くなるので、128など大きい値を設定する必要があります。
サンプル数を8から128に大きくしたところ、こちらのようにAOベイク結果が綺麗になりました。
AOベイクのトラブルシューティング
最後に、AOベイクでよくあるトラブルと、その対処法についてまとめます。
AOベイク結果が黒いとき
ベイク結果が真っ黒になった場合、大体は以下に原因があります。
- ノードに間違いがある
- オブジェクトが干渉している
- 出力先に間違いがある
原因および修正方法の詳細については、こちらの記事をご覧ください。
AOベイク結果が汚いとき
Blender標準機能でベイクした結果がこちらのようにまだら模様になるときは、レンダープロパティのサンプル数が小さいのが原因と考えられます。
こちらはサンプル数8の結果です。
レンダープロパティから「最大サンプル数」を最低でも128位まで大きくしてみてください。
すると、こちらのように比較的きれいな結果になります。
なお、先ほど紹介した「TexTools」のベイクで同じ症状が出る場合も、こちらのように「UVエディター→TexToolsメニュー」からサンプル数を大きくすることで症状が改善します。
まとめ
アンビエントオクルージョン(AO)の使い方をまとめてみましたが、参考になりましたでしょうか?
今回紹介した方法を生かして、ぜひAOを活用していただければと思います。
最後に、今回のまとめです。
- アンビエントオクルージョン(AO)とは?
- 「環境光の遮蔽」によりリアルな影を生成するレンダリング方法。
- 光がさえぎられることで暗く表示されるべき「凹み」や「接合部」などを暗く表示し、立体感を演出できる。
- AOをレンダリングする方法
- Eeveeの場合:「レンダープロパティ」→「アンビエントオクルージョン(AO)」のチェックを有効にする。
- AOノードとカラーランプで陰影を追加・調整する。
- AOマップをテクスチャにベイクする方法
- Blender標準機能でベイクする。
- TexToolsを使ってベイクする。→サンプル数の設定に注意!
- AOベイクのトラブルシューティング
- AOベイク結果が黒いとき:以下が原因と考えられる。
- ノードに間違いがある
- オブジェクトが干渉している
- 出力先に間違いがある
- AOベイク結果が汚いとき:サンプル数が小さいのが原因と考えられる。
- AOベイク結果が黒いとき:以下が原因と考えられる。