【Maya:Python】ソフトエッジ/ハードエッジにする
shamimatsu
三味松ブログ
maya2022を使用
マテリアルをアサインする時ハイパーシェードを開いてアサインするという流れが面倒だったため、もっと気軽にアサインしたいと思いスクリプトを作成しました。
コードはpython3のため過去バージョンのmayaでは動作しない可能性があります
1# -*- coding: utf-8 -*-
2import maya.cmds as cmds
3
4sl_nodes = cmds.ls(sl=True)
5
6#最初に選択したメッシュとそれ以降を分ける
7sl_first = sl_nodes[0]
8sl_second = sl_nodes[1:]
9
10#最初に選択したメッシュのシェーディングエンジン名を取得
11cmds.select(sl_first)
12cmds.hyperShade(smn=1)
13mat_name = cmds.ls(sl=True)
14SG_name = cmds.ls(cmds.listConnections(mat_name),type='shadingEngine')
15
16#2番目以降に選択したメッシュにマテリアルアサイン
17for i in sl_second:
18 cmds.select(i)
19 cmds.sets(forceElement=SG_name[0], e=1)
1メッシュに2マテリアルアサインされていた場合は、おそらく最初にアサインした方が優先されます。エラーにはなりません。