Python

WPMASTERさん投稿:文系デザイナーのためのmaya MEL/Python基礎の基礎

https://bros.studio/fukano_blog/2017/06/03/melpython%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6maya%E3%82%92%E4%BE%BF%E5%88%A9%E3%81%AB%EF%BC%81/

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

https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2018/ENU/Maya-Tech-Docs/PyMel/generated/pymel-tools-mel2py-html.html


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読本の中の人が書くブログ

https://sproutmel.blogspot.com/2013/07/blog-post_25.html