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