Maya Script Python UV境界の選択
import maya.cmds as cmds import maya.mel def select_uv_border() : finalBorder = [] meshList = cmds.ls( sl= 1, o= 1 ) pLusE = [] for mesh in meshList : uvs = cmds.polyUVSet( mesh, q=True, allUVSets=True ) cmds.select( mesh + ".map[*]" , r= 1 ) maya.mel.eval("polySelectBorderShell 1;") borders = cmds.polyListComponentConversion( te= 1 ) borders = cmds.ls( borders , fl= 1 ) for border in borders : edge = cmds.polyListComponentConversion( border , tuv= 1 ) edge = cmds.ls( edge , fl= 1 ) if len( edge ) > 2 : finalBorder.append( border ) cmds.select( mesh + ".e[*]" , r= 1 ) maya.mel.eval("polySelectBorderShell 1;") if cmds.ls( sl= 1, fl= 1 ) != [] : pLusE.extend( cmds.ls( sl= 1, fl= 1 ) ) if pLusE != [] : cmds.select( pLusE ,add= 1 ) cmds.select( finalBorder ,add= 1 ) cmds.select( meshList , add= 1 ) select_uv_border()
modoでは標準で付いているのですが、MayaではUV選択でしかできないかと思います。
元々はmelで書かれていたものを見つけて使っていたのですが、Pythonに書きなおしてみました。
少し前に書いたものなので、改めて見てみると、さらなる改造ができそうだったので改造しました。
元々のmelでは、UV境界のみの選択で、ポリゴンの切れている部分は選択してくれませんでした。
別段それでも問題ないし、この取り方だとそうするのは難しいなぁ、と諦めていましたが、出来ました。
複数のオブジェクトを選択しても単一のオブジェクトを選択しても動作します。カレントUVのUVボーダーを選択してくれます。
コメントする
トラックバックする
トラックバック用URL: