ケージベイクを用いたノーマルマップの作り方
https://www.youtube.com/watch?v=0Zxme8Ai8H4&hd=1
今回はMODO 801から新たに用意されたテクスチャベイキングのオプションであるケージベイクについて解説していきます。
サンプルとなるこのシーンには高解像度のモデルと低解像度のモデルが用意されています。この高解像度のモデルを元にノーマルマップを作成し、低解像度のモデルへとマッピングすることで、ジオメトリの数を減らしつつ、ディテールを備えたように見えるモデルを用意することができます。
まずは低解像度のモデルに対してUVを作成しましょう。UVのレイアウトへと移り、低解像度のモデルの方を横からエッジを一列選択しUVピーラーをクリックし、UVを展開します。これで選択しているエッジからUVを開くことで、全体が綺麗にUV空間に展開されるようになりました。
レンダータブへと移り、低解像度のマテリアルに対してレイヤー追加 > 画像 > (新規画像)から新しくノーマルマップ用の画像を生成します。ノーマルマップですので、エフェクトをディフューズの色からサーフェイスシェーディングの中にある法線へと変更します。
では画像を選択した状態で右クリックからオブジェクトからテクスチャへベイクを選択します。801からケージという項目が新たに追加されていますが、まずは今まで通り距離の値を入力します。この距離の値とは、ノーマルマップに焼き付ける時のレイの距離を示すものです。今回は1mと設定してベイクを行ってみましょう。
レンダリングしたベイク画像で確認してみると、概ねキレイにベイクされていますが、良く見てみるとジオメトリ自体が近い個所にある部分ではベイクの処理がうまく行われていないようです。これはジオメトリが近い個所では、レイの距離が適切でないためです。この距離を調節することでうまくベイクすることもできますが、801で実装されたケージベイクでは、高解像度のモデルを覆うようなケージを使い、そのケージに対するレイの距離を使用することで、うまくベイク処理を行えるようになっています。
このケージは低解像度のメッシュのモーフマップという形で用意します。モデルのタブへと戻り、低解像のメッシュに対して、高解像度のモデルを覆いこむようなモーフマップを作っていきましょう。
低解像度のメッシュを選択したら、リストタブにあるモーフマップで新規モーフを作成します。ここで背景にある高解像度のメッシュを覆うようなモーフを作りたいのですが、単なるスケールツールだと外側部分は良いのですが、内側部分がうまく覆うことができません。全体にスケールをかけるのではなく、各セグメントに対してスケールをかけたいので、このような場合にはプッシュツールを使用します。セグメントごとにエッジを選択し、プッシュツールを起動して、背景のメッシュが隠れて見えなくなるくらいのモーフを作成します。これで準備はOKです。
レンダーレイアウトへと戻り、高解像度のメッシュを選択した状態で、シェーダツリーからベイクの画像を選択し、オブジェクトからテクスチャへベイクを選択します。先ほどは距離の値を入力しましたが、今回はケージのポップアップから作成しておいたモーフマップを選択し、ベイクを行ってみます。
そうすると先ほどとは異なり、ジオメトリが近い個所であっても、正しくベイクできていることが確認できます。
このように、ジオメトリの形状によっては、それを覆うような形状を低解像度のメッシュに対してモーフマップとして用意し、ケージベイクを行うことで、破たんすることなくキレイなベイクが行えるようになります。