複数のテクスチャを一つに纏める方法
使用Ver:2.9
一つのオブジェクトに複数のテクスチャが割り当てられている場合、それらを一枚にまとめる方法を紹介します。
ちょっと複雑な形のモデルを作成する時はパーツごとに分けて作る場合もあると思いますが、テクスチャもそれぞれ用意するとファイルの管理が大変ですよね。
今回のテクニックはそういった場合に役立つのではないでしょうか。
①オブジェクトを一つに統合
パーツごとにオブジェクトを分けて作った場合は統合をして下さい。
3Dビュー上かアウトライナー上でShiftを押しながら全てのオブジェクトを選択し、Ctrl+Jで統合できます。
プロパティウィンドウからオブジェクトデータプロパティのタブを開きます。
その中から「UVマップ」のタブを開き、オブジェクトを選択した状態で新しくUVマップを作成します。
上の画像の「UVMap」とある項目は、テクスチャ統合前の元のデータとなるので今の段階では消さないようにして下さい。(無事にテクスチャが統合できたら消してもOK)
「UV_test」が今回新しく作成したUVマップになります。
UVエディターを開きます。
オブジェクト統合前のUVが展開されていると思いますので、UV展開をし直して下さい。
編集モードへ切り替えてオブジェクトを全選択し、画面上の「UV」の項目から「展開」と進め再度展開ができます。
UVエディター上できちんと展開されたことを確認して下さい。
各テクスチャの集約先となる新しいテクスチャを用意します。
UVエディター画面の上部に紙が2枚重なったようなアイコンがあるので、そこから新しいテクスチャを作成して下さい。
サイズは元のテクスチャ全てを内包できる大きさが良いのではと思います。
カラーに関してはあまり関係無いので適当で問題無いです。
作成したら「画像」からすぐに新しいテクスチャ自体を保存して下さい。
④シェーダーエディタ上で画像テクスチャノードを追加する。
シェーダーエディタを開くと、複数あるマテリアルのうちどれかが選択されていると思います。
どのマテリアルでも良いですが、画像テクスチャのノードを追加し、更に先ほど作成した集約用のテクスチャを開きます。
開いたら、この新しい画像テクスチャノードを他のマテリアルにもコピペして下さい。
また後程テクスチャベイクを行った際にシェーダーエディター上でアクティブなノードで開かれている画像がベイク先に指定されるようですので、今回作成した画像テクスチャノードをすべてのマテリアル上でアクティブにしておくことを忘れないようにして下さい。
上の画像のようにノードの周囲が白い枠で囲われた状態=アクティブな状態です。
それから、ノードは出力ノードに接続されていない状態でも大丈夫です。
⑤ベイク
全ての画像テクスチャノードがアクティブであることを確認し終えたら、プロパティからレンダープロパティのタブを開きます。
タブ上部にレンダーエンジンを選択する項目がありますので「Cycles」を選択して下さい。
私は普段EeVeeを使用しているので本当はEeVeeで完結できれば良いのですが、現状だとベイクできるのはCyclesのみのようです。
タブの下の方に「ベイク」という項目があるはずですので開きます。
ベイクタイプをディフューズに変更し、影響はカラーのみにチェックを入れて下さい。
以上でテクスチャベイクの準備は整いました。
最後に同タブ内のベイクのボタンを押してください。
するとしばらく待機した後に、集約用に用意したテクスチャに各パーツのテクスチャがベイクされます。
テクスチャの状態の確認して問題が無ければ、再度保存して下さい。
問題
ここまで解説しておいてアレですが、上記の方法だと私の環境ではベイク先の画像にベイクされない、ということが度々起こります。
原因を考えてはみたのですが判明していません。
この方法でもきちんとベイクされることもあり100%間違っているわけではないようなのですが…。
恐らくUVマップやノードが間違ったものを選んでいたとか言う単純なミスのような気もします。