夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MayaとBlenderでUV展開についてまとめる

本日は3Dモデリング枠です。

今回はUV展開についてまとめながらMayaとBlenderでUV展開の方法について比較します。

〇UVとは?

UVは3Dオブジェクトの持つテクスチャ座標を指します。

もう少し厳密に説明するとメッシュ毎に頂点に割り当てられた2次元ベクトルです。

 通常3次元であるオブジェクトに2次元であるテクスチャを割り当てる際にメッシュ毎にテクスチャのどの座標に対応するか?というような設定を行うために使用され、この座標を指します。

 イメージとしては画像を貼るための展開図がわかりやすいでしょう。

 テクスチャを対応させる以外にも、UV展開を行うことによって例えばシェーダーによる波の表現やエフェクト表現など様々な活用ができます。

 3Dのオブジェクトを2D座標に変換しUVを設定する工程をUV展開と呼び、この手法として投影などが使用されます。

 UV自体はU座標(横方向)、V座標(縦方向)の2次元ベクトルで、名前としては通常の3次元ベクトルでXYZの座標軸が使用される為、区別するために使用されており、一説にはUltra Visible(超可視)からとられているとも言われています。

   基本は0~1の座標系で扱われますが、テクニックとしては0以下の値や1を超えた値も使用でき、この場合はタイリング(繰り返し)を行います。

 また0以下の値を使用する場合はネガティブUVと呼ばれ、テクスチャを反転させることができます。

 テクスチャでは解像度の制限などがあり、3Dモデルの実行環境がゲームなどではパフォーマンスに影響が出る場合も多くあります。 こういったテクニックを使用することでより少ないデータ量で多くの表現を可能としています。

 UV展開自体は3Dモデリングのワークフローとしては省略されることもありますが、テクスチャを設定するためには必須の作業と呼べます。

〇UVアイランドとシーム

UVについて説明するうえでUVアイランドという概念が重要です。

メッシュごとにUVを設定することができますが、例えばメッシュごとにばらばらの位置にUVが設定されていた場合テクスチャリングが大変なことになります。

大理石のテクスチャを使用したがメッシュ(面)ごとに見た目が変わってしまっている

これを解消するためにUVごとにある程度つながったグループを作ります。

UVアイランドの例

このグループをUVアイランドと呼びます。

UVアイランドを使用することでメッシュごとにテクスチャが破断せずにメッシュに表示される

UVアイランドを作成するうえで辺に対して設定するものがシームです

シームとは切れ込みのことです。

地球儀やミカンをイメージするとわかりやすいですが、立体物を2Dに展開する際にそのままではどうしてもきれいに2Dにできないことがあります。

地球儀の場合は次の画像のように展開することができます。

https://www2.nhk.or.jp/school/watch/clip/?das_id=D0005402978_00000 より画像を引用

このように立体物を平面に落とし込むときに切れ込みを入れる必要がありますが、この切れ込みを設定することがシームです。

シームを入れることでUV展開後のUVアイランドの形を制御し、ゆがみの低い展開を行うことができます。

シームもただ入れればよいというわけではなく場合によってはテクスチャの境目が見えてしまうこともあるため考えて行う必要があります。

中央にUVアイランドの分かれ目(シーム)が確認できる

・Mayaのシームの入れ方

①MayaではUVタブの3DカットとUV縫合ツールを有効にしてシームを入れます。

②シームを入れたいエッジをマウスのクリックでドラッグすることで入れることができます。

なおシームを削除したい場合はCtrlキー+ドラッグで可能です。

シームが入っているエッジは白く表示されます。

Blenderのシームの入れ方

Blenderのシームの入れ方は編集モードで辺選択モードの状態でシームを入れたい辺を選択します。

右クリックのメニューからシームを追加を選択します。

シームが入った辺はデフォルトでは赤く表示されます。

〇MayaとBlenderのUV展開

・Mayaの場合

Mayaの場合はUVエディタを起動してUVの確認及び編集を行います。

UVエディタはUVタブ内に存在します。

①UV展開を行いたいオブジェクトを選択しUV展開のアルゴリズムを選択することでUV展開が実行されます。

MayaのUV展開の場合展開パターンが上部にアイコンとして表示されているためこちらを使用すると素早く展開することができます。

Blenderの場合

Blenderの場合はUV編集ウィンドウによってUV展開を行います。

UV展開自体はどの3Dビューポートでも可能ですが、UV編集ウィンドウを使用することでUV展開図を見ながら作業をすることや、詳細なUV展開が可能です。

①編集モードでUV展開をしたいメッシュを選択します

②上部UVメニューからUV展開を選択することでメッシュをUV展開することができます。

③UV展開の方法はBlenderの場合いくつかあります。

各UV展開の方法については次の表のようになります。

展開方法 説明 備考 サンプル
展開 一般的なUV展開、シームがない場合はUVがゆがむことがあります。
シームがない場合UV展開できないことがあります。
スマートUV展開 シームを入れていなくても自動で効率的にislandを作成しUV展開を行う シンプルな形状のモデルであればシームなしで展開することができます。
ライトマップバック ライトベイク用のUV展開を行う UVアイランドとしてテクスチャリングに最適ではないがUV同士が被らないようなUV展開が行われる
アクティブ四辺形に追従 現在選択されているメッシュ(四辺形)に合わせてUVを展開します。 UVを整えることができます。
キューブ投影 立方体(上下左右上下)方向からマッピングします。基本的に6つのUVアイランドが作成されます。 ちょっと使いどころがわからない投影です。
円筒状投影 一般的な投影マップが取得できる ちょっと使いどころがわからない投影です。
球状投影 極座標による一般的な投影マップが取得できる ちょっと使いどころがわからない投影です。
ビュー投影 3Dビューポートから見ているメッシュ状態のままUV展開できる 見た目上のUVアイランドが作成できるほか、並行投影で行うことである視点からの正確な上下左右のオブジェクトマップを作製できる
ビュー投影(バウンド) ビュー投影したUVアイランドがきれいに0~1のUVに収まるようにスケーリングされます オブジェクト全体をビュー投影するのであればこちらが便利です。

一般的には展開もしくはスマートUV展開が用いられ、筆者は加えてビューから投影の3つを主に使用しそれ以外はほとんど使用したことがありません。

以上がUVについての説明とMayaとBlenderでのUV展開の方法についてでした。