法線に沿ってではなく、ベクトルを使用してメッシュを移動します。
ベクトル ディスプレイスメント マップを使用すると、サーフェス法線に沿ってのみディスプレイスメントが可能な方法とは異なり、3 次元でのメッシュのディスプレイスメントが可能になります。ベクトル ディスプレイスメント マップは、グレースケール イメージではなく、ノーマル マップのようにフル スペクトラムのカラーを使用して効果を適用します。
重要: ベクトル ディスプレイスメント マップは常にマテリアル/マップ ブラウザから利用できますが、それをサポートしているのは
mental ray レンダラーのみなので、使用するときは必ず mental ray がアクティブなレンダラーになっていることを確認してください。
ベクトル ディスプレイスメント マップ イメージを作成する最良の方法は、Autodesk Mudbox を使用することです。これは、低ポリゴン サーフェスと高解像度のものの差をマップとして抽出します。サーフェスは 3ds Max で作成されたオブジェクト(以下の手順で詳述)か、または Mudbox で全体的に作成した後に書き出したオブジェクトのいずれかです。抽出のプロセスに使用できる 2 つのオブジェクトは、2 つの個別のオブジェクトか、または同じのオブジェクトの 2 つの個別のサブディビジョン レベルです。ただし、後者の場合、最も低いサブディビジョン レベルには複数のディスプレイスメントが含まれる可能性があります。そのため、ほとんどの場合は、マップの抽出に次のような個別のオブジェクトを使用するのが最適です。ディスプレイスされていない「ターゲット」モデルと、詳細な「ソース」モデル。2 つのオブジェクトは精密に重ね合わせられます。これは、手順で説明されているのと似た方法を使用すると、通常は簡単に達成できます。
手順
この手順では、3ds Max オブジェクトを Mudbox に送信し、Mudbox に詳細を追加し、ベクトル ディスプレイスメント マップを抽出し、それからディスプレイスメント マップを 3ds Max に送り返す方法を説明します。この手順を使用するには、両方のアプリケーションを同じコンピュータにインストールしておく必要があります。Mudbox を実行している必要はありません。
各アプリケーションが別のマシンにインストールされている場合、FBX または OBJ ファイル形式を使用して、シーンをマシン間で移動できます。
重要: この手順を使用する前に、両方のアプリケーションが同じシステム単位を使用していることを確認します。
- 3ds Max で、[カスタマイズ](Customize)メニューから[カスタマイズ](Customization)パネルを開き、[単位設定](Units Setup)を選択します。
- [単位設定](Unit Setup)ダイアログ ボックスで、[標準設定](Generic Units)が選択されていることを確認し、[システム単位設定](System Unit Setup)をクリックします。ドロップ ダウンリストから、次のいずれか(Mudbox の唯一の選択肢)を選択します。
[OK]を 2 回クリックして、ダイアログ ボックスを終了します。
- Mudbox で、[ウィンドウ](Windows)メニューを開き、[基本設定](Preferences)を選択します。
- [基本設定](Preferences)ダイアログ ボックスで、[ユーザ インターフェース](User Interface)項目を展開します。
- 線形単位を 3ds Max で行った選択と同じものにし、[OK]をクリックしてダイアログ ボックス終了します。
例: ベクトル ディスプレイスメント マップを使用するには:
- 3ds Max でオブジェクトを作成するか読み込みます。オブジェクトに Source Object という名前を付けます。
- [UVW アンラップ](Unwrap UVW)モディファイヤ を適用し、どの UV クラスタも、濃い青色の正方形の太いアウトラインで示される 0-1 テクスチャ座標の縁取りを交差していないことを確認します。
そうしておかないと、Mudbox でオブジェクトの処理が正しくなされません。
- [アプリケーション](Application)メニューから、[送信](Send To) [Mudbox へ送信](Send To Mudbox) [新規シーンとして送信](Send As New Scene)を順に選択します。
しばらくすると、Mudbox にオブジェクトが現れます。
- 3ds Max で、オブジェクト名を Target Object に変更し、今度は[現在のシーンに追加](Add To Current Scene)を使用して再び Mudbox に送信します。
これで、Mudbox には元のオブジェクトと同じ 2 つのコピーが違う名前で含まれています。
- Mudbox で、[ソース オブジェクト](Source Object)を選択し、[Shift]+[D]キーを数回押して、サブディビジョン レベルを追加します。
- プロジェクトの必要に応じて、利用可能なレベルを使用して、ソース オブジェクトを Mudbox 内でスカルプトします。
ヒント: 必要に応じて、ターゲット オブジェクトを非表示にできます。その場合は、[オブジェクト リスト](Object List)を開き、目のアイコン(
)の下にあるターゲット オブジェクト項目の左側の黒丸をクリックします。
- Mudbox で、[マップ](Maps)メニューから [テクスチャ マップを抽出](Extract Texture Maps) [新規操作](New Operation) [ベクトル ディスプレイスメント](Vector Displacement) を順に選択します。
[テクスチャ マップを抽出](Extract Texture Maps)ダイアログが開きます。
- [抽出オプション](Extraction Options)セクションで、ターゲット モデルとして[ターゲット オブジェクト](Target Object)を、ソース モデルとして[ソース オブジェクト](Source Object)を(最も高いレベルで)必要に応じて選択します。これらが既定の設定となっている場合もあります。
- [ターゲット モデルをスムーズ](Smooth Target Models)チェック ボックスをオフにします。
- [ソース モデルをスムーズ](Smooth Source Models)をオンにします。
- [イメージのプロパティ](Image Properties)で、イメージ サイズを 2048x2048 以上に設定します。
- [ベクトル ディスプレイスメント マップ オプション](Vector Displacement Map Options)で、[ベクトル空間](Vector Space)を[オブジェクト](Object)に設定します。
- [出力オプション](Output Options)で、ファイル名拡張子
.exr
を使用してパスとファイル名を入力します。または、[ベース ファイル名](Base File Name)フィールドの隣のフォルダ ボタン()をクリックし、[ファイルの種類](Save As Type)を[OpenEXR]に設定し、ファイル名を入力し、[保存](Save)をクリックします。
- ダイアログの下部にある[抽出](Extract)をクリックします。
これにより、2 つのサーフェスの差を含むビットマップがレンダリングされ、それがイメージ ファイルに保存されます。この時点で、3ds Max でベクトル ディスプレイスメント マップとビットマップ マップを使用して、保存したファイルを手動で適用することも可能ですが、相互運用の機能があるので、その手順は自動で実行する方が簡単です。
- [オブジェクト リスト](Object List)で[ターゲット オブジェクト](Target Object)を選択してから、Mudbox インタフェースの右下隅にある[更新](Update)をクリックします。
オブジェクトは、Mudbox での抽出手順で作成されたデータを使用して更新されます。オブジェクトにマテリアルがない場合、標準のマテリアルが割り当てられます。ベクトル ディスプレイスメント マップがマテリアルに適用され、抽出されたビットマップがマップに割り当てられます。ベクトル ディスプレイスメント マップの設定の調整は必要ありません。
または、ターゲット オブジェクトを FBX 形式([ファイル](File)メニュー [Export Selection])で保存します。これには、FBX ファイルのベクトル ディスプレイスメント マップを適用したマテリアルが含まれます。マップは、書き出し処理の一部として自動的に保存される、抽出したビットマップをポイントします。ビットマップは、書き出した FBX ファイルと同じ名前のフォルダに別のファイルとして拡張子 .fbx-files で保存されます。次に、FBX ファイルを 3ds Max に読み込みます。
- なお、3ds Max では、必ず mental ray を有効なレンダラーにしてください。
- ターゲット オブジェクトを選択して右クリックし、[オブジェクトのプロパティ](Object Properties)を選択します。[オブジェクトのプロパティ](Object Properties)ダイアログ ボックスで[mental ray]タブをクリックし、[ディスプレイスメント](Displacement)領域で次に示す設定を行います。
- [グローバル設定を使用](Use Global Settings)チェック ボックスをオフにします。
- [スムージング](Smoothing)チェック ボックスをオフにします。
- エッジの長さを 1.0 に設定します。
- ここでは最大ディスプレイスは既定値のままにしておきます。これでレンダリング時にエラーメッセージが表示されるようなら、最大ディスプレイス値をそのエラーメッセージが指定している値に変更し、再度レンダリングを行ってください。
- シーンをレンダリングします。
インタフェース
3ds Max と Mudbox の相互運用の機能を使用する場合、通常はこれらの設定が自動的に設定されるので、調整する必要はありません。
- ベクトル
- マップがディスプレイスメントに使用するイメージ ファイルを設定し、表示します。このボタンをクリックし、[マテリアル/マップ ブラウザ](Material/Map Browser)から[ビットマップ](Bitmap)を選択し、Mudbox で生成された EXR ファイル を指定します。
この設定に関連するのは、マップと数値強度設定を切り替えるチェック ボックスです。 既定値は 1.0 で、これは 100% に相当します。
- マップ設定: 高いダイナミック範囲
- ダイナミック範囲の高いデータを含むビットマップを使用する場合(EXR ファイルなど)、これは必ずオンにします。現時点で EXR が互換性のある唯一の形式であるため、高いダイナミック範囲は常にオンにしておく必要があります。
- 方法(M)
- Mudbox でイメージ抽出に使用したベクトル空間の設定と合致するオプションを選択します。[ベクトル空間](Vector Space)を[絶対接線](Absolute Tangent)に設定している場合(相対接線はサポート外)、[方法](Method)を[接線](Tangent)に設定します。[ベクトル空間](Vector Space)を[オブジェクト](Object)か[ワールド](World)に設定している場合は、それに対応する[方法](Method)オプションを選択します。