どこよりも分かりやすい! 光と影を駆使したBlender演出術 ⑥アンビエントオクルージョンで立体感を出そう!

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でのマテリアルの作り方や初心者の方が悩みがちなノード理解の解説などを行っています。

良かったら合わせて見てみてください。

ゆとりCG|note

もし質問などありましたら、下のXアカウントからDM頂けたらと思います。

ゆとりCG(@yutorikoubo)さん / X

ここまでお読みいただき、ありがとうございました。

それでは、次回の記事でお会いしましょう!

Profile

ゆとりCG

CGアーティスト ┊︎ 「Blenderとの距離を、毎日1ミリ縮める」をコンセプトに、Blenderの楽しさ、気軽さ、ノウハウを発信しています ┊︎ note開設 ┊︎ アニメ調好き × Blender独学者
 

・X:@yutorikoubo

・note: ゆとりCG|Blender愛好家|note