Maya

【Maya:Python】ポリゴン数を表示・取得する

shamimatsu

maya2022、2019を使用
ポリゴン数をメモしたい時がたまにありますが、目で見ながら入力するのが面倒だと感じたためスクリプトを作成。
選択したモデルの頂点、エッジ、フェース、三角形、UVすべてダイアログに出してコピー出来るようにしました。
maya2022のpython3で動くことを確認しました(2021/12/26)

ポリゴン数を表示

ディスプレイ → ヘッドアップディスプレイ → ポリゴン数 から表示できますがコマンドも調べました。

melコマンド

setPolyCountVisibility(1);

pythonコマンド見つからず

pythonでmelを実行する方法はこのようになります。

import maya.mel as mel
mel.eval('setPolyCountVisibility(1);')

ポリゴン数を取得してダイアログを出す

数字だと結合できなかったため、strで文字列に変換しています。
実行するとこのようなウィンドウが出て文字列をコピーできます。

1# -*- coding: utf-8 -*-
2import maya.cmds as cmds
3import maya.mel as mel
4import sys
5
6# 何も選択されていなければ警告
7if not cmds.ls(sl=True):
8    cmds.warning(u'なにも選択されていません')
9    sys.exit()
10
11mel.eval('setPolyCountVisibility(1);')
12
13v_cnt = cmds.polyEvaluate(v=1)
14e_cnt = cmds.polyEvaluate(e=1)
15f_cnt = cmds.polyEvaluate(f=1)
16t_cnt = cmds.polyEvaluate(t=1)
17uv_cnt = cmds.polyEvaluate(uv=1)
18
19r = u'頂点 : ' + str(v_cnt) + '\n' + \
20     u'エッジ : ' + str(e_cnt) + '\n' + \
21     u'フェース : ' + str(f_cnt) + '\n' + \
22     u'三角形 : ' + str(t_cnt) + '\n' + \
23     u'UV : ' + str(uv_cnt) + '\n'
24
25cmds.confirmDialog(title='Count', message=r)
ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました