忘却まとめ

Blenderの中級者・上級者向けの踏み込んだ情報や、アドオン・3DCGに関する情報を記事にします

【Blender】UV展開のやり方【考え方・注意点・展開方法】

3DCG全般 Blender

更新日:

自分がUV展開をやる上での考え方・気をつけている点・展開方法などを紹介する。

まえがき

この記事では、ファンアートで制作した 鈴原るる の服の飾りパーツを参考にする。

本当に手作業が必要か考える

最終的に静止画や遠景で使うモデルや、自動展開・自動パッキングで事足りる状況ならば、無理にすべてを手動でUV展開する必要はない

自動化できる所はなるべく自動で

多くの部分を自動化できる作業工程なので、なるべく便利なツールを使う方がよい(TexToolsアドオンやMagic UVなど)。

次の工程を意識する

UVはテクスチャを貼り付けるのに必要だから行う工程である。

テクスチャペイント作業や、貼り付けたいテクスチャを考慮して、UVレイアウトを決める。
Photoshopなどの2Dペイントを主にする場合は、描きやすさを考慮して、より丁寧にピース配置などする必要がある。
逆に、ほとんどをSubstance Painterなどの3Dペイントで行う場合は、必ずしも丁寧な配置は必要ではない。

バックアップを取る

ファイルのバックアップを取っておく。
モディファイアの適用をするので、なにか失敗しても後戻りできるようにする。

model_01.blend、model_02.blend、model_03.blend.......のように、末尾の番号を増やす。
実際戻ることはほとんどないが、失敗しても戻れると気が楽。

共有するUVレイアウトごとにマテリアルを分ける

髪・顔・服・細かなパーツのように、分類しやすい種類ごとに分ける。

スマホゲームなどのリソースが限られているなら全体で1つにしたり、逆に映像のようなリソースを気にしなくていいのなら、より高解像度にするためにより細かく分けたりする。

テクスチャサイズ

基本的に正方形・2048pxが安定。
さらに解像度を増やしたければ、マテリアルを分けて別のUVタイルにUVを分ける。

超高解像度にしたいのなら4096px。
他には、1024pxや512pxなど、2を2倍にし続けて作れる数になるようにする(冪数はコンピュータが扱いやすく他より処理が早い)。

なぜ今時のコンピュータのビット数 (語長) は2の冪乗なのか? | プログラムは楽しげに走らねばならない♪

メッシュ生成系のモディファイアを適用する

  • ソリッド化・ベベルなどのモディファイアはUVに影響するため、頃合いを見て適用する
  • ミラー・配列複製モディファイアはまだ保持しておく
    • UV展開後に適用した方が手間が減る場合がある

ベベルモディファイアはUVを壊す

面取りされるエッジにシームがされていると、モディファイア適用時にシームがきれいなループにならない・分けたはずのピースをまたいでつながってしまう

そのため、ベベルモディファイアを適用してからUV展開すること 。

モディファイアプレビューで破綻がないようであれば適用する必要はない。

  • UVエディター → サイドメニュー(Nキー) → ビュー → 表示 → オーバーレイ → モディファイアー

サブディビジョンサーフェスでの丸まりを考慮する

左:ローポリ
右:サブディビジョン後

サブディビジョンサーフェスは適用しなくてもよいが、丸まりを考慮すること
サブディビジョンモディファイアを使うと、UVの境界も滑らかに補正される。

対処法

  • 参考にするUVレイアウトをモディファイア適用後のものを使用しながら描く
  • ギリギリではなく少しはみ出るようにして描く

ちなみにサブディビジョンモディファイアのオプションで、UV境界をシャープにすることができるが、これを使用すると境界をシャープにした分だけ内側のUVが歪んでしまう。

シームを入れる

大抵のものは、円柱や立方体などの基本形状と同じ感じに展開することができる。

  • メッシュの、どの部分が"上面(前面)・側面・底面(背面)"なのか分類して見る
    • 人型なら、前面・背面を脇にシームを入れる、手のひら・手の甲に分けるなど
  • 要素をはっきりと分けられる部分にシームを入れる
    • 質感やパーツなど
  • 歪んでほしくない部分には、よりシームを入れる
  • つながってほしい部分には、シームを入れない
    • 立方体と同じように展開した時、正面と側面をつなげたままにするかどうかなど。書きやすさやUVの管理しやすさを考える
  • 切れ目が見えにくい場所にシームを入れる
    • UVの切れ目が見えないような箇所がよい(脇や後ろ・隠れる部分など)

全てのUVを確認しながら作業する・UVエディターからメッシュを選択する

  • UVエディターのヘッダーの「UVの選択を同期」を有効化する


通常では選択されたメッシュのUVしか表示されないが、これで全体のUVを確認しやすくなる。
UVを利用したメッシュ選択方法としても利用できる。

UVを見やすくする

UVの面の色を変えると、ピースが見やすくなる。

  • 設定 → テーマ → UV/画像エディター → 面 の色を変更する
  • UVの歪みを視覚的に見る
    • UVエディター → サイドメニュー(Nキー) → ビュー → 表示 → オーバーレイ → ストレッチ
  • モディファイア適用後のUVのプレビューを見る
    • UVエディター → サイドメニュー(Nキー) → ビュー → 表示 → オーバーレイ → モディファイアー
    • ベベルモディファイアの破綻が起こるかどうかがわかりやすい
    • これで破綻していないようなら、ベベルモディファイアの適用はまだしなくてもよい

正面を歪まないように展開

左:そのまま展開
右:"ビューから投影"とピン留めを利用して展開

ピン止めを活用すれば、UVの形状が変わらないように固定することができる。
これを利用して、特に歪ませたくない部分を歪まないように展開したりすることができる。

  1. 3Dビューをフロントビューなどにする
  2. 3Dビュー → ヘッダーの「UV展開(Uキー)」 → "ビューから投影"を使い、UV展開
  3. UVエディター → ヘッダーの「UV」 → ピン止め(P)を利用し、正面部分のみをピン止め
  4. 通常の「展開」を実行

グリッド状に展開

足のメッシュに模様を使いたいため、グリッド状に展開した

模様テクスチャなどを使いたい箇所は、テクスチャの模様が歪まずに反映されるように、グリッド状に展開する

  • 円柱状・紐状のものや髪のふさなどもグリッド状にした方が扱いやすい
  • モデルの太さが均一でない場合は拡縮が発生するので、場合によっては注意
  • textoolアドオンの"Rectify"で簡単に実行できる

標準機能でグリッド化する

  1. 1つの面の全てのエッジをスケール0で真っ直ぐにし、長方形にする
  2. グリッド状にしたいUVピースを選択して、作った長方形を最後に選択する
  3. UV(Uキー) > [アクティブ四角形面に追従]を実行する

ミラーを活用する

シームを入れてからミラーを適用すれば、労力を減らすことができる。

UVのコピーを使う

複製して作ったポリ割りの変わらないものであれば、UVをコピー・ペーストすることができる。

  1. Blenderに内蔵されているアドオンの"Magic UV"を有効にする
    • 設定 → アドオン → "Magic UV"と検索 → チェックを有効化
  2. コピー元のUVを選択
  3. UVエディター → サイドメニュー(Nキー) → Magic UV → Copy/Paste UV → コピー を実行
  4. 対象UVを選択し、同じメニューから貼り付け

大きさを調整する

上の参考画像では、うさぎ・星型・ハート・冠などの右下にあるピースが、同じパーツの裏面。 同じパーツのUV同士は近くに置き裏面は大きさを半分程度にしている。

  • 「最終的な画面での映りやすさ」に対するUVピースの大きさを考える
  • 画面に映りやすい箇所のUVピースを大きくする
  • あまり見えない部分のUVピースは小さくする
    • 映りにくい箇所を小さくれば、相対的に移りやすい箇所が大きくなるので、小さくだけするとよい
  • 模様のテクスチャのような模様の大きさを重視する場合は、大きさを均一にする

UVチェッカーテクスチャを活用する

UVチェッカーという、メッシュのUVを確認するためのテクスチャがある。
これを利用すれば、UVピースの位置・サイズ・歪み・回転・反転などを、視覚的に確認しながら作業することができる
上の画像では、口元部分が歪んでいて目元よりUVサイズが小さくなっている事がわかる。

作り方

BlenderにはUVチェッカー表示が用意されていないため、自分で設定する必要がある。

画像の新規作成時に生成タイプを[カラーグリッド]に変更する
適宜サイズを設定する
チェッカーをより細かく見たい場合は、マッピングノードの拡大縮小の値を変更して、タイリングサイズを変える

配置

  • 手書きでの修正を考えた配置にする
    • (2Dペイントする予定がないなら不要)
  • 同じパーツや質感のUVピース同士はなるべく近くに配置する
  • ピース同士の隙間を詰めて、スペースを節約する
    • あまり凝りすぎないこと。手動でやるには限界がある。UVPackmaster 2 PROのような、高精度な自動パッキングは既にあるので、もっと凝りたかったり頻繁にUV展開をするのならそれらを利用した方が早い
    • あまりギリギリに詰めすぎないこと(場合によってはエラーの原因になる)。少し余裕があると後での多少の変更に対応しやすい
  • 大きいピースの位置を最初に決める
  • UVの重なりはNG
    • ベイクやノーマルマップの表示などで問題になる。
    • これらを考慮する必要がなく、使用できるリソースが限られるような状況では、逆に重ねた方がUVスペースを節約できる(対称モデルの半分や同じパーツのUVを重ねたりなど)
  • UVの反転はNG
    • 同上

UV空間にピースの角度を揃える

2Dビューから描きやすくなる(2Dペイントをあまり考慮しない場合は不要)。
ピースの角度を揃えると、模様テクスチャを使いやすくなる。
TexToolsアドオンの"Align Edge"で簡単に実行できる。

  1. 任意のエッジを選択
  2. UV空間と垂直になるようにエッジを整列
  3. エッジをピン留め
  4. UV展開を実行

自動ツールでパッキングする

手動で梱包する必要がないのなら、自動パッキングで問題ない。むしろ自動の方が早い上、よい結果が得られる場合もある。

しかし、Blenderの標準のパッキング機能の精度は低く、無駄な空白ができやすい
UVPackmaster 2 PROのような有償のアドオンや、UV展開専用ツールを使った方が良い結果を得られる。

  • 回転のチェックを外せば、自分で調整した回転を保持したままパッキングできる
    • UVエディター → ヘッダー → [アイランドを梱包]

展開済みの配置スペースを確保して別のUVをパッキングする

  1. 追加(Shift + A) > 平面プリミティブを追加し、これをUV領域確保するためのダミーとする。
  2. 作った平面と表側メッシュを一緒に梱包することで、裏面メッシュの領域を確保する事ができる。

ちなみに、これでスペースの確保をすることはできるが、Blenderの[アイランドを梱包]機能では自動で並び替えされてしまうため、特定位置にスペースを確保することは無理

その他

リンク選択を活用する

Lキーでの[リンク選択]から、選択メッシュにつながっているUVピースをまるごと選択することができる。

これは普段のモデリングでも便利なので、[ダブルクリック]に登録しておくとよい。

  • 設定 → キーマップ → 3Dビュー → メッシュ → Mesh(Global)内の一番下の[Add New]から、キーマップを新規作成
  • 上記画像のように、下記のオペレーター名を左ダブルクリックとshift + 左ダブルクリックに登録
    • mesh.select_linked_pick
  • 設定 → キーマップ → 画像 → UV Editor(Global)内の一番下の[Add New]から、キーマップを新規作成
  • 上記画像のように、下記のオペレーター名を左ダブルクリックとshift + 左ダブルクリックに登録
    • uv.select_linked

正常に展開できない場合

  • メッシュが多角形
    • 余分な重複頂点がある
  • ピース同士がうまく切り離せていない
    • どこか見にくいところでシームが付けられていない
  • オブジェクトに意図しないトランスフォームのスケール数値がある
    • オブジェクト → 適用 → 拡大縮小 で、トランスフォームを適用する

UVレイアウトを書き出す

2Dペイントをする場合は必要。
書き出したUVレイアウトを使ってマスクも作る。

  1. UVレイアウトを書き出す
    • UVエディター → ヘッダー → [UV配置をエクスポート]
    • オプションを開き、不透明度 0、サイズ 2048pxで出力する
  2. Photoshopなどに出力したUV画像を読み込む
    • UV画像はレイヤー構造の一番上に置く
    • 赤色の塗りつぶしレイヤーを追加し、UVピースでクリッピング
    • 不透明度を70%程度に下げる
    • グループにまとめる
  3. マスク用塗りつぶしレイヤーを作る
    • UVピース外の空白を選択範囲にする
    • 選択範囲を反転
    • 選択範囲を10px程度太らせる
    • UVピースからはみ出ることのないように余白を作る。UVピースの隣接度合いによっては、太らせる量を調節したり、ピースごとに個別に太らせる
    • 塗りつぶしレイヤーを新規作成し、選択範囲をマスクにする
  4. 質感ごとにグループを作って、マスク用レイヤーから選択範囲を取得し、マスクにする

テクスチャペイント

テクスチャペイントについては、下記記事にて紹介する。

3Dモデルなどの制作依頼はこちら

-3DCG全般, Blender
-, ,

Copyright© 忘却まとめ , 2024 All Rights Reserved Powered by STINGER.