まずは結論です。
- アンビエントオクルージョンとは、細かい陰を出す機能。
- 3DCGソフトにはたいがい入っていて、Element3Dでも使えるので使ったほうがいい。
パラメータを変えていないデフォルト状態です。
エフェクトパネルの『Element』のRender Settings/Ambient Occlusion/Enable AO にチェックを入れます。
その下の『AO Mode』を『Ray-Traced』にします。これだけです。
デフォルトでは光の当たり具体がのっぺりしていたオブジェクトに、いい感じに陰ができてクオリティが上がっていますね。
使いどころ
AE専業の人にとっては、Element3Dのパラメータは見慣れないものが多いので「どのパラメータを使えばクオリティが上がるんだ…?」となることも多いかと思います。アンビエントオクルージョン(AO)はクオリティと直結するので、まずは使ってみてはいかがでしょうか?
解説
アンビエントオクルージョンとは?
Element3Dには『Ray-Traced』と『SSAO』の2つのモードがありますが、まずは『Ray-Traced』から説明します。なぜなら、アンビエントオクルージョンと言えば普通は『Ray-Traced』のことを指し『SSAO』はその簡易版だからですね。
Ray-Traced
デフォルトのライティングだけでは、本来陰影がつくはずの細かい部分に陰が出なかったりします。これは「光の反射回数をキチンと計算すればするほどクオリティが上がるが、そのぶん描画がめちゃめちゃ重くなる」から、反射回数を『ちょうどいいところ』で制限しているのが原因です。Element3Dに限らず3DCGソフトでもそのような仕様ですね。
なんでそれが陰が出ない原因になるんでしょうか?細かい部分の陰はたいがい、直射光ではなく反射光(直射光がオブジェクト自体に当たって反射した光)の陰です。しかし細かい反射光の計算をしないということは、細かい部分には光が届かない、なので細かい陰もできない、ということです。それが「なんかしょぼいな」という印象の正体ですね。
そこで登場するのがアンビエントオクルージョンです。
これは、光の情報は関係なく『CG表面の遮蔽率(くぼんでる度合い)』だけに注目して、くぼんでいればそこに陰を付けているんですね。こっちのほうが光の反射回数を増やしまくるよりも計算が速いみたいです。結果、比較的軽く、本来陰が出そうな部分に陰を足すことができるんですね。すごい。
SSAO
ついでに『SSAO』のほうを説明しましょう。
以下、SSAOを適用したバージョンの画像です。
デフォルトとあんまり変わっていない印象ですが、パラメータを調整していけば『Ray-Traced』にそれなりに近づけることが可能です。
SSAOとは『スクリーンスペースアンビエントオクルージョン(screen-space ambient occlusion)』の略で、AOの簡易版です。なぜ簡易版が必要だったかと言いますと、リアルタイム描画が基本のゲームなんかでは普通のAOでも重いので「もっと軽いものを!」という需要、あるいは見込み需要があったからですね(開発者はすごい)。
SSAOは『カメラから見たZ深度=奥行き』のみに着目しています。
まずは内部的に一回、奥行きを白黒で表した画像(デプスマップ)を作ります。そしてその画像のうち『明るさが周囲とかなり違う』ところは、Z方向に凹凸があるということなので「多分遮蔽されている」から陰にする、という処理です。
デプスマップは軽い処理で作れて、その次の明るさ比較も2Dの画像処理なので軽い。だからリアルタイムで処理できるってことですね。
Element3Dではデプスマップが描画できるので、試しに見てみましょう(見やすいよう背景を除外し、エフェクト『平均化(イコライズ)』でオブジェクトの一番手前が真っ黒、奥が真っ白になるようにしてあります)。
パッと目につく『明るさが違うところ』は、あごと左脇の部分ですかね。
続いて、SSAOのみ(オブジェクト画像に重ねる前の画像)の描写もできるので、見てみましょう。
思った通り、あごと左脇に陰が強くでていますね!これがSSAOの基本的な処理です(実際はソフトによって、キレイに見えるように他にも色々計算してるみたいです)。
原理がわかれば、エフェクト欄のAO関連パラメータもなんとなくわかってくるので、ぜひとも色々試してみてください。
『Ray-Traced』と『SSAO』のどちらを使うかは、かけてみて重くなければ『Ray-Traced』、コンポ自体がすでに重いとか、オブジェクトをたくさん作る場合には『SSAO』ということでいいと思います。
*注意
アンビエントオクルージョンは前述の通り『光の情報は加味しない』ので、光が全面に当たっている箇所にも細かい陰を付けてしまいます。使いどころにご注意ください。
例えば実写合成用CGの場合、照明方向を実写とそろえたとします。そこでAOを使ってしまうと「ばっちり光が当たっている箇所なのに、CG部分だけAOで細かい陰ができてる」という不自然な映像になりますね。
試しに、実際に近くにあるものを見てみると、案外AO的な陰はでてないことがわかると思います。モノ全体にAOのような陰が出るシチュエーションは、実は実際にはあまりないんです。
しかしモーショングラフィックス等の場合、必要なのは現実を模したリアリティよりもキレイに見えるかどうかのクオリティなので、気軽にどんどん試してみてください。