日本家屋3DモデルをSketchfabに公開するまでのワークフロー[UV展開・マテリアル・モディファイア編]
はじめに
前回の[モデリング編]に引き続き、UV展開やマテリアル、テクスチャ、モディファイアについてのワークフローを記載していきます。
[1] 準備
・各オブジェクトの整理。コレクションにまとめる。
・ハイポリオブジェクトには"_hp"を末尾に統一して付与。
・隠れメッシュなどをOption+Hでチェックして、要らなければ削除。
・Vertexが重複している可能性があるので、Merge Vertices by Distanceで数値0.0001あたりでチェックしてマージ。下部バーにマージした点の数が表示される。マージした影響が形状に出ていないか確認する。
[2] マテリアルの割当てとテクスチャの接続
・各オブジェクトにマテリアルを割当て。
・まずざっくりとカラーチャートで色だけつけて全体の色バランスを見ても良いし、すでにテクスチャまで用意している場合はDiffuseだけ接続しても良い。
・同一オブジェクト内でメッシュごとにマテリアルを分ける場合は、該当する面を選択して"Assign"で割当て。
・境目が思った通りにならない場合は、WeightPaintで調整。境界線をくっきりさせたいときは、ループエッジを追加すると良い。
[注意点]
*テクスチャイメージのデータ容量を踏まえて、適切な枚数に限定する。
*4Kは1枚で50MB程度。ベイクして2Kテクスチャ数枚程度にまとめたとしても、Sketchfabの無料アカウントの50MB制限ギリギリになる。
*ムラやランダムさを加えたい場合、Noise Textureを利用して同じテクスチャの色違いをMixすることで表現できたりする。
[3] UV展開
・各オブジェクトをCTR+AでApply All Transformation。
・モデリング時にUV展開したもの(オリジナルとその複製で作成したもの)以外のUnwrapをする。
・直線的に構成されているメッシュは、主にProjection from ViewでUnwrapすると綺麗に展開できる。(Cube Projectionは寸法があべこべになることが多かった)
・満足のいく展開ができたら、UVマップのタブで"+"をタップして複製。
・メインUVマップを"forTexture"、サブを"forBake"と名前をつける。
・"forBake"はベイク準備に入るまで変更しない。
・UVエディターでDiffuseテクスチャを開き、該当するメッシュを選択。
・SyncをONにしておくと3DビューとUV Editorで選択したメッシュが同期するので便利。この状態だと、面を選択して切り離しやすい。
・3DビューをMeterial Previewモードにする。
・Meterial PreviewとUV Editorを見比べながら、UV上のメッシュの位置やスケールを調整していく。(前述の通り、ここで調整しているのはforTextureと名付けた方のUVマップ)
[4] マテリアルの調整
・全体のテクスチャ調整が終わったら、苔や色むらを足していく。上図は壁面マテリアルに苔テクスチャを足した例。
・色むらに関しては、同一テクスチャにHue/Saturation(あるいはBright/Contrast)調整ノードを噛ませてMixRGBで混ぜる。FactorはNoiseTextureとColorRampノードで調整する。
・アルファ付きのテクスチャ素材やパーツテクスチャを任意のポジションに配置したいときは、別途UVマップを複製(上図では"forDirts")。"forDirts"UVマップをShaderEditor上で参照し、ImageTextureノードに接続。
・汚したいメッシュを選択して、好きなサイズ・位置に調整。汚しを乗せないメッシュは透明エリアに小さくして避難させる。
[5] Displaceモディファイア
・Displaceを加えるオブジェクト(あるいはオブジェクトの一部のメッシュ)にエッジループを加えて、均等なQUADメッシュにする。エッジループではUVマップが破綻する心配は少ないが、念の為、UV Editorでチェックしながら進める。
・SubdivisionとDisplaceモディファイアを追加。
・多くの場合、Diffuseテクスチャ等とセットになっているDisplaceマップを使用するので、Displaceモディファイアで参照するCoordinatesは"forTexture"と名付けたメインUVマップになる。
・ノーマル方向へのDisplaceなので"Normal"を選択。
・Displaceを加えるのが一部分だけの場合、そのメッシュを選択してVertexグループを作成し、DisplaceモディファイアのVertex Groupタブで参照する。
・Vertex Groupを選択した状態でWeightPaintに入ると、境界線の調整ができる。このときモディファイアをオフにしてペイントした方が処理が早い。
・Displaceの影響を小さくしたいエッジなどは、エッジループを加えて端まで寄せる。
・Subdivisionレベルと上げる/エッジループを足すとより細かく凹凸が表現されるが、必要十分であればOKなのでやりすぎない。
[注意]
Displaceのためのエッジループを加える前に、コレクションごと複製しておくとローポリ作成の作業で選択肢が増える。窓などの歪ませたくない箇所は、DisplaceをApplyせずにそのまま外してローポリとすることできるので。