日々適当

hibitekitou

今更ながらTexTools

cg |2022-04-11

いやー、TexTools、入れとくべきでしたわ。UVアイランドをUV平面いっぱいに拡大したいとき、こいつで1発でしたわ。

半分に切った球のUVをいっぱいに拡大したいとき、この場合、一番上をセンターにしてV方向に二倍に拡大すればいいけど、こんなふうにわかりやすい形じゃない時、それなりに面倒なのですよね、Blender標準機能だけでやろうとした時。

そんな時はTexTools[GitHub]です。

UVを選択してFillボタンを押すとあっという間に、UV平面いっぱいに拡大されます。

このコマンドのためだけに入れる価値があると思いました。ちなみに隣にあるCropはアスペクトを変えずにUV平面にフィットさせる時に使えるみたいです。

<追記>…と思ったんですけどね。下図、左に対してFillを実行したら右になっちゃう。この場合、回ってほしくないのだけどねぇ。

</追記>

<追記>…というわけで、拙いスクリプトでカバーです。

import bpy
import bmesh

obj = bpy.context.active_object
bm = bmesh.from_edit_mesh(obj.data)

uv_layer = bm.loops.layers.uv.active

u = []
v = []
for face in bm.faces:
    for fLoop in face.loops:
        u.append( fLoop[uv_layer].uv[0] )
        v.append( fLoop[uv_layer].uv[1] )

uScale = 1.0/( max( u ) - min( u ) )
vScale = 1.0/( max( v ) - min( v ) )

for face in bm.faces:
    for fLoop in face.loops:
        fLoop[uv_layer].uv = ( ( fLoop[uv_layer].uv[0] - min( u )) * uScale  , ( fLoop[uv_layer].uv[1] - min(v) ) * vScale  )

bmesh.update_edit_mesh(obj.data)

たぶん無駄な処理をしているけど、一応目的とするところはできている。速度は知らんw

</追記>

コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。