【Maya:Python】一番使われている頂点色で塗りつぶす
shamimatsu
三味松ブログ
maya2022のpython3で動作確認
ソフト・ハードエッジの変更はよく使うと思いますのでボタン一つで設定できるようにしておくと便利です。仕事ではツール内に組み込んで使っています。
maya.cmds と pymel.core でコードがかなり違う印象ですね。
# -*- coding: utf-8 -*-
import maya.cmds as cmds
cmds.polySoftEdge(angle=180)
# -*- coding: utf-8 -*-
import pymel.core as pm
pm.mel.SoftPolyEdgeElements(1)
# -*- coding: utf-8 -*-
import maya.cmds as cmds
cmds.polySoftEdge(angle=0)
# -*- coding: utf-8 -*-
import pymel.core as pm
pm.mel.SoftPolyEdgeElements(0)
デフォルトだとエッジの表示が標準になっておりソフトエッジにしても見た目が同じワイヤーフレームのため、ソフト/ハードに変更しておくとわかりやすいです。
# -*- coding: utf-8 -*-
import maya.cmds as cmds
sl_node = cmds.ls(sl=True)
# オブジェクト選択だったらエッジの表示をソフト/ハードにする
if cmds.selectMode(q=1, object=1) == 1:
if not cmds.getAttr(sl_node[0] + ".displayEdges") == 1:
cmds.setAttr(sl_node[0] + ".displayEdges", 1)
# コンポーネント選択だったらオブジェクト選択にしてエッジの表示をソフト/ハードにする
elif cmds.selectMode(q=1, component=1) == 1:
cmds.selectMode(object=1)
sl_obj = cmds.ls(sl=True)
if not cmds.getAttr(sl_obj[0] + ".displayEdges") == 1:
cmds.setAttr(sl_obj[0] + ".displayEdges", 1)
番号(0~3まで)を変更すればエッジの表示を指定できます。
例>”.displayEdges”, 2