Blenderでアンビエントオクルージョンをテクスチャにベイクしたい!
ということで、BlenderでAOベイクする手順のまとめです。なるべく簡潔にいきます~
※UVを展開するときは、BlenderでUV展開の記事も参考にどうぞ~
(もっと簡単にAOベイクできる無料アドオンTexToolsについては、UVの記事で紹介しています。)
BlenderでAOベイクする手順
①AOベイクしたいオブジェクトに適当なマテリアルを当てる
AOベイクするオブジェクトを選択し、プロパティエディターからマテリアルタブを選択します。
[+新規]をクリックしてマテリアルを割り当てます。(すでになにかのマテリアルが割り当たってたらそのままでもOK)
②マテリアルに画像テクスチャを当てて画像サイズを指定
マテリアル項目にある「ベースカラー」横の〇をクリックして、開いたポップアップウィンドウから「画像テクスチャ」を選択します。
ベースカラーに画像テクスチャが割り当たったら、その下にある[+新規]をクリックします。(他テクスチャが割り当たってて[+新規]がないときはテクスチャ名横のアイコンをクリック)
すると小さなウィンドウが開くので、ここでAOベイクする画像のサイズを指定します。画像の名前をここで決めてもいいです。(デフォルト名のままでもOK)
完了したらOKボタンを押します。
③レンダーをEeveeからCyclesに変更する
Blenderの既定レンダーはEeveeですが、EeveeだとベイクできないのでCyclesに変更します。
プロパティーエディターのレンダータブを選択し、「レンダーエンジン」のところをクリックします。表示されたリストの中から「Cycles」を選択します。
レンダーをCyclesにすると、レンダータブにある項目の中に「ベイク」が追加されます。
④ベイク項目のベイクタイプをAOに変更する
ベイクの項目を開いて「ベイクタイプ」のところをクリックします。表示された中から「アンビエントオクルージョン(AO)」を選択します。
ベイクタイプをAOにすると、オプションが減ってすっきりした見た目になります。
⑤オブジェクトを選択してベイクボタンを押す
AOをベイクする準備は整ったので、AOベイクしたいオブジェクトを選択した状態で、ベイク項目内にある[ベイク]のボタンを押します。
AOベイクが始まり、Blenderの下らへんに進捗バーが表示されます。終わるまで待ちます。
進捗バーの表示が消えたらベイク完了です。
⑥UVエディターか画像エディターから名前を付けて画像保存
ワークスペースを「UV Editing」か「Texture Paint」に切り替えて、「UVエディター」か「画像エディター」を表示します。
UVエディターか画像エディターを出すと、白黒のAO画像が表示されています。
表示されてない場合は画像名の横にあるアイコンをクリックし、手順②で付けている画像名を選択すると表示されます。
AO画像が表示されている状態でエディター上部メニューの「画像」をクリックし、「名前を付けて保存」すればベイクしたAO画像を保存できます。
以上、「BlenderでAOベイクする」でした!
AOベイクの補足事項
3Dビューでベイク結果を確認するならフラット+テクスチャ表示
AOベイクが成功すれば自動的にベイクしたAO画像がオブジェクトに割り当たりますが、テクスチャを表示させないとビューポートでの確認はできません。
ビューポートシェーディングのところから、フラット+テクスチャの設定にするとAOベイクの結果が確認しやすいです。
選択物→アクティブを利用したベイク
選択物→アクティブのオプションを利用すると、他モデルのAOをアクティブなモデルにベイクすることもできます。
ハイポリモデルからローポリモデルへのベイクもできそうではありますが、その場合は「ケージ」や「レイの距離」をうまいこと設定してあげる必要がありそうです。(やってみた感想)
※アクティブなオブジェクトの詳細についてはこちらを参照~
余白(パディング)の設定
ベイク項目の「出力」の中に「余白」の欄があります。
この余白(パディングとも言う)はけっこう大事で、テクスチャ作成時はUV領域のまわりに必要十分な余白を確保しておくのがおすすめです。
デフォルト設定の16pxでだいたい問題ないと思いますが、ベイクする画像サイズがとても大きいような場合は、相対的に余白もすこし多めにしたほうがいいかもです。
また、余白のタイプには「隣接面」と「拡張」があります。
デフォルト設定は隣接面ですが、タイプを拡張にした方がベイク結果がきれいになることがあります。
スムーズシェード/フラットシェードはベイク結果に影響する
AOベイクするオブジェクトのスムージング具合は、ベイク結果に影響するので注意です。
※スムーズシェード/フラットシェードについてはこちらを参照~
他オブジェクトのレンダー有効/無効もベイク結果に影響する
AOをベイクするとき、他オブジェクトのレンダーが有効になっているとベイク結果に影響します。ビューポートでの表示/非表示は関係なく、レンダーの有効/無効が関係することに注意です。
※アウトライナーでレンダーの有効/無効(カメラマーク)を表示する方法はこちらを参照~
きめ細やかなAOがほしいときはサンプリング数を上げる
AOのベイク結果のきめ細やかさはサンプリング数で変わります。
サンプリング数を上げればきれいなベイク結果が期待できますが、上げれば上げるほどベイクにかかる時間が長くなります。
おまけ:アンビエントオクルージョンとは
アンビエントオクルージョン(AO)
シーン内の環境光(ambient)がどの程度さえぎられている(occlusion)かを計算するレンダリング方法のこと。シーン内の1点から半球方向に対する光の遮蔽(しゃへい)状況を計算し、リアルな影を生成する。
CG WORLD CG用語一覧より
ざっくり言うと、
物体の奥まった部分や狭いすきまの部分は、光が届きにくいせいで暗くなって見える
という状態を計算して出力したのが、アンビエントオクルージョンです。
奥まった部分や狭い部分がないオブジェクトだと、アンビエントオクルージョンはほぼ出ない(真っ白に近い)状態になります。
アンビエントオクルージョンがあると立体感が出たり、雰囲気が良くなったりするので、トハはAO大好きです^^手描きでテクスチャ作成する場合、AOベイクはよく利用しています。
例えばロポさんのモデルは、一見とてもフラットなテクスチャに見えますが実はAOベイクして入れてます。テクスチャのAOあり/なしでモデルを比較してみると、ちょっとちがうのが分かるかな。
でも例えばセルルック調のぱっとみアニメに見えるような3Dモデルにしたい場合、AOを入れないほうがいい感じになることもあります。
以上、おまけ情報でした~
AOは必要に応じて活用するべし
●Blenderでベイクする グラデーション編はこちら↓
●Blenderでベイクする MatCap編はこちら↓
コメント一覧
初心者ゆえに的外れな質問をしていたらごめんなさい。
AOをベイクする時にライトは必要ですか?
ライトが必要な場合、ライトの配置やライトの数はAOのベイク結果に影響しますか?
例えばキャラクターの周辺に100個のライトを設置してAOをベイクした場合、明るすぎてAOが消えてしまうようなことはありますか?
こちらのツイート(https://twitter.com/miut_dayo/status/1123220299598614530)を見つけてライト数に圧倒されたので疑問に感じた次第です。
こちらの場合はAOのベイクではないのですが、何卒ご教授いただければありがたく思います。
Blender初心者さん、コメントありがとうございます。
ご質問の件ですが、AOをベイクするときにライトは必要ないのでご安心ください~
ベイク項目のベイクタイプをAOに変更すると、ベイクのオプション項目が減って見た目がすっきりする、と記事の中で書いています。
これは、AOのベイクにはライトやその他もろもろが影響しないので、それらの設定項目がなくなったためです。
おまけ:アンビエントオクルージョンとはのところで少し触れているのですが、AOは「環境光がどれくらい遮られるかをオブジェクトの形から算出」しているものです。
なので、ライトがゼロでもたくさんあっても関係なく、UVを開いたオブジェクトだけあればAOをベイクすることができます~
貼っていただいたツイートの例は、マテリアルやライティング等も含めたカラーのベイクなのでAOベイクとはまたちがうものになります。
AOベイクは比較的かんたんにできますので、よかったらまたやってみてください^^
トハさんありがとうございます。
とても勉強になりました。
他の記事でも助けてもらうことがあり、本当に感謝しております。
トハさん、こんにちは。
いつも為になる記事をありがとうございます。
AOのベイクについてなのですが、
この記事の『余白(パディング)の設定』の項目では、上段3枚の画像の背景は透過していますが、下段2枚の画像は背景が黒くなっていますよね。
AOベイクをすると、この記事のトハさんの上段の画像のようにベイクした画像の背景が透過されない(下段2枚の画像のような見た目になる)のですが、透過させるための設定がどこかにあるのでしょうか?
わぬさん、コメントありがとうございます~
ご質問の件について確認しました。
確かにベイク画像の背景部分が透過になってるものがありますね…!
Blenderの設定をいろいろ確認してみたのですが、いまのBlenderにベイク画像の背景を透明にするような設定は見当たりませんでした><
なぜ記事中のベイク画像はたまに背景が透過になっているのか…
本当にすみません、わかりませんでしたっ!!もしかしたら古いバージョンのBlenderには設定があったのかもしれませんーちょっと覚えていないのですが、でも今のBlenderには設定項目がないのは確かです。ということで、現状ではベイク画像の背景を透過させることはできないようです。
ちなみにレンダリング画像の背景を透過させることはできます。
レンダーのCyclesの設定で「ベイク」の少し上に「フィルム」という項目があって、この中に”透過”のチェックボックスがあります。ここの透過をONにしてアンビエントオクルージョンをベイクすれば背景が透過になるかなと思ってやってみたのですが…なりませんでした。
どうしてもベイク画像の黒い部分を透明にしたい場合は、Photoshopなどの画像編集ソフトで真っ黒の部分を自動選択して消すなどすれば可能です。
ちょっとスマートな方法が見つからず申し訳ないのですが、以上ご確認の程よろしくお願いします。
トハさん、検証までしていただいてありがとうございます!
レンダリング画像の透過についての情報もありがとうございます。
MMDモデルを作成していて動画なども作っているので、レンダリング画像の透過は使えそうです(^-^)
ベイク画像の透過につては、トハさんのおっしゃるように画像編集ソフトを使って消してみようと思います。
お時間をさいていただきありがとうございました。
今後もブログやYouTubeでお世話になると思いますので、よろしくお願いします。