
3DCGで「なんとなく安っぽく見える」「物体が浮いて見える」と感じたことはありませんか? その原因のひとつが、今回ご紹介するアンビエントオクルージョン(AO)が適用されていないことにあります。
AOを使いこなすことで、シーンに一気に「重さ」と「存在感」が生まれます。
本記事では、
- 直射光と間接光とは何か、違いは何か
- アンビエントオクルージョンとは何か
- Blenderでどう再現し、どう使うのか
を解説していきます。
直接光と間接光の違い
アンビエントオクルージョンを理解するには、まず「直接光」と「間接光」の違いを押さえておく必要があります。
直接光とは、光源から物体に直接届く光です。太陽光が地面に当たる、ライトが壁を照らす、といった状態です。明暗のコントラストがはっきりします。
間接光とは、光源からの光が床や壁に一度反射してから届く光のことです。 窓から差し込む光が床に当たり、その反射が天井や壁をじんわり照らしているあの柔らかさ、あれが間接光です。 間接光があることで、影の部分が真っ黒にならず、自然な明るさを保てます。
特にBlenderのEEVEEでは光の反射計算が簡略化されているため、影になった部分が不自然に暗くなったり、物体が宙に浮いているように見えたりすることがあります。この「影の不自然さ」を手軽に補う技術が、アンビエントオクルージョンです。
アンビエントオクルージョン(AO)って何?
アンビエントオクルージョン(Ambient Occlusion)を直訳すると、「環境光の遮蔽」となります。物体の表面において、「周囲からの光がどれだけ遮られているか」を計算し、遮られている部分を暗くする技術です。例を挙げると、机の上に本を置いたとき、本と机の接地面の周辺はわずかに暗くなっています。
天井の照明や窓からの光が、本の底面と机の隙間に入り込みにくいからです。 部屋の壁と床が交わるコーナー部分も同様で、光が届きにくいためわずかに暗くなります。AOはこの「光が届きにくい場所に自然な影をつける」効果を再現します。
影(シャドウ)との違い
AOは「影(シャドウ)」と混同されがちですが、別物です。シャドウは特定の光源によって生じる影です。光源の位置や強さによって変わります。一方AOは光源に依存しない、形状による遮蔽の影です。光源を消しても、AOの効果は残ります。この違いを理解しておくと、ライティングの調整がグッとやりやすくなります。
AOはどんな場面で使われるの?
AOはゲーム・映像・建築ビジュアライゼーションなど、あらゆるCGの現場で使われています。
- ゲーム:キャラクターが地面に自然に立っているように見せるため
- 映像・アニメ:CGと実写を合成する際のなじみをよくするため
- プロダクトデザイン:製品の細部のディテールを引き立てるため
- 建築ビジュアライゼーション:壁の角や窓枠のリアルな陰影表現のため
どの分野でも共通しているのは、「物体に重さと存在感を与えるため」という目的です。
Blenderでアンビエントオクルージョンを活用する方法
ここからは実際に切り株モデルを使って、Blenderの各手法でAOを段階的に適用していきます。
切り株は根の隙間・きのこの接地面・樹皮の凹凸など、AOが効きやすい要素が豊富です。テクスチャなしのクレイ状態から完成形まで、AOの効果の変化をステップごとに確認していきましょう。※本記事はEEVEEを前提として解説しています。
STEP1:ベースマテリアルを設定する
まず、Principled BSDFをマテリアル出力のサーフェスに繋いだシンプルなマテリアルを用意します。ベースカラーは白〜明るいグレーに設定しておくと、後のSTEPでAOの効果の差がはっきりわかります。テクスチャなし・ライトはサンライトだけのシンプルな環境で進めましょう。
STEP2:AOノードを追加してAOパスを確認する
シェーダーエディターで「アンビエントオクルージョン」ノードを追加し、カラー出力をマテリアル出力のサーフェスに直結します。プリンシプルBSDFは一旦横に置いておいてください。この状態でレンダリングすると、遮蔽の情報だけを白黒で取り出した「AOパス」が得られます。
白い部分が光の届いている箇所、黒い部分が遮蔽されている箇所です。
このように、距離を変化させると、切り株の根の隙間・きのこと地面の接地部分・内部の凹んだ部分に黒が溜まっているのが確認できます。距離の役割は、遮蔽を検出する距離を指します。値が小さいと接触部やコーナーのみが暗くなりますが、距離を大きくすると、広範囲が暗くなります。ざっくり言うと、どの範囲までAOを適用させるかを決めることです。
続いて、サンプル数です。サンプル数は、品質を左右します。多いほど、精細に見えるようになりますが、レンダリングにも影響を与えるので、バランスが重要です。作業中は、8程度にして確認しておき、最終出力だけ32や64あたりを設定するのがおすすめです。ノイズが目立つかどうかで判断するとイイと思います。
もし、データ量の多いオブジェクトであれば、別途AOをベイクしておく方がラクかもしれません。ベイクの方法については、参考になるURLを載せておきます。▼
STEP3:ColorRampでAOの強度を調整する
AOノードのカラー出力をColorRampに通すことで、遮蔽の強さと白黒のグラデーションをコントロールできます。ColorRampの左端(黒)を右に動かすと影が弱まり、右端(白)を左に動かすと影が強まります。「自然に見えるぎりぎりの暗さ」に調整するのがポイントです。
ColorRamp調整後のレンダリング結果です。先ほどの白黒AOパスに比べて、影が自然なグレーのグラデーションに変わっているのがわかります。
STEP4:Principled BSDFとAOをシェーダーミックスで合成する
AOパスの確認が終わったら、本来のマテリアル(Principled BSDF)とAOを組み合わせます。AOノードのカラーをColorRampに通した後、シェーダーミックスノードの係数ソケットに繋ぎます。シェーダーミックスにPrincipled BSDFを入れることで、AOが暗い部分にだけ自然に乗るように合成できます。係数の値とColorRampの位置を調整して、シーンに合った強度を探してみてください。
AOの強度を段階的に変えたレンダリング比較です。係数とColorRampの組み合わせでこのような差が出ます。左が弱め、右が強めの設定です。
さらに、カラーマネージメントも合わせて調整します。レンダープロパティから、ルックを「中から高コントラスト」に設定すると影のメリハリが増してAOの効果が際立ちます。ガンマを0.6前後に下げると全体が引き締まった印象になります。
STEP5:テクスチャペイントと組み合わせる
テクスチャペイント(PaintSystemアドオンなど)で色を塗ったマテリアルにAOを組み込むことで、塗りの色味にAOの陰影が自然に乗った2.5Dスタイルの仕上がりになります。ノード構成は少し複雑になりますが、基本はSTEP4と同じ「AOをシェーダーミックスの係数に使う」考え方です。
完成形がこちらです。テクスチャの木目・苔・きのこの色味に、接地面や根の隙間のAO陰影が加えることで、フラットな塗りでもしっかりとした重さと立体感を出しています。
影を落とす際のポイント
① 距離はシーンスケールに合わせる
距離は、前述した通り、「AOがどの範囲まで遮蔽を計算するか」を決める値です。デフォルト値のまま使うと、シーンの縮尺によっては「効果がほぼ見えない」または「全体が暗くなりすぎる」という状態になります。シーンを作ったら必ず確認しましょう。
② EEVEEのAOはアニメーションで注意しよう
EEVEEのAOはスクリーンスペース(カメラに映っている範囲のみ)で計算されます。静止画では問題ありませんが、カメラが動くアニメーションではアングルの変化とともにAOがちらついて見えることがあります。アニメーション用途ではCyclesでレンダリングするか、AOをベイクして使う方法を検討してみてください。
③AOをシーン全体で使ってみよう
今回は、シェーダーエディターで「Ambient Occlusion」ノードを追加すると、そのマテリアルにだけAO効果を組み込む形を紹介しました。一方、たとえば、シーン全体に一括でAOを掛けたい場合は、EEVEEのレイトレーシング設定を行うことで簡易的に導入することができます。方式は「スクリーントレース」、解像度は1:1が基本です。
ただし、ノードで組んだように個別で距離をコントロールしたりは出来ないので、あくまで簡易的になります。この機会に試してみてはいかがでしょうか。
いかがでしたでしょうか?ぜひ、この機会に作品作りで試してみてくださいね。他にも、光と影の演出だけでなく、noteではBlenderでのマテリアルの作り方や初心者の方が悩みがちなノード理解の解説などを行っています。
良かったら合わせて見てみてください。
もし質問などありましたら、下のXアカウントからDM頂けたらと思います。
ここまでお読みいただき、ありがとうございました。
それでは、次回の記事でお会いしましょう!
Profile
ゆとりCG
・X:@yutorikoubo
・note: ゆとりCG|Blender愛好家|note















