Multiresolution(マルチレゾリューション 略:Multires)モディファイアって聞いたことありますでしょうか?自分は結構長い間スルーしてたんですが、調べてみたらスカルプトやベイク作業でかなり便利・時短な機能があることがわかり、自分の勉強がてらまとめてみることにしました。
プロや仕事の現場でも、Blender内でスカルプトからノーマルマップなどをベイクして仕上げるワークフローでは、Multiresolutionモディファイアは非常に有効で、よく使用されているようです。モデリングはZBrushなど外部ツールを使う方も結構多いのですが、全てBlender内で完結したいという方にはかなり便利なモディファイアだと思います。
今回はMultiresolutionモディファイアの基礎的な使い方を解説し、また別の応用の記事でキャラクターの服(しわなど細部があるもの)をスカルプトし、ベイクまでやってみたいと思います。
この記事は、BlenderのMultiresolution(マルチレゾリューション)モディファイアについて解説した初心者~中級者向けの記事です。(ベイクやスカルプトについて基礎的なことは知ってる方向けです)
難易度
応用↓ズボン作ってみたよ
Multiresolution(マルチレゾリューション)モディファイアとは?
Multiresolution(マルチレゾリューション)モディファイアはSubdivision Surface(サブディヴィジョンサーフェス)モディファイアのようにメッシュを段階的に細分化しながらも、各レベルでスカルプト編集を可能にするモディファイアです。

また、1つのメッシュ内でローポリとハイポリの状態を切り替えられるため、モデルを分けずにベイク処理が行えます。
使われるメリット
- Subdivision Surfaceでは不可能な「編集後も段階の切り替え」が可能
- ローポリとハイポリを同一メッシュ内で管理できる
- ベイクに最適(ノーマルマップ、ディスプレイスメント用)
- 解像度レベルを切り替えることでPCの描画負荷を軽減できる
主な使用シーン
- キャラクターの顔など細部の彫刻が必要な部分
- ノーマルマップやディスプレイスメントマップを作成したいとき
- Blenderだけでハイポリ→ローポリ→ベイクを完結させたいとき
Multiresolution(マルチレゾリューション)モディファイアの使い方
基本的な機能
- 各ビューのサブディビジョンのレベル
- Levels Viewport
- Sculpt
- Render
- Sculpt Base Mesh
- Optimal Display
- Subdivide
- Simple
- Linear
- Unsubdivide
- Delete Higher
Multiresolutionモディファイアの基本的な各ボタンの機能をざっと解説します。(Shape, Generate, Advancedはスルーします)

❶各ビューのサブディビジョンのレベル
Levels Viewport
レイアウト画面(ビューポート)で表示するサブディビジョンレベル
Sculpt
Sculpt画面で表示するサブディビジョンレベル
Render
レンダリングで描画するサブディビジョンレベル

レイアウトを変えるときはサブディビジョンレベルを下げるなどすると、PCへの負荷を抑えつつ軽快に作業ができます。
❷Sculpt Base Mesh
サブディビジョンレベルの高いSculpt画面で変形を行うとき、デフォルトではサブディビジョンレベル0に戻すと何も変形されていません。
ベイク作業のため元のポリゴンも変形させたい場合などに、Sculpt Base Meshにチェックを入れてから変形させると、その変形が元のポリゴンにも影響します。

❸Optimal Display
※レイアウト画面で有効です。
Optimal Displayにチェックを入れると、内側のエッジは削除され、外形のエッジのみ表示されます。
PCへの表示負荷を軽減できます。

❹Subdivide
Subdivide
角が丸くなるように滑らかに細分化します(デフォルトの Catmull-Clark アルゴリズムを使用)。1回押すと1段階分割されます。
Simple
元のメッシュのエッジを滑らかにせずに細分化レベルを作成します(単純な補間で、エッジをそのまま細かく分割するだけ)。
Linear
スカルプトした凹凸そのものを変形せずに、線形補間を使って細分化します。


実験で上図のような結果に分割されました。このメッシュの元のポリゴンは立方体なので、Simpleは立方体に近づくように分割しているということらしい…?多分。
通常の分割・・・Subdivide
元の形(レベル0)を保ちたいとき・・・Simple
スカルプトした凹凸を保ちたいとき・・・Linear
❺Unsubdivide
現在面分割されているメッシュをローポリに戻します。ただし、サブディビジョンサーフェスなどで規則的に割ったような分割でないと元に戻すことができません。さらに正しく元のローポリ状態に戻せるわけではありません。

まずサブディビジョンサーフェスで分割して適用します。

Unsubdivideを行うと分割が戻されましたが、元のメッシュとは違うものになりました。
❻Delete Higher
分割レベルを下げるときに使います。
Levels Viewportの数値以上の分割レベルが削除されるので、ここで維持したいレベルを設定して、Delete Higherをクリックします。

Multiresolutionを使うときに気を付けること

Multiresolutionを使ったベイクの仕方
右図のようにMultiresolutionモディファイアで5段階まで分割し、スカルプトでテクスチャをつけました。
このオブジェクトのノーマルマップを、レベル0のローポリにベイクします。
手順
- ビューポートのレベルを0にする(+UV展開)
- マテリアルの新規テクスチャを作成する
- ベイクする
- テクスチャをつける

①ビューポートレベルを0にする
Levels Viewportを0にします。(ベイク先のローポリ)
※このとき、まだUVを作っていなかったら元のポリゴンのUV展開をしておいてください
Sculptは作業したときの一番高いレベルに設定しておきます。(ベイク元のハイポリ)

②マテリアルの新規テクスチャを作成する
オブジェクトにマテリアルをつけ、Image Textureを追加します。(今はまだつなぎません)
Newを押します。
名前をつけ、Alphaのチェックを外し、New Imageで新しいノーマルマップ用のテクスチャを作成します。


③ベイクする
レンダーエンジンをCyclesに設定します。
Bake設定
Bake from Multiresにチェックを入れます。
Bake TypeをNormalsに設定します。
オブジェクトを選択し、マテリアルの中にあるイメージテクスチャノードを選択してBakeのボタンを押すとベイクされます。

④テクスチャをつける
ベイクが終わってUVエディタにいくと、ノーマルマップが出来ています。
Imageタブを開いてSave(または Save as)でノーマルマップを保存します。

マテリアルシェーダーにいき、イメージテクスチャをNormal Mapにつなぎます。
Normal Mapの出力はPrincipled BSDFのNormalにつなぎます。
このときImage TextureノードのColor SpaceをNon-Colorにします。
これで、ローポリにハイポリの凹凸を表現することができました。ローポリとハイポリ二つのオブジェクトを管理しなくてもよく、またベイクの設定もほぼチェックを入れるだけなので楽になります。
