Maya

【Maya:Python】ソフトエッジ/ハードエッジにする

ソフト・ハードエッジの変更はよく使うと思いますのでボタン一つで設定できるようにしておくと便利です。仕事ではツール内に組み込んで使っています。

ソフトエッジにする

# -*- coding: utf-8 -*-
import maya.cmds as cmds

cmds.polySoftEdge(angle=180)

ハードエッジにする

# -*- coding: utf-8 -*-
import maya.cmds as cmds

cmds.polySoftEdge(angle=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