maya官方手冊_python指令查詢

更新 發佈閱讀 5 分鐘

如何使用maya官方手冊中的python指令手冊?

剛進入一個新軟體或領域,最痛苦的莫過於找資料,有時更是連資料都不知道怎麼找,該如何下關鍵字?搜尋方向是否正確?

這篇主要分享一些我學習maya的python的過程中累積的經驗,方便看到這篇文章的讀者能更快進入狀況。

首先maya的python庫有分成兩種類型,一種是maya原生的maya.cmds,另一種則是後來加入的pymel。現在的pymel也已經得到官方的維護,兩種在執行速度上也無太大差異,pymel似乎有整合一些OpenMaya的功能,但就初學來說基本沒差異。目前我個人是推薦使用pymel,github上查到的程式碼也有很大一部分使用pymel,如果真的很在乎執行速度的話,只能從更複雜的OpenMaya下手。

再來需要注意的是,maya從2022版本開始內建的python解釋器版本為python 3.7,不再支援2.7的寫法(用python 2執行有機會再說),如果在網路上查資料時要稍微注意一下自己的maya版本是否相符。

首先要面對的就是官方手冊,進到這裡,會一次列出所有python的指令,配合網頁瀏覽器使用ctrl+F搜尋較為方便,再來就要先了解一下maya指令的基礎結構,先來看一個函式。

import pymel.core as pm

obj_pos = pm.getAttr("pCube1.translate")
print(obj_pos)

>>> [0.0, 0.0, 0.0]

getAttr算是最常使用的函式之一,用於取得物件上的屬性的值,該範例內表示取得cube1的translate屬性,也就是座標值,返回包含xyz值的list。

跟其他python庫不同的是,在maya內的各種python指令操作,目標對象幾乎都以字串的形式作為參數輸入,且會用「.」作為階層表示,鮮少有其他資料類型當作參數輸入(即使有,也常常是list裡包裹字串)。

然後在輸入參數後加入各種flags來改變函式返回的值,例如下列:

import pymel.core as pm

obj_pos = pm.getAttr("pCube1.translate",lock=True)
print(obj_pos)

>>> False

加入lock標誌後,返回的值變成布林值,表示該屬性是否處於鎖定的狀態。另外還有許多函式可以使用edit與query標誌,表示該函式用於查詢還是編輯。

知道基礎的結構後,就可以針對問題查找關鍵字,當然能熟悉一下maya的軟體使用以及一些3D的基礎概念是最好的。

現在假設一個問題,先以最單純的情況練習,如果使用者已經手動選到某一個頂點,我該怎麼取得該頂點的世界座標之xyz值?

目標是頂點,關鍵字也許能從point或vertex下手,嘗試用point搜尋後你會看到一個函式名稱叫做pointPosition,他可以返回任何點的座標位置,包含曲線或locator等等。

raw-image

從範例及說明中可以得知,第一個參數需要一個對象,也就是頂點的名稱字串,並且可使用標誌來決定要返回本地座標還是世界座標。以下列程式碼為例,可得到該頂點的世界座標。

import pymel.core as pm

vtx_pos = pm.pointPosition("pCube1.vtx[5]",w=True)

print(vtx_pos)

>>> [0.5, 0.5, -0.5]

這大約就是maya的python函式操作邏輯,其他功能只要了解相關詞彙就能找到關鍵的函式,例如權重類常用到skin,動畫類可能用到ani,多邊形可能用到poly之類的。

甚麼?你不知道當個美術學這個幹麻?

假設你從討厭的同事接手模型,卻發現模型沒有對稱,但同事死賴帳不認.正當你準備吵架大戰一觸即發時,你就可以把頂點座標截圖貼在工作群組裡打臉對方並說"數學可以還我清白!"

raw-image

在美術團隊裡當唯一一個會使用腳本編輯器的人,超酷的好嗎。

留言
avatar-img
留言分享你的想法!
avatar-img
Sigen Chang的沙龍
0會員
2內容數
你可能也想看
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
  最近開始真正學習Python這門語言,這邊就將我所學的筆記記錄在這邊,我起初用這們語言時覺得很雜很混亂都在胡亂使用,聽說python很多東西沒有筆記就會很雜很混亂腦容量要非常非常大,但我自知腦袋記憶體不足,所以現在有了比較完整的概念我就邊學邊筆記,有需要的也可以一起學習哦!我學習到哪就分享到哪裡
Thumbnail
  最近開始真正學習Python這門語言,這邊就將我所學的筆記記錄在這邊,我起初用這們語言時覺得很雜很混亂都在胡亂使用,聽說python很多東西沒有筆記就會很雜很混亂腦容量要非常非常大,但我自知腦袋記憶體不足,所以現在有了比較完整的概念我就邊學邊筆記,有需要的也可以一起學習哦!我學習到哪就分享到哪裡
Thumbnail
不管是任何的軟體,習慣界面與調整設定是必要的. 這才可方便的進入到符合自己習慣或工作的場景中. 所以 [設定] 正是我們第一步要去認識的!
Thumbnail
不管是任何的軟體,習慣界面與調整設定是必要的. 這才可方便的進入到符合自己習慣或工作的場景中. 所以 [設定] 正是我們第一步要去認識的!
Thumbnail
這個教學是關於探索地圖的教學 教學包含了 使用 imagemap 出現提示 建立可互動式地圖 解謎系統 設定 / 使用變量 根據成功或失敗出現對應的畫面 這篇會稍微比較長也比較複雜ㄧ點如果中間有甚麼不懂的歡迎私訊我!
Thumbnail
這個教學是關於探索地圖的教學 教學包含了 使用 imagemap 出現提示 建立可互動式地圖 解謎系統 設定 / 使用變量 根據成功或失敗出現對應的畫面 這篇會稍微比較長也比較複雜ㄧ點如果中間有甚麼不懂的歡迎私訊我!
Thumbnail
如果是對maya有興趣,為了控制maya而學習python的人,初入maya的python世界應該會一頭撞上這道牆。 初學python的人應該也跟我一樣,會知道python有一大堆酷炫的第三方函式庫可以用,使用一段時間後自然而然就會習慣這些函式庫的使用方式,許多函式庫設計得非常智慧非常易用。
Thumbnail
如果是對maya有興趣,為了控制maya而學習python的人,初入maya的python世界應該會一頭撞上這道牆。 初學python的人應該也跟我一樣,會知道python有一大堆酷炫的第三方函式庫可以用,使用一段時間後自然而然就會習慣這些函式庫的使用方式,許多函式庫設計得非常智慧非常易用。
Thumbnail
對於程式的初學者而言,理解程式的流程、迴圈的進行、或是變數的變化會需要一定程度將程式在腦中進行運算的能力,要一段時間熟悉與適應,尤其是當程式執行的結果不如預期時,往往是計算的過程和自己所想像的不同,這時又更難靠自己的能力找出錯誤。因此,這邊要介紹的這個工具可以將程式執行的過程逐行將變數的變化視覺化地
Thumbnail
對於程式的初學者而言,理解程式的流程、迴圈的進行、或是變數的變化會需要一定程度將程式在腦中進行運算的能力,要一段時間熟悉與適應,尤其是當程式執行的結果不如預期時,往往是計算的過程和自己所想像的不同,這時又更難靠自己的能力找出錯誤。因此,這邊要介紹的這個工具可以將程式執行的過程逐行將變數的變化視覺化地
Thumbnail
前言: 今天要講用python來做使用者介面,由於姆姆平常的工作面對是工廠產線生產,所以一般來說交付程式的時候會給(sample.py)或是(sample.pyc)這類的檔案格式,其中py和pyc檔簡單說,差別在一個看的到(py)原始碼一個看不到(pyc)。 TCL: 官方下載網址: PAGE:
Thumbnail
前言: 今天要講用python來做使用者介面,由於姆姆平常的工作面對是工廠產線生產,所以一般來說交付程式的時候會給(sample.py)或是(sample.pyc)這類的檔案格式,其中py和pyc檔簡單說,差別在一個看的到(py)原始碼一個看不到(pyc)。 TCL: 官方下載網址: PAGE:
Thumbnail
Python 是目前主流的程式語言之一,不論是網路上亦或是各大書局。都有豐富的學習資源,如果你是程式語言的初學者,那以 python 作為入坑的第一步來解決不論是生活/工作上的大小事都是非常適合的一個'工具'。 接下來介紹如何安裝python,以及我自己一直都在使用的IDE(整合開發環境)。
Thumbnail
Python 是目前主流的程式語言之一,不論是網路上亦或是各大書局。都有豐富的學習資源,如果你是程式語言的初學者,那以 python 作為入坑的第一步來解決不論是生活/工作上的大小事都是非常適合的一個'工具'。 接下來介紹如何安裝python,以及我自己一直都在使用的IDE(整合開發環境)。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News