夜はCGの時間

ゲームのデザイン仕事を生業にする筆者が、色々なツールのちょっとしたネタやTipsなどを投稿、まとめる備忘録ブログです。

【MAYA】ArnoldでAOをテクスチャにベイクする

知らないと呪文のようなブログタイトルだ。

 

Arnoldでアンビエントオクルージョンを計算して、それをテクスチャに焼き付ける。

 

完成図

f:id:Magotarou:20190825172647p:plain

 

 

 

これをするとテクスチャに書き込む陰影のクオリティが均一になるので、大量に制作する際のクオリティが担保できる。

プラス単純にテクスチャ制作が楽になる。

 

しかし、向いている場合と向いていない場合がある。

 

向いている

形状に嘘のない程度のポリゴン数を使用しており、UVを重ねなくてもディティールが落ちない程度のテクスチャサイズである場合。モデルの数が単純に多い場合。

 

向いていない

極端にローポリゴンで、形状に嘘が多い場合。テクスチャサイズが小さいため、UVが重なっているところが多い場合。

 

向いているようなら、早速実践してみよう。

 

使用MAYAバージョン:2019.2

 

 

 Arnoldのインストール

Arnoldは通常、MAYAのインストール時に一緒にインストールされる。

MAYA LTでは使えない(LTではTARTLEを使う)。

もしインストール時にカスタムして外しているようなら、あらためてインストーラを実行してカスタムインストールでArnoldを追加すればよい。

 

モデルを用意

焼き付けるモデルを用意する。

f:id:Magotarou:20190825152424p:plain

焼き付けたテクスチャがわかりやすいように、ライティング>フラットライトを使用でビューポート上ではライトの影響を受けないようにしている。

 

UVを展開

UVを展開する。ポイントは2つ。

  • UVは重ならないようにする。
  • 0.0~1.0に収める。

 

f:id:Magotarou:20190825153237p:plain

 

ポイントは2つだが理由は1つ。

UVが重なると重なった分だけ影が焼きつけられて正確な影にならないからだ。

 

マテリアルの作成

Arnold用のマテリアルを作成する必要がある。

ハイパーシェードを表示して、

 

作成>Arnold>aiAmbientOcclusion

f:id:Magotarou:20190825160056p:plain

 

をクリックすると新規マテリアルが作成されるので、それをモデルに割り当てる。

f:id:Magotarou:20190825160333p:plain

 

割り当てると黒くなる。

 

カメラの作成

Arnoldでレンダリングするためのカメラを用意する。

まず、Arnoldのレンダリング用ビューを表示する。

 

上部メニュー>Arnold>Render

f:id:Magotarou:20190825160652p:plain

 

表示されたビューには、『最初は何も映らない』が暫く待つとレンダリングが終わって以下のような状態が表示される。

f:id:Magotarou:20190825160755p:plain

このままでもいいが、アングルを変えるためにはビューのパースペクティブカメラを動かさないといけない。

モデルを見回そうとカメラを動かしてしまうとRenderViewのアングルまで変わってしまうので、今回はレンダリング用のカメラを新しく用意する。

 

作成>カメラ>カメラ

f:id:Magotarou:20190825161157p:plain

 

追加したカメラをRenderViewで指定する。

f:id:Magotarou:20190825161259p:plain

 

あらためて追加したカメラのアングルを調整して、RenderViewにモデルが表示されるようにする。

f:id:Magotarou:20190825161530p:plain

 

アンビエントオクルージョンの調整

アンビエントオクルージョンのかかり方を調整する(正直デフォルト値でも十分ではある)。

 

オブジェクトモードでモデルを選択してアトリビュートエディタを開くと、タブの一番最後に先程割り当てたaiAmbientOcclusion1がある。

 

そこの【Ambient Occlusion Attributes】の各項目で調整が可能だ。

f:id:Magotarou:20190825163359p:plain

 

ベイクする

最後に、テクスチャにベイク(焼き付け)る。

モデルを選択して、

 

Arnold>Utilities>Render Selection to Texture

f:id:Magotarou:20190825164638p:plain

 

実行すると以下のようなウィンドウが表示される。

f:id:Magotarou:20190825170108p:plain

 

  1. Output Folderで保存フォルダを選択
  2. Resolutionで解像度を指定
  3. Renderボタンを押す

これでアンビエントオクルージョンを焼き付けたテクスチャが.exr形式で出力される。

※ .exr形式はPhotoshopで開ける。AffinityPhotoでも開ける。

f:id:Magotarou:20190825171945p:plain

 あとはこの画像をディティールを書いたテクスチャに重ねるなり、そのまま使うなりすればいい。

 

以下の画像は、lambartマテリアルを新規に作成し、ColorにベイクしたAOテクスチャを割り当て、フラットライトで表示した状態となる。

f:id:Magotarou:20190825172409p:plain

 

Photoshopで、肌色にAOテクスチャをオーバーレイで重ねる加工をしたテクスチャを割り当てれば、このようにライトの影響を考慮しない自然な陰影の見た目にもできる。

f:id:Magotarou:20190825172647p:plain

 

【Ambient Occlusion Attributes】の設定次第では、階調を減らしてトゥーンのような影を入れることも可能なので、試してみても面白いかもしれない。