Python
WPMASTERさん投稿:文系デザイナーのためのmaya MEL/Python基礎の基礎
Python
http://help.autodesk.com/view/MAYAUL/2018/JPN/?guid=GUID-703B18A2-89E5-48A8-988A-1ED815D5566F
コマンドリファレンス
https://help.autodesk.com/cloudhelp/2018/JPN/Maya-Tech-Docs/CommandsPython/index.html
Matm Of CG -3DCGあれこれ-【mel】【python】【pymel】導入 ~初心者に向けて~
Maya; Python 入門 ; Jointサイズ変更ツールを作る
https://www.comtec.daikin.co.jp/DC/UsersNotes/Ritaro/tutorial/maya_05/
Melから pythonへ
太字の箇所のMelを pythonへ
http://whaison.jugem.jp/?eid=900
import pymel.core as cmds
import pymel.tools.mel2py as mel2py
melCmd ="""
CreatePolygonCube;
select -r pCube1 ;
move -r 0.0896019 0.458038 0.897154 ;
"""
PyCmds = mel2py.mel2pyStr(melCmd,pymelNamespace='cmds')
Mel_Py = PyCmds.replace("pymel.all","pymel.core")
print Mel_Py
実行後以下が表示される。
import pymel.core as cmds
cmds.CreatePolygonCube()
cmds.select('pCube1', r=1)
cmds.cmds.cmds.move(0.0896019, 0.458038, 0.897154, r=1)
↓以下のように修正する。
import maya.cmds as cmds
cmds.CreatePolygonCube()
cmds.select('pCube1', r=1)
cmds.move(0.0896019, 0.458038, 0.897154, r=1)
#階層選択後、選択したジョイント(複数)をselJNTに入れる。
import maya.cmds as cmds
cmds.select(hierarchy=True)
selJNT = cmds.ls(sl=True)
print selJNT
#選択したジョイント一番目をIchiBanMEに入れる
IchiBanME= selJNT[0].decode()
print IchiBanME
import maya.cmds as cmds
# Create a triangular facet
cmds.polyCreateFacet( p=[(0.0, 0.0, 0.0), (10.0, 0.0, 0.0), (10.0, 10.0, 0.0)] )
# Create a quadrangular facet with two triangular holes inside
# Note that, in Python, specifying an empty tuple in the point list marks the
# beginning of a hole specification
cmds.polyCreateFacet( p=[(0, 0, 0), (10, 0, 0), (10, 10, 0), (0, 10, 0), (), (4, 2, 0), (5, 4, 0), (6, 2, 0), (), (5, 6, 0), (4, 8, 0), (6, 8, 0)] )
cmds.move( 0, 0, 10, r=True )
http://www.not-enough.org/abe/manual/api-aa10/pymel-tips.html
以下抜粋
MELのフラグをPyMELのフラグに変換
例えば、MELのcurveコマンドのフラグ -p -1 0 -1 -p 1 0 -1 -p 1 0 1 -p -1 0 1 -p -1 0 -1 をPyMELのフラグで使用できるリストの形に変換するスクリプト。
s='-p -1 0 -1 -p 1 0 -1 -p 1 0 1 -p -1 0 1 -p -1 0 -1'
p = [float(x) for x in s.split() if x != '-p']
print [p[3*i:3*i+3] for i in range(len(p)/3)]
このスクリプトをスクリプトエディタで実行すると [[-1.0, 0.0, -1.0], [1.0, 0.0, -1.0], [1.0, 0.0, 1.0], [-1.0, 0.0, 1.0], [-1.0, 0.0, -1.0]] という文字列がヒストリペインに表示される。
以下のように[と]を(と)に置き換えて最初と最後のみ[と]に戻せばPythonで使用できます。
[(-1.0, 0.0, -1.0), (1.0, 0.0, -1.0), (1.0, 0.0, 1.0), (-1.0, 0.0, 1.0), (-1.0, 0.0, -1.0)]
ゼロパディング5桁 (例:00004月)
print("4".rjust(5, "0") + "月")
萌えるmel読本の中の人が書くブログ