Substanceでローポリモデルにハイポリの凹凸をノーマルマップとしてベークする方法

色々なサイトにやり方が書いてありますが、いつも忘れてしまうので自分用にまとめておきました。


【手順1】
ハイポリモデルを何かダウンロードしてくる。
今回は、「Sculpture showing “St. Anna” from 18th century」を使用させていただきました。
https://sketchfab.com/3d-models/sculpture-showing-st-anna-from-18th-century-f46414a1d86a42349e6cdb046f892a4e
ダウンロード形式は「obj」を指定


【手順2】
Blenderでハイポリモデルをimportする。
インポート画面
【手順3】
まずは、このハイポリをfbxファイルでexportする。
Blenderでfbxファイルの書き出し(Export)
export設定は自由だが、自分は以下のような感じ。
fbx書き出し設定
【手順4】
選択中のハイポリモデルにモディファイア「Decimate」を適応して、ポリゴンを削減する。
Decimateのほうがリメッシュよりも、UVを壊さないから便利らしいです。
BlenderのDecimateモディファイアー
Ratioを1.0から0.1とか、小さい数値にすると削減できるので、目標の削減値になったら、「apply」を適応して、ポリゴンを削減する。
DecimateモディファイアーのApply
【手順5】
ポリゴンを削減したモデルをfbxファイルでExportする。
設定は、ハイポリの時と同じでよい。
ファイル名は「Statue_lowpoly.fbx」などのようにローポリと分かるように書き出しておく。
fbxファイルの書き出し設定
【手順6】
Substance Painterを立ち上げて、New projectでローポリを開く。
Normal Map FormatはBlenderの場合は、OpenGLにしておく。
Substance Painterの新プロジェクト画面
【手順7】
TEXTURE SET SETTINGS内にあるMESH MAPSのところにある「Bake Mesh Maps」ボタンをクリックする。
TEXTURE SET SETTINGS画面
【手順8】
High Difinition Meshesの右側にあるメモのようなアイコンをクリックして、ハイポリのfbxファイルを選択する。
また、Matchのところは、「By Mesh Name」に設定しておく。
そのあと、「Bake selected textures」をクリックするとベーク開始
ベーク設定画面
【手順9】
手順8まで完了すると、MESH MAPSにベークされたテクスチャがセットされる。
よくわからないが、LAYERSで自分でペイントしたテクスチャとは別にデフォルトでセットされるテクスチャとなるようだ。(説明が難しい)
とりあえず、これで凹凸がリアルにつくようなったと思う。(ハイポリの凹凸がノーマルで焼き込まれるので)
ベーク後のTEXTURE SET SETTINGS画面

ベーク前
ベーク後
【手順10】
あとは、Substance PainterのLAYERSでいつも通りテクスチャをペイントしていけばOK
LAYERSで自分でテクスチャを貼り付けた画面
【手順11】
テクスチャ作成が終わったら、テクスチャを書き出す。
Substance PainterでテクスチャExport
【手順12】
設定は自由だが、Unityの場合は添付画像のように設定してExportボタンをクリック
主な設定箇所
・Output directory 保存フォルダ
・Output templete どの形式で出力するか
・File type pngかjpegかなど
・Size 1024pxで出力するかなど
・Padding 不明(UVの各ポリゴンの境界をどうするかなのか?)
テクスチャExportの設定画面
© 2022 Husky Studios (タロ三世商会), All rights reserved.