MAYA 學習筆記 009 – MAYA Python 入門

摘要

就是一些 MAYA 內的 Python  要點,雖然有些並不限於 MAYA 內 …


筆記

1. 求救

help(print)

2. 跳出輸入框

name=raw_input('input text:')
print name;

image

3. 布林值也是資料型態的一種

6<5
## 傳回 False

6>5 and 10>3
## 傳回 True

4. if else 語法

if a > 10:
   print aaa
elif a< 3 and b < 10:
  print bbb
else

5. for in 語法

for aaa in bbb:
  print aaa

6. 從 MEL 到 Python

基本上, MEL 就是  Shell 下指令的風格。我們要把它換成 Python 語法,只需要將形式修改即可,大部分的縮寫跟參數名稱都是不變的。

例如、MEL 的 ls,換成 Python 就是 maya.cmds.ls()

7. 原本附在 ls 後面的 arguments,則放到小括號內

例如、MEL 是 ls -sl  (列出所有選取物體) 那Python 就是 maya.cmds.ls(sl=1)

這樣就翻譯完成了XDDD

8.

MEL

curveOnsurface -d 3 -uv 0 0 -uv 0.5 0.5 -u 0.6 0.8 -uv 1.0 1.0 nurbsPlane1;

Python

import maya.cmds
maya.cmds.curveOnsurface('nurbsPlane1', d=3, uv=[[0,0],[0.5,0.5],[0.6,0.8], [1.0,1.0] ])

 

9. 其實無論 Python 或是 MEL,指令跟語法不是很重要啦 … 畢竟有手冊、有 MAYA 的 Script Editor 可以作弊,使用者不太需要擔心查不到指令。

重點是觀念以及想法.看你想做什麼樣的工作, idea 比較重要。

10. 每個指令都有不同的模式可以用,以下列舉三個重要模式:

查詢模式

import maya.cmds
maya.cmds.sphere("nurbsSphere1",q=1,r=1)
# q=1 就是查詢模式,r=1 就是告訴python:我要查的是 r 

編輯模式

import maya.cmds
maya.cmds.sphere("nurbsSphere1",e=1,r=10)
# 把這個球的半徑設定為 10, e=1 就是編輯模式

創建模式 :就是生成物體

import maya.cmds
maya.cmds.sphere()
# 建立一個新的 NURBS 球體

11. 直接打 MEL

import maya.mel as mm
mm.eval("select -cl;") # 引號中的就是MEL命令

12. 這樣從 MEL 翻譯到 Python 有什麼意義嗎?

嗯 XD 好問題,老實說,沒什麼意義呢! 這樣做,可以說只是在用 Python 的語法,進行 MEL 的思考、做 MEL 的工作而已。

如果你希望能夠用更加 Python 的風格來工作,那麼應該考慮  PyMEL

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料