3DCGbook

映像プロダクションに所属しています。主に毎日のアウトプットを配信していこうと思います。

MELからPythonへ簡単に書き換える方法

こちらはPyMel限定になります。

早速ですがやってみましょう。

import pymel.core as pm
import pymel.tools.mel2py as mel2py

melCmd = """
	polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1;
	hilite pCube1 ;
	select -r pCube1.vtx[5] ;
	setKeyframe -breakdown 0 |pCube1|pCubeShape1.pnts[5];
	"""
		
pyCmd =  mel2py.mel2pyStr(melCmd,pymelNamespace='pm')
pyFixed = pyCmd.replace("pymel.all","pymel.core")
print pyFixed

結果としては以下のものが返ってきます。

import pymel.core as pm
pm.polyCube(sz=1,sy=1,sx=1,d=1,cuv=4,h=1,ch=1,w=1,ax=(0, 1, 0))
pm.hilite('pCube1')
pm.select(r='pCube1.vtx[5]')
pm.setKeyframe('|pCube1|pCubeShape1.pnts[5]',breakdown=0)

mel2pyというのをインポートして変換しています。
詳しくはPyMelのドキュメントを…。

単純に、Mel to Pythonってことです。
その逆のpy2melってのもあります。需要はあまりないかもしれませんが;

ちなみにこれ。
上手くいってないのわかりますか?
pm.selectのフラグがおかしいです。
このコマンド…フラグの後にbool値が入ってないとたぶん上手くいきません(^^;

今、使えるようで使えなかったり…な空気も漂いましたね。

といって改善策は今のところ思いついていないのでなんかあったら教えてください(笑)