前書き
VRChatにて、こうめちゃんをフォールバックアバター化するために装飾小物をテクスチャで表現したかった。しかし、画像編集ソフトで衣装テクスチャに小物をつぎはぎしようとすると、UVの歪みからどうしても歪む。UVはあんまり動かしたくないのでベイクで対応。
その覚え書き。
先に結果から
環境
- Blender 3.2.1
ベイクの考え方
Blenderのベイク機能の"選択物 → アクティブ(Selected to Active)"を使う。
マニュアルによると、本来はハイポリをローポリに転写する用途で、以下の図のような感じらしい。
今回はボタンやリボンなどの小物をコスチュームやヘアーテクスチャにベイクしたい。
そこで、"押し出し"と"レイの最大距離"で調整して以下のように転写する。
ベイクの手順
服へボタンを転写する(厳密にはボタンのみ転写されたテクスチャが生成されるので、それを画像編集ソフトで服テクスチャに重ねる)
1. 転写用のテクスチャを作成
2. 転写先のマテリアルにテクスチャノードを設定
- シェーダーエディターを開き、転写先オブジェクトに設定しているマテリアルを開く。テクスチャノードに転写先テクスチャtex_costume_bakedを設定。そして、テクスチャノードを選択し、アクティブな状態にしておく。
- 一応テクスチャノードと繋がってるノードを外す。(調べてたらテクスチャノードのノードは外しておくって記事を見かけたんだけど、外さなくてもメッセージが出るだけでベイクはうまくいったりした)
3. レンダリング設定
- 標準のレンダリング設定では時間がかかりすぎるので変更
- レンダープロパティタブにて。サンプル数を落として、一応デノイズのチェックも外す
- 効いてるのかわかんないけど、念の為ライトパスの最大バウンス数の合計を1に
4. ベイク設定
- レンダープロパティタブにて。
- ベイクタイプ:ディフューズ
- 寄与:カラーのみ
- 選択物 → アクティブ:チェック
- 押し出し:5cm(今回は、衣服表面の5cm以内のボタンを転写)
- レイの最大距離:5cm(多分設定しておかないと、衣服のあっちこっちのメッシュから飛んできたレイがボタンに当たって想定外のとこに転写される)
- ※上記の距離はアクティブオブジェクトのスケールの影響を受ける模様。スケールの逆数を距離にかけて設定するか、アクティブオブジェクトのスケールを適用して1にする。
5. ベイク
- Shiftを押しながら装飾小物(ボタン)をクリックし、その後転写先オブジェクト(服)をクリックする。ボタンオブジェクトが朱色のアウトライン、服オブジェクトがオレンジ色になってるはず。
- ベイクボタンを押す。CPU環境4267x4267で20秒くらい。
- テクスチャノードを外している場合は、シェーダーエディターでテクスチャノードを接続
- UVエディタ開くと転写されていることが確認できる。
- この画像を保存して画像編集ソフトとかで元テクスチャに乗っければ完了。
終わりに
また一歩Blender君に歩み寄れた気がする。こうめちゃんありがとう。