編輯推薦
假設你正在Maya中為一個角色創建動畫。在為此角色創建動畫的過程中,你會發現自己在重復以下幾個步驟。
1. 引用一個角色。
2. 導入一個動作捕捉動畫。
3. 設置幀範圍。
4. 引用背景場景。
5. 配置攝像機。
如果參與一個包含10到50名動畫師的大型製作項目,這些簡單的步驟可能會帶來一些問題。如果分解此過程,可以發現許多適閤引入工具的地方。
首先,動畫師需要查找角色的正確路徑。可以在任意給定時間更改此路徑,所以讓動畫師任意選擇此文件可能導緻挑選瞭錯誤的文件。包含角色列錶的簡單工具可幫助快速、可靠地完成此任務。
接下來,你需要一個工具來對將運動捕捉數據正確地導入角色控件的過程進行組織和管理。在此過程中,此工具也可設置動畫的幀範圍並將攝像機移動到正確的位置。
引用正確的背景場景,動畫師每次手動搜索正確的文件時,可能都要花一分鍾。可創建另一個簡單工具,顯示可供選擇的所有背景的列錶。
你會看到這些工具能夠節省時間,讓文件選擇更準確,而且讓動畫師能專心完成其創造性工作。創建這些工具的方式是使用Maya的一種內置腳本語言——具體來講就是Python。
Python是一種在Maya外部開發的腳本語言,所以它擁有強大的功能集閤和龐大的用戶群。在Maya 8.5 中,Autodesk添加瞭對Python腳本語言的正式支持。此語言已閤並到Maya現有的編程界麵中(MEL腳本語言和C++ API)。Maya嵌入式語言(MEL)已存在多年,所以你可能想知道為什麼Python至關重要。通過更寬廣的視角可很快發現許多重要優勢。
社區:與Python相比,MEL擁有非常小的用戶群,因為隻有Maya開發人員使用MEL。而所有軟件開發人員和許多類型的應用程序都可以使用Python。
強大功能:Python是一種更高級的腳本語言,它可完成在MEL 中無法完成的工作。Python是完全麵嚮對象的,而且它能夠輕鬆地與Maya命令引擎和C++ API通信,支持使用同一種語言編寫腳本和插件。即使使用C++編寫插件,Python也支持在Maya腳本編輯器中交互式地測試API代碼!
跨平颱:Python可在任何操作係統上執行,這消除瞭針對不同操作係統、處理器架構或軟件版本而重新編譯工具的需求。事實上完全不需要編譯!
行業標準:由於Python的優勢,它正被迅速集成到對娛樂行業專業人員至關重要的許多其他應用程序中。可以在Maya和你的渠道(如MotionBuilder)中的其他應用程序之間輕鬆共享庫。
內容簡介
本書涵蓋瞭與Maya相關的Python的主要方麵的內容,解答瞭有關Maya的多個Python實施問題,包括強大的PyMEL和漂亮的PyQt用戶界麵。本書內容包括基礎知識和更高級的主題,分為3部分,共12章。第1部分為Python和Maya的基礎知識,第2部分是使用Python設計Maya工具,第3部分介紹瞭Maya Python API基礎知識。其中,麵嚮對象編程和過程式編程、環境設置和PyQt GUI等一般性主題也有所涉及,但著眼點是在Maya中的集成。掌握瞭本書的內容,讀者可為以後的學習奠定堅實的基礎。
本書適用於運用Maya Python或Maya API編程的專業人員,以及影視特效腳本編寫的專業人員。
作者簡介
Adam Mechtley進入遊戲行業後,負責當時的遊戲(Xbox 360/SP3)的角色技術。他參與瞭大量獲奬遊戲製作,並且參與過Autodesk的項目等。Ryan Trowbridge是Naughty Dog Inc.的一名角色技術總監,他於2000年加入Pipeworks Software,先是擔任紋理和環境美工,然後擔任角色和動畫美工,他從事角色流程、工具和動畫方麵的工作。
目錄
緻謝 xi
引言:歡迎使用Maya Python xii
第 1 部分 Python和Maya的基礎知識 1
第 1 章 Maya 命令引擎和用戶界麵 2
1.1 與Maya 進行交互 3
Maya 嵌入式語言 3
Python 3
C++ 應用程序編程界麵 3
Python API 4
1.2 在Maya 中執行Python 4
命令行 4
腳本編輯器 5
Maya 工具架 7
1.3 Maya 命令和依存關係圖 8
1.4 Python 命令簡介 10
1.5 標誌參數和Python 核心對象類型 14
數字 15
字符串 15
列錶 15
元組 15
布爾型 15
標誌=對象類型 15
1.6 命令模式和命令參數 16
創建模式 16
編輯模式 17
查詢模式 17
1.7 Python命令參考 17
總覽 18
返迴值 18
相關 18
標誌 19
Python 示例 19
1.8 Python 版本 19
1.9 Python 在綫文檔 20
1.10 小結 20
第 2 章 Python 數據基礎知識 21
2.1 變量和數據 22
MEL 中的變量 23
關鍵字 24
Python 的數據模型 24
2.2 結閤使用變量和Maya 命令 27
捕獲結果 28
getAttr 和setAttr 28
connectAttr 和disconnectAttr 29
2.3 使用數字 30
數字類型 30
基本運算符 31
2.4 使用布爾值 32
布爾運算符和位運算符 32
2.5 使用序列類型 33
運算符 33
字符串類型 36
格式化字符串 37
有關列錶的更多內容 39
2.6 其他容器類型 41
集閤 41
字典 42
2.7 小結 45
第 3 章 在Maya 中編寫Python 程序 46
3.1 創建Python 函數 47
函數定義剖析 47
函數參數 48
返迴值 53
3.2 Maya 命令 54
列齣和選擇節點 55
file 命令 56
添加屬性 57
3.3 迭代和分支 58
for語句 59
分支 62
列錶解析 70
while 語句 71
3.4 捕獲錯誤 73
try、except、raise 和finally 73
3.5 設計實用的工具 76
3.6 小結 86
第 4 章 模塊 87
4.1 什麼是模塊 88
4.2 模塊與範圍 88
模塊封裝和屬性 89
_main_模塊 90
4.3 創建模塊 91
spike模塊 92
默認屬性和help() 93
包 95
4.4 導入模塊 97
import 與reload() 的比較分析 97
as 關鍵字 98
from關鍵字 98
4.5 Python 路徑 99
sys.path 99
臨時添加路徑 100
userSetup 腳本 101
sitecustomize 模塊 103
設置PYTHONPATH 環境變量 105
4.6 使用Python IDE 109
下載IDE 109
基本IDE 配置 110
4.7 小結 112
第 5 章 Maya 中的麵嚮對象編程 113
5.1 麵嚮對象編程與過程式編程 114
在Python 中實現類的基礎知識 115
實例化 115
5.2 屬性 116
數據屬性 117
方法 119
類屬性 123
Human 類 125
5.3 繼承 127
5.4 Maya 中的過程式編程與麵嚮對象編程… 130
安裝PyMEL 130
PyMEL 介紹 130
PyNodes 131
PyMEL 特性 131
優點和缺點 133
PyMEL 示例 133
5.5 小結 135
第 2 部分 使用Python 設計Maya 工具 137
第 6 章 Maya 工具設計原則 138
6.1 為用戶設計的技巧 139
溝通和觀察 139
準備、設置、規劃 139
簡化和培訓 140
6.2 Maya 中的工具 141
選擇 141
標記菜單 143
選項窗口 145
6.3 小結 146
第 7 章 使用Maya 命令創建基本工具 147
7.1 Maya 命令與Maya GUI 147
7.2 基本GUI 命令 149
窗口 149
7.3 構建窗口基類 150
菜單和菜單項 151
對GUI 對象執行命令 154
布局和控件 159
完整的AR_OptionsWindow 類 166
7.4 擴展GUI 類 169
單選按鈕組 170
框架布局和浮動字段組 171
顔色選取器 173
7.5 創建更高級的工具 174
姿勢管理器窗口 175
將窗體與功能分開 176
使用cPickle 模塊序列化數據 176
使用文件對話框 178
7.6 小結 181
第 8 章 使用Qt 設計高級圖形用戶界麵 182
8.1 Qt 與Maya 182
固定窗口 183
8.2 安裝Qt 工具 185
Qt SDK 186
8.3 Qt Designer 187
小組件 188
信號和插槽 188
Qt Designer 實踐 189
8.4 將Qt GUI 加載到Maya 中 192
loadUI 命令 194
訪問控件上的值 195
使用信號和插槽來映射小組件 196
8.5 PyQt 198
安裝PyQt 198
在Maya 2011 及更高版本中使用PyQt 199
在更低的Maya 版本中使用PyQt 200
8.6 小結 201
第 3 部分 Maya Python API 基礎知識 203
第 9 章 理解C++ 和API 文檔 204
9.1 麵嚮對象編程的高級主題 205
繼承 206
虛擬函數和多態性 206
9.2 Maya API 的結構 207
Maya 的核心對象類MObject 簡介 207
9.3 Python 與Maya API 通信的方式 209
9.4 如何查閱API文檔 210
9.5 Python與C++ API 之間的重要區彆 218
MString 和MStringArray 218
MStatus 218
Void* 指針 218
代理類和對象所有權 218
帶參數的命令 218
撤銷 219
MScriptUtil 219
9.6 小結 219
第 10 章 設計命令 220
10.1 加載腳本化插件 221
10.2 腳本化命令剖析 222
OpenMayaMPx 模塊 223
命令類定義 223
doIt() 223
命令創建器 224
初始化和取消初始化 224
10.3 添加自定義語法 225
映射鏇轉順序 228
類定義 229
語法創建器 230
語法的初始化 232
doIt() 233
doItQuery() 235
10.4 Maya 的撤銷/ 重做機製 238
10.5 支持多種命令模式和撤銷/ 重做 241
撤銷和重做 241
命令模式 242
語法創建器 244
_init_() 方法 245
doIt() 246
redoIt() 250
undoIt() 251
10.6 小結 252
第 11 章 Maya 中的數據流 253
11.1 依存關係圖 253
依存關係節點 254
連接 257
調試依存關係圖 259
dgTimer 命令 261
11.2 有嚮無環圖 262
DAG 路徑和實例化 265
對拓節點 267
11.3 小結 270
第 12 章 設計依存關係節點 271
12.1 腳本化節點剖析 271
ar_averageDoubles 節點 272
節點類定義 273
節點創建器 274
節點初始化 274
compute() 275
初始化和取消初始化 277
12.2 屬性和plug 278
屬性的特性 279
可讀、可寫和可連接 279
可存儲的屬性和默認值 280
緩存的屬性 280
使用數組 280
復閤屬性 286
12.3 小結 290
前言/序言
Maya Python 遊戲與影視編程指南 epub pdf mobi txt 電子書 下載 2024
Maya Python 遊戲與影視編程指南 下載 epub mobi pdf txt 電子書