3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Maya】ポリゴンオブジェクトを強制クリーンアップするスクリプト

Posted at

 Mayaってごちゃごちゃやってるとたまに、マテリアルがアサインできなくなったり、裏面でもなく頂点カラーもないのにフェースが真っ黒になってしまったり、何かツールで編集しようとしてもエラーになってしまったり、色々オブジェクトの挙動がおかしくなるときがありますよね(よく起こるのにいい例が思い浮かびませんでしたが、とにかく色々)。

 適当にキューブを作る→結合→キューブの部分削除 をして強制的にオブジェクトを綺麗にするのが手っ取り早い事が多く、今回はその一連の動作をスクリプト化してみました。

#導入方法
以下のソースコードをスクリプトエディタのPythonタブに貼り付け、中ボタンでシェルフフィールドにドラッグ&ドロップ。

import maya.cmds as cmds

def Main():
	selectedObjects = cmds.ls(sl=True, tr=True)

	targetMesh = []

	for i in selectedObjects:	#ポリゴンオブジェクトだけを抽出
		shape = cmds.listRelatives(i, s=True, typ='mesh')
		if shape:
			targetMesh.append(i)
	
	
	if len(targetMesh) == 0:
		cmds.confirmDialog(t='エラー', m='ポリゴンオブジェクトを選択してください')
		return

	for i in targetMesh:
		temp = cmds.polyCube()
		afterMesh = cmds.polyUnite(temp, i, op=True)	#キューブを作成し結合

		cmds.delete(temp)	#不要になったメッシュの削除
		cmds.delete(afterMesh, ch=True)	#ヒストリを削除
		cmds.rename(i)	#名前を元に戻す

Main()

Script_CleanUp_ScreenShot.jpg

#使い方
ポリゴンオブジェクトを選択してスクリプトを実行するだけです。
複数選択に対応していますが子に別のメッシュを持ってる場合は対応していません。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?