SOU·COLLE
イラストレーション/デザイン/3DCG/ゲーム開発のお話

BlenderでXY軸に対して水平,垂直に展開する

この記事はblug_jpさん主催,Blender Advent Calendar 2015に参加しています。
13日目は,tomB_saikayaさんの「怪奇!?Rigifyの謎に迫る!」でした。

本記事では任意の線分を基準にして,UVをXY軸に対して水平,垂直にした状態で展開する方法について書いています。

UVを水平,垂直にしたい理由

モデルがローポリだったり,テクスチャが低解像度,あるいは2Dペインティングする際に描きづらいなどの理由から, 島を任意の線分を基準にして,XY軸に対して水平,垂直にUV展開したいケースがあります。

BlenderのUV展開は,シームの入れ方が悪くなければXY軸に対して,わりといい感じに水平,垂直に展開してくれます。 ただ隙間なくパッキングするためか,一部の島はXY軸に対して微妙な角度で展開される場合もあります。

わずかな角度でXY軸に対して傾いている島
Round Cubeの大きな面ごとにシームを入れてみた。全てXY軸に対して斜めになった。この場合中央を交わる線を基準に展開してほしいところ。

同条件のままでは基本的に何度展開しようと同じ状態で展開されるので,これをXY軸に対して水平,垂直にするには自分で調整します。

水平,垂直にする手順

先に書いておくと,この手順は正直イマイチと思っています。 どう見ても自動化できそうな手順な上,プラグインを探せば見つかる,あるいはそもそもBlenderの標準機能でできることなのかも。 (今の所見つけられていない)

ただ,この手順についても書いているサイトやページも見つからなかったので,同じことで困っている人の役に立てばと思います。

調整の準備

線分のどちらか1点を選択してUV>スナップから「カーソル→選択物」を実行して2Dカーソルを点に合わせます。

2Dカーソルが選択した点に吸着される
昔この機能を知らなくて頂点の座標を2Dカーソルの座標へせっせと入力していたのはいい思い出

スナップするUV要素を「頂点」に変更,さらに回転/スケーリングピボットを「2Dカーソル」に変更して準備は完了です。

スナップするUV要素を頂点に変更した
ちなみにUV/画像エディター側のピボットは3Dビューにはあるアクティブ要素が無いのは何故なのか。こちらでもわりと欲しい。

線分の調整

調整に入ります。線分のもう片方側の1点を選択し,トランスフォーム時のスナップを効かせた状態で「回転」させます。 すると,操作している頂点は基点とXY軸に対して水平か垂直になるような位置にしかスナップされません。

この時,マウスカーソルは基点となる場所に合わせるようにするとうまくいきやすいです。

2Dカーソルにスナップするように回転させる
controlキーを使用してスナップを効かせた瞬間,2DカーソルのX軸に吸着する点。

展開し直す

線分以外の頂点は傾いたままです。 調整した頂点2点を「UV>ピン止め」で固定し,島にあたるメッシュだけを選択して展開し直します。

ピン止めを利用して展開し直す
ピン止めのショートカット「P」キーはこのケース以外でもよくお世話になる便利な子

XY軸に対して任意の線分が垂直になりました。
あとは各々の環境にあった状態に編集するだけです。「島を梱包」を使用する時は「回転」のチェックをはずすことをお忘れなく。

まとめ

なんてことのないTipsですが,昔僕はこの手順がわからなかったので傾いて展開された時によく困っていました。 先にも書きましたが,この手順はイマイチと思っているので,この記事を見て他にもっといいやり方をご存知の方がいらっしゃれば,ご教示いただけると幸いです。

明日のBlender Advent Calendar 2015は,sncometさんの「卒業制作で少しBlenderを取り入れてみた話」です。