前回の記事「Blenderで服(体操着)をモデリングしてみる–ベースメッシュ編」でとりあえずベースモデリングが終わったので、今回は Blender でテクスチャを貼るための UV マッピングをしていきたいと思います。
モデリングももちろんそうなんですが、UV マッピングは仕上がりのクオリティーに大きく影響するので、しっかり作りたいところでもあります。 まぁ時間と手間との相談なんですが …
UV マッピングの大まかな作業の流れは下記のようになります。
- テクスチャの切れ目を想定してシームを入れる
- UV 展開して UV マップを修正、ピン留めする
- 再び UV 展開して修正、ピン留めする
- 上の作業を繰り返し UV マップを仕上げる
- Blender でテクスチャをペイントし Photoshop などで作り込む
テクスチャの切れ目を想定してシームを入れる
シームというのは縫い目という意味です。 縫い目をつけた部分が UV では切り離されます 例えば下記のような立方体を UV 展開するとします。 画面左側のような展開図にしたいときは、画面右側のようにシームを入れます( 赤い辺がシームです )。

こんな感じで作りたい展開図をイメージして、辺にシームをつけてから UV 展開します。 それでは実際に前回作った体操着で UV 展開をしていきたいと思います。 もともと立体を平面に展開するので、どうしても歪みや継ぎ目が出てしまいますが、それを目立たないようにする … というのを意識しながら UV マッピングをしていきます。
まず準備としてミラーモディファイアーでミラーリングしていたものを「適応」ボタンを押して確定させます。

オブジェクトモードにしてモディファイアーパネルのミラーモディファイアーにある「適応」ボタンを押します。 編集モードに戻るとミラーモディファイアーが確定されて全部がポリゴンになっています。
次に UV マッピングしやすいように画面を分割しますが、スクリーンレイアウトに「UV Editing」というレイアウトがあるのでそれをそのまま使うことにします。

画面左が「UV / 画像エディター」画面右が「3D ビュー」になります。 それでは 3D ビューの方を Tab キーで編集モードにして、シームを入れていきたいと思います。
画面が小さくて作業しずらい場合は拡大したい画面上にマウスポインタを移動してから Shift + スペースキーで拡大表示することができます。

もう一度 Shift + スペースキーでもとの表示に戻ります。
今回まずはワキの下から裾、袖口にかけてにシームを入れてみます。 頂点選択モードか辺選択モードで、ワキの下の辺を Alt + クリックでループ選択します。 片側だけでなく、忘れずに両側を選択します。

選択できたらメニューの「メッシュ → 辺 → シームをつける」か、Ctrl + E キーから「シームをつける」で選択辺をシームにします。

シームは赤いラインで表示されます。 それでは一度 UV 展開をしてみます。 A キーでポリゴンを全選択してから、U キーを押して UV マッピングメニューを開きます。 「展開」を選択して UV 展開します。

UV / 画像エディターで確認してみると、下記のように UV 展開されているのが確認できます。

UV マップとオブジェクトの関係が分かりやすいようにカラーグリッドのテクスチャを貼ってみます。 UV / 画像エディターのヘッダーから「新規」ボタンを押して画像を作成します。

画像に任意の名前をつけて「生成された種類」を「カラーグリッド」にして OK を押します。

すると上記のようにカラーグリッド画像が生成されます。 3D ビューの方では、「3Dのシェーディング」を「テクスチャ」にすると UV / 画像エディターで選択されているテクスチャを貼った状態でオブジェクトが表示されます。
UVマップの調整・再展開
この状態で観察してみると、ワキの下にいれたシームの部分にテクスチャの切れ目があるのがわかります。

また背中側を見てみると文字が逆さまになっているのがわかります。

服の柄はテクスチャ上で逆さまに書けばいいので、UV 展開時に逆さまになっても問題ない場合もありますが、Blender の場合、ノーマルマップを作るときにはちょっと困った現象が起こります(ノーマルマップの作成自体は次回以降で紹介します)。

ワキの下のテクスチャの切れ目をよく見てみると、前身ごろと後身ごろで陰影の付き方が逆さまになっています。 この UV 展開の例では、前身ごろと後身ごろを分割していないので、後ろ身ごろは上下逆さまに展開されています。 ノーマルマップをベイクするときにこれを回避する方法があるのかもしれませんが、僕は今のところ知らないので UV 展開するときに前身ごろと後ろ身ごろを分けて、上下の向きを揃えるようにしています。
肩から袖にかけて、前身ごろと後ろ身ごろで分けられるようにシームを追加します。

服の構造で考えると、本来は袖と身ごろを分割できるようにしたほうが良かったのですが、前回手間を考えて見送ってしまいました …。 ここへ来て少し後悔していますが、手戻りも嫌なのでこのまま続けます。
再度 U キーから UV 展開すると、下記のように前身ごろと後ろ身ごろに分かれているのが確認できます。

最終的には袖口にもシームを入れて、下記のように展開することにしました。

このままだと後ろ身頃が逆さまになったままなので 180 度回転させます。 UV / 画像エディター上での移動・回転・拡縮といった操作も 3Dビューでの操作と同じ Gキー、Rキー、Sキーで行います。 リンク選択、ループ選択といった選択方法もまったく同じ操作でできます。 プロポーショナル編集の有効化、無効化を切り替えながら使うのも同様です。
とりあえず暫定的に下記のように配置してみました。

次に後から入れた、肩から袖口にかけてのシームの切れ目が目立たないように調整していきたいと思います。
曲線通しを合わせるのは手間がかかるので、今回は直線にして合わせてみることにします。 まず T キーを押してツールパネルを表示させておきます。 直線にしたい辺を選択して「Y 軸で揃える」をクリック。

直線にした頂点が他の頂点と重なって見にくいので G Y キーで上に少しすらし、P キーを押してピン留めします。

ピン留めするとその頂点は赤く表示されてマップ上で固定されます。 ピン留めを解除する場合は Alt + P キーです。
後身ごろも同じように直線にします。

次に UV 頂点の位置を合わせるために、後ろ身ごろを前身ごろに重ねます。

かなりずれてますね。 これをひとつずつ合わせていきます。 合わせたい UV 頂点をふたつ選択しておいて、ツールパネルの「X 軸で合わせる」「Y 軸で合わせる」などを使って整列させていきます。


ひと通り揃えたので、リンク選択などで後身ごろだけを選択してもとの位置に戻します。 もとの位置に戻したら、修正した部分を P キーでピン留めをしておきます。

大きさが変わるといやなので、袖口の小さい島もピン留めしておきます。 3D ビューを開き、再び U キーから UV 展開します。

ピン留めした部分は動かないので、そこに合わせて他の部分が展開しなおされます。 後ろ身頃が大きくなって収まりきれてないので、全体を縮小して収まるように修正します。

もう一度カラーグリッドを表示させて、テクスチャの境目を確認してみます。

紫の部分が前身ごろ、黄色の部分が後身ごろです。 色の境目と交差しているグリッドを見ると、ほぼずれなく表示されているのが確認できます。
こんな感じで、修正 → ピン留め → UV 展開 → 修正 → ピン留め → UV 展開 … と繰り返して調整していきます。 地味でつまらない作業ですが、クオリティーを上げるためには避けて通れない作業なのでがんばりましょう。
また今回は直線を使ってしまいましたが、立体のフォルムによっては直線を使うと歪みも大きく発生するので、カラーグリッドで様子を見ながら作業します。
ワキから裾にかけてもピッタリ合わせたいところですが、目立たない部分ですし手間と時間を考えて今回は見送ることにして先に進みたいと思います。
カラーマップテクスチャをペイントする
UV 展開が終わったので、テクスチャを作っていきたいと思います。

UV / 画像エディターから「+」ボタンを押して新規画像を作成します。 今回は 4096 px で作ることにして、画像名には「paint」とつけました。
ちなみにデフォルトのサイズは 1024 となっていると思いますが、「1024*4」とすると Blender が計算してくれて 4096 に変わります。
新規のブランク画像を作ると、下記のように真っ黒になると思います。

次に 3D ビューの方をテクスチャペイントモードにして、T キーを押してツールパネルを開きます。

ツールパネルの「スロットタブ」にあるペイントモードを「画像」にして、キャンパス画像を先程つくった画像「Paint」に設定します。

ツールタブでブラシを設定してオブジェクトに色を塗っていきます。 今回は体操服なので全体を白く塗って、首元と袖口を赤く塗りました。 グレーのラインは縫い目の位置のアタリとして書き込んでいます。
右側の 3D ビューでペイントすると、左側の UV / 画像エディター上のテクスチャにそのまま反映されます。 このテクスチャをベースにして Photoshop などの画像編集ソフトで仕上げていくので、画像を保存しておきます。

UV / 画像エディターのヘッダーにある「画像」メニューから「画像を別名保存」を選択して保存します。 ついでに UV の配置も PNG 画像として書き出しておきましょう。
3D ビューの方を「編集モード」にすると、UV / 画像エディター側に「UV」というメニューが表示されます。

A キーで全選択してから「UV」メニューの「UV配置をエクスポート」を選択して、UV の配置を PNG 画像として保存します。
あとはこれらの画像をベースにして、Photoshop などでテクスチャを仕上げていきます。

今回はここまで終了です。 次回は Blender のスカルプトモードを使って、服の「シワ」を描き込んでいきたいと思います。