【MAYA】ArnoldでAOをテクスチャにベイクする
知らないと呪文のようなブログタイトルだ。
Arnoldでアンビエントオクルージョンを計算して、それをテクスチャに焼き付ける。
完成図
これをするとテクスチャに書き込む陰影のクオリティが均一になるので、大量に制作する際のクオリティが担保できる。
プラス単純にテクスチャ制作が楽になる。
しかし、向いている場合と向いていない場合がある。
向いている
形状に嘘のない程度のポリゴン数を使用しており、UVを重ねなくてもディティールが落ちない程度のテクスチャサイズである場合。モデルの数が単純に多い場合。
向いていない
極端にローポリゴンで、形状に嘘が多い場合。テクスチャサイズが小さいため、UVが重なっているところが多い場合。
向いているようなら、早速実践してみよう。
使用MAYAバージョン:2019.2
Arnoldのインストール
Arnoldは通常、MAYAのインストール時に一緒にインストールされる。
MAYA LTでは使えない(LTではTARTLEを使う)。
もしインストール時にカスタムして外しているようなら、あらためてインストーラを実行してカスタムインストールでArnoldを追加すればよい。
モデルを用意
焼き付けるモデルを用意する。
焼き付けたテクスチャがわかりやすいように、ライティング>フラットライトを使用でビューポート上ではライトの影響を受けないようにしている。
UVを展開
UVを展開する。ポイントは2つ。
- UVは重ならないようにする。
- 0.0~1.0に収める。
ポイントは2つだが理由は1つ。
UVが重なると重なった分だけ影が焼きつけられて正確な影にならないからだ。
マテリアルの作成
Arnold用のマテリアルを作成する必要がある。
ハイパーシェードを表示して、
作成>Arnold>aiAmbientOcclusion
をクリックすると新規マテリアルが作成されるので、それをモデルに割り当てる。
割り当てると黒くなる。
カメラの作成
Arnoldでレンダリングするためのカメラを用意する。
まず、Arnoldのレンダリング用ビューを表示する。
上部メニュー>Arnold>Render
表示されたビューには、『最初は何も映らない』が暫く待つとレンダリングが終わって以下のような状態が表示される。
このままでもいいが、アングルを変えるためにはビューのパースペクティブカメラを動かさないといけない。
モデルを見回そうとカメラを動かしてしまうとRenderViewのアングルまで変わってしまうので、今回はレンダリング用のカメラを新しく用意する。
作成>カメラ>カメラ
追加したカメラをRenderViewで指定する。
あらためて追加したカメラのアングルを調整して、RenderViewにモデルが表示されるようにする。
アンビエントオクルージョンの調整
アンビエントオクルージョンのかかり方を調整する(正直デフォルト値でも十分ではある)。
オブジェクトモードでモデルを選択してアトリビュートエディタを開くと、タブの一番最後に先程割り当てたaiAmbientOcclusion1がある。
そこの【Ambient Occlusion Attributes】の各項目で調整が可能だ。
ベイクする
最後に、テクスチャにベイク(焼き付け)る。
モデルを選択して、
Arnold>Utilities>Render Selection to Texture
実行すると以下のようなウィンドウが表示される。
- Output Folderで保存フォルダを選択
- Resolutionで解像度を指定
- Renderボタンを押す
これでアンビエントオクルージョンを焼き付けたテクスチャが.exr形式で出力される。
※ .exr形式はPhotoshopで開ける。AffinityPhotoでも開ける。
あとはこの画像をディティールを書いたテクスチャに重ねるなり、そのまま使うなりすればいい。
以下の画像は、lambartマテリアルを新規に作成し、ColorにベイクしたAOテクスチャを割り当て、フラットライトで表示した状態となる。
Photoshopで、肌色にAOテクスチャをオーバーレイで重ねる加工をしたテクスチャを割り当てれば、このようにライトの影響を考慮しない自然な陰影の見た目にもできる。
【Ambient Occlusion Attributes】の設定次第では、階調を減らしてトゥーンのような影を入れることも可能なので、試してみても面白いかもしれない。