綁定的藝術:Maya高級角色骨骼綁定技法

綁定的藝術:Maya高級角色骨骼綁定技法

《綁定的藝術Maya高級角色骨骼綁定技法》是人民郵電出版社出版的圖書,作者是劉慧遠,朱恩艷(作者)。

內容簡介

角色骨骼綁定是CG動畫製作的重要組成部分,骨骼綁定的每一個步驟都影響著最終的動畫效果。《綁定的藝術——Maya高級角色骨骼綁定技法》對動畫製作中骨骼綁定環節涉及的人體關節活動範圍、骨骼創建、約束、蒙皮等基本概念和動畫技術進行了全面系統的介紹,並以圖文並茂的形式向讀者講述了利用Maya軟體進行角色骨骼綁定的高級技法。

《綁定的藝術——Maya高級角色骨骼綁定技法》分為3篇,共17章。第1篇為角色設定基礎,主要講解創建骨骼裝配常用的各項命令及實例;第2篇為角色高級設定,主要講解綁定中的常用技巧,包括骨骼拉伸、IKFK無縫轉換、膝蓋鎖定、手部無縫跟隨頭和腰、軀幹IKFK共存等;第3篇為MEL套用,主要講解設定中常用的MEL命令。書中的每個實例都來自實際動畫製作過程並經過作者多次測試。附錄中包含了骨骼綁定規範及各部分骨骼常用名稱,以供讀者參考。隨書光碟中提供了書中所有教學案例的源檔案,以及第7章~第15章的視頻教學檔案,以方便讀者深入學習並儘快掌握所學知識。

《綁定的藝術——Maya高級角色骨骼綁定技法》適合CG遊戲骨骼綁定師和CG動畫製作相關專業的學生閱讀、參考。

目錄

目 錄

第1篇 角色設定基礎

第1章 人體關節正常活動範圍 22

1.1 人體骨骼概述 22

1.2 上肢關節活動範圍 22

1.2.1 頭部活動範圍 22

1.2.2 肩部活動範圍 23

1.2.3 手臂活動範圍 24

1.2.4 肘部活動範圍 25

1.2.5 手部活動範圍 25

1.2.6 腰部活動範圍 26

1.3 下肢關節活動範圍 26

1.3.1 腿部活動範圍 26

1.3.2 膝部活動範圍 27

1.3.3 腳部活動範圍 27

第2章 骨骼創建 29

2.1 骨骼創建命令 29

2.1.1 Maya骨骼概述 29

2.1.2 骨骼創建工具(Joint Tool) 29

2.1.3 插入骨骼工具(Insert Joint Tool) 31

2.1.4 重置根關節(Reroot Skeleton) 31

2.1.5 清除骨骼(Remove Joint) 32

2.1.6 斷開骨骼(Disconnect Joint) 33

2.1.7 連線骨骼(Connect Joint) 34

2.1.8 鏡像骨骼(Mirror Joint) 35

2.1.9 定向骨骼(Orient Joint) 36

2.2 正向動力學與反向動力學 37

2.2.1 正向動力學與反向動力學概述 37

2.2.2 正向動力學(FK) 37

2.2.3 反向動力學(IK)概述 39

2.2.4 IK手柄工具(IK Handle Tool) 39

2.2.5 樣條IK(IK Spline Handle Tool)概述 41

2.2.6 樣條IK範例 41

2.3 父子層級控制 44

2.3.1 父子層級概述 44

2.3.2 創建父子層級關係 44

2.3.3 解開父子層級關係 45

2.4 組及控制器定位 46

2.4.1 組及控制器定位的重要性 46

2.4.2 通過組定位控制器 47

2.5 自定義屬性及驅動關鍵幀 49

2.5.1 自定義屬性概述 49

2.5.2 自定義屬性範例 49

2.5.3 屬性關聯 50

2.5.4 驅動關鍵幀(Set Driven Key) 53

2.5.5 驅動關鍵幀範例 53

2.6 角色身體骨骼定位 54

2.6.1 軀幹骨骼的結構 54

2.6.2 軀幹骨骼定位 55

2.6.3 腿部骨骼定位 55

2.6.4 手臂骨骼定位 56

2.6.5 橈骨骨骼解決方案 57

2.6.6 鎖骨定位 59

2.6.7 手指骨骼定位 60

2.6.8 骨骼軸向檢查 62

2.6.9 鏡像骨骼 62

第3章 約束 64

3.1 約束(Constrain)概述 64

3.2 點約束(Point) 64

3.2.1 創建點約束 64

3.2.2 X衣架範例 67

3.3 方向約束(Orient) 73

3.4 縮放約束(Scale) 74

3.5 父子約束(Parent) 74

3.6 極向量約束(Pole Vector) 74

3.7 目標約束(Arm) 75

3.7.1 創建目標約束 75

3.7.2 液壓系統範例 76

3.7.3 活塞系統範例 78

3.8 其他約束 80

3.8.1 幾何體約束(Geometry) 80

3.8.2 法線約束(Normal) 80

3.8.3 切線約束(Tangent) 80

第4章 角色蒙皮設定 81

4.1 蒙皮概述 81

4.2 光滑蒙皮(Smooth Bind) 81

4.2.1 屬性編輯器來調整蒙皮的權重 83

4.2.2 權重的繪製 83

4.3 鏡像權重(Mirror Skin Weights) 84

4.4 添加影響(Add influence) 85

4.5 剛體蒙皮命令(Rigid Bind) 87

4.6 分離權重(Detach Skin) 88

4.7 轉到綁定姿勢(Go To Bind Pose) 89

4.8 cometScripts外掛程式 89

4.8.1 cometScripts外掛程式介紹 89

4.8.2 cometScripts外掛程式安裝方法 89

4.8.3 重命名工具 89

4.8.4 權重繪製 92

4.8.5 權重保存 94

4.8.6 權重鏡像 95

第5章 變形器 99

5.1 變形的概念和用途 99

5.2 變形的種類 99

5.3 融合變形(Blend Shape) 100

5.3.1 創建融合變形 100

5.3.2 融合變形添加、移除及交換 101

5.4 晶格變形(Lattice) 102

5.4.1 創建晶格變形效果 102

5.4.2 重設影響晶格點和去除曲扭 103

5.5 包裹變形(Wrap) 103

5.5.1 創建包裹變形 103

5.5.2 添加和去除包裹影響體 104

5.6 簇變形(Cluster) 105

5.6.1 創建簇變形 105

5.6.2 繪畫簇權重 106

5.7 軟變形(Soft Modification) 107

5.8 非線性變形工具(Nonlinear)概述 108

5.8.1 創建彎曲變形(Blend) 108

5.8.2 創建擴張變形(Flare) 109

5.8.3 創建正弦變形(Sine) 110

5.8.4 正弦變形創建骨骼自動尾隨 111

5.8.5 創建擠壓變形(Squash) 113

5.8.6 創建扭曲變形(Twist) 114

5.8.7 創建波形變形(Wave) 114

5.9 造型變形(Sculpt Deformer) 115

5.10 顫動變形(Jiggle Deformer) 117

5.10.1 創建顫動變形 117

5.10.2 創建顫動快取 117

5.10.3 刪除顫動快取 118

5.11 線變形(Wire Tool) 118

5.12 褶皺變形(Wrinkle Tool) 120

5.12.1 褶皺變形的種類 120

5.12.2 創建褶皺變形 120

第6章 Maya設定常用材質節點工具 122

6.1 材質節點概述 122

6.2 節點創建方法 122

6.3 節點的輸入和輸出 123

6.4 乘除節點(Multiply Divide) 123

6.5 平均數節點(Plus Minus Average) 125

6.6 翻轉節點(Reverse) 128

6.7 條件節點(Condition) 129

6.8 融合節點(blendColors) 132

6.9 限制節點(Clamp) 134

6.10 距離節點(distanceBetween) 137

第2篇 角色高級設定

第7章 胳膊系統設定 140

7.1 胳膊不跟隨肩部 140

7.1.1 肩部帶動胳膊概述 140

7.1.2 手臂骨骼創建 140

7.1.3 手臂控制器創建 141

7.1.4 通過約束控制不跟隨肩部 142

7.1.5 創建跟隨開關 143

7.1.6 跟隨開關參數關聯 143

7.2 肩部無翻轉 144

7.2.1 肩部無翻轉概述 144

7.2.2 無翻轉的原理 145

7.2.3 手臂骨骼創建 145

7.2.4 創建手臂控制器 146

7.2.5 創建肩部輔助骨骼 147

7.2.6 鎖定肩部骨骼 147

7.2.7 二頭肌骨骼遞減表達式 148

7.3 胳膊自動扭曲系統 148

7.3.1 製作思路 148

7.3.2 創建骨骼及IK 148

7.3.3 設定高級扭曲系統 149

7.3.4 創建輔助控制骨骼 150

7.3.5 創建層級 150

7.3.6 創建簇控制樣條曲線 150

7.3.7 創建輔助骨骼拉伸 151

7.3.8 創建其他輔助骨骼 151

7.3.9 匹配手臂骨骼 152

7.4 肢體次級骨骼 153

7.4.1 肢體次級骨骼原理 153

7.4.2 創建毛髮系統 153

7.4.3 創建次級骨骼 154

7.4.4 創建控制骨骼 155

7.4.5 創建locator輔助控制器 155

7.4.6 為nurbus刷權重 156

7.4.7 約束控制骨骼 156

7.4.8 為平面繪製權重 158

7.4.9 次級骨骼匹配到手臂上 159

第8章 軀幹系統設定 161

8.1 軀幹單骨骼線性IKFK共存 161

8.1.1 製作思路 161

8.1.2 創建軀幹骨骼及IK 161

8.1.3 創建軀幹IK控制器及層級關係 162

8.1.4 創建軀幹FK控制器 163

8.1.5 IK與FK控制器之間層級 163

8.2 軀幹IKFK共存技術 164

8.2.1 製作思路 164

8.2.2 軀幹IKFK共存原理 164

8.2.3 骨骼及控制器創建 166

8.2.4 創建軀幹控制器 166

8.2.5 創建軀幹約束 167

8.3 軀幹IKFK共存JS法 169

8.3.1 軀幹骨骼及IK創建 169

8.3.2 輔助骨骼控制樣條IK 170

8.3.3 創建輔助控制骨骼及控制器 171

8.3.4 輔助骨骼約束控制 171

8.4 軀幹無翻轉系統 173

8.4.1 軀幹控制骨骼及控制器創建 173

8.4.2 輔助Locator創建 176

8.4.3 平均節點控制Locator組 177

第9章 三套骨骼及骨骼拉伸系統設定 181

9.1 IK骨骼拉伸——表達式方式 181

9.1.1 Transfor方式骨骼拉伸等長原理 181

9.1.2 Transfor方式骨骼拉伸不等長原理 181

9.1.3 Scale方式骨骼拉伸原理 182

9.1.4 創建腿部骨骼及IK 182

9.1.5 創建腿部骨骼測量及控制器 182

9.1.6 骨骼常規拉伸 183

9.1.7 骨骼無限拉伸 184

9.1.8 骨骼拉伸開關 185

9.1.9 骨骼拉伸後腿部形狀保持 186

9.1.10 線性IK骨骼拉伸及擠壓 187

9.2 IK骨骼拉伸——節點方式 191

9.2.1 節點方式製作概述 191

9.2.2 創建腿部骨骼空組 191

9.2.3 創建拉伸所需節點 191

9.2.4 連線距離節點 192

9.2.5 連線條件節點 192

9.2.6 連線乘除節點 193

9.2.7 連線融合節點 193

9.2.8 融合節點輸出值分配給各骨骼 194

9.3 三套骨骼——表達式方式 195

9.3.1 三套骨骼製作思路 195

9.3.2 三套骨骼創建 195

9.3.3 創建IK控制手柄及控制器 195

9.3.4 創建FK控制器 196

9.3.5 FK控制器約束骨骼 197

9.3.6 IK控制骨骼約束綁定骨骼 197

9.3.7 FK控制骨骼約束綁定骨骼 198

9.3.8 骨骼及控制器顯示表達式 198

9.3.9 約束開關表達式 199

9.3.10 約束開關表達式原理 200

9.4 三套骨骼——節點方式 200

9.4.1 三套骨骼——節點方式概述 200

9.4.2 創建融合節點 201

9.4.3 融合節點控制三套骨骼顯示原理 202

9.4.4 節點連線控制控制器顯示 202

9.4.5 融合節點控制約束節點 203

第10章 腳部系統設定 205

10.1 腳部設定——打組法 205

10.1.1 腳部打組法概述 205

10.1.2 腳部打組方法一:腿部骨骼及IK手柄創建 205

10.1.3 創建腿部控制器 205

10.1.4 腳部打組確定旋轉軸 206

10.1.5 控制器屬性關聯 208

10.1.6 限制腳部組旋轉 210

10.1.7 腳部打組方法二 210

10.1.8 腳部打組方法三 213

10.2 腳部設定——反轉腳 216

10.2.1 反轉腳概述 216

10.2.2 創建腿部骨骼及IK 216

10.2.3 創建IK手柄及控制器 216

10.2.4 腳部屬性關聯 217

10.2.5 創建其他旋轉軸 218

10.2.6 使用min和max創建腳部side系統 219

10.3 腳部設定——Roll系統 220

10.3.1 使用條件語句和clamp函式創建Roll系統 220

10.3.2 使用linstep創建Roll系統 221

10.3.3 linstep函式Roll系統所用表達式詳解 223

第11章 膝蓋鎖定系統設定 225

11.1 膝蓋肘部鎖定——節點 225

11.1.1 膝蓋肘部鎖定製作思路 225

11.1.2 創建手臂骨骼及控制器 225

11.1.3 創建距離測量 226

11.1.4 通過節點創建骨骼拉伸 228

11.1.5 肘部鎖定節點 230

11.2 膝蓋鎖定——表達式 233

11.2.1 表達式製作膝蓋肘部鎖定 234

11.2.2 嵌套條件語句製作膝蓋肘部鎖定 235

11.2.3 嵌套語句原理 237

第12章 無縫轉換系統設定 238

12.1 parent控制器製作及IKFK控制器顏色技巧 238

12.1.1 Parent控制器製作思路 238

12.1.2 創建形體 238

12.1.3 Parent命令結合形體節點 239

12.1.4 表示式控制形體顏色變化 240

12.2 IKFK無縫轉換 241

12.2.1 無縫轉換製作思路 242

12.2.2 創建Locator定位 242

12.2.3 MEL控制無縫轉換 242

12.2.4 無縫轉換MEL命令說明 244

12.3 手部無縫跟隨頭和腰 245

12.3.1 無縫跟隨製作思路 245

12.3.2 創建手部及控制器 245

12.3.3 創建頭腰約束 245

12.3.4 MEL控制無縫跟隨 246

12.4 頭部無縫跟隨脖子切換 247

12.4.1 創建骨骼及控制器 247

12.4.2 創建約束及添加自定義屬性 248

12.4.3 MEL控制無縫跟隨 249

12.5 自定義右鍵彈出命令 250

12.5.1 自定義右鍵彈出命令概述 250

12.5.2 IKFK無縫轉換MEL打包 250

12.5.3 Reset MEL打包 251

12.5.4 製作滑鼠右鍵快捷鍵 252

12.5.5 修改dagMenuProc.mel 255

12.5.6 將上述MEL輸入到表達式中 256

第13章 手部系統設定 258

13.1 手部翻轉控制 258

13.1.1 翻轉原理 258

13.1.2 創建手部及輔助骨骼 258

13.1.3 創建手部IK及控制器 259

13.1.4 創建定位Locator 260

13.1.5 創建手部層級關係 261

13.1.6 參數關聯控制手腕翻轉 262

13.2 手指控制——表達式 263

13.2.1 製作思路 263

13.2.2 創建手部骨骼及控制器 264

13.2.3 手部控制器屬性及參數關聯 265

13.2.4 表達式控制手指彎曲及分開 266

13.3 Gimbal Lock萬象節鎖 268

13.3.1 萬象節鎖原理 268

13.3.2 萬向節鎖解決辦法 269

第14章 面部系統設定 271

14.1 面部骨骼直接控制 271

14.1.1 眉毛骨骼定位 271

14.1.2 眼睛骨骼定位 271

14.1.3 顴骨骨骼定位 271

14.1.4 臉頰骨骼定位 272

14.1.5 下巴骨骼定位 272

14.1.6 頭骨及脖子骨骼定位 272

14.1.7 下頜骨骼定位 272

14.1.8 舌頭骨骼定位 273

14.1.9 下巴層級骨骼定位 273

14.2 面部融合變形UI面板製作 275

14.2.1 軟選工具套用 275

14.2.2 創建BlendShape 275

14.2.3 創建UI控制器 276

14.2.4 表達式控制UI面板 277

14.2.5 控制器x軸位移控制左右嘴角 277

14.2.6 左右嘴角控制原理 278

14.2.7 控制器在左上角和右上角起作用 278

14.2.8 控制器y軸為1時,左右嘴角起作用 278

14.3 面部次級骨骼 279

14.3.1 製作思路 279

14.3.2 模型及Blend Shape創建 279

14.3.3 創建粒子發射器 280

14.3.4 創建次級骨骼及繪製權重 281

14.3.5 參數關聯及表達式 283

14.3.6 其他附著表面工具製作方法及優缺點 284

14.4 眼球自動跟隨眼皮 285

14.4.1 自動跟隨眼皮製作思路 285

14.4.2 約束控制 285

14.4.3 眼球向下自動閉眼表達式 286

14.4.4 眼球旋轉帶動眼皮輕微運動表達式 287

14.5 頭部擠壓拉伸 287

14.5.1 骨骼及控制器創建 288

14.5.2 表達式控制骨骼擠壓 289

第15章 骨骼動力學及尾巴系統設定 291

15.1 骨骼動力學 291

15.1.1 製作思路 291

15.1.2 創建骨骼及IK 291

15.1.3 創建柔體 291

15.1.4 創建彈簧系統 292

15.2 自動尾隨系統設定 293

15.2.1 sin函式原理 293

15.2.2 默認sin函式效果 294

15.2.3 改變上下幅度 295

15.2.4 改變左右幅度 296

15.2.5 創建骨骼及控制器 296

15.2.6 表達式控制尾隨 297

15.3 自動尾巴捲曲技術 297

15.3.1 製作思路 297

15.3.2 創建骨骼及控制器 298

15.3.3 表達式控制捲曲 299

15.3.4 表達式原理 300

第3篇 MEL套用

第16章 MEL基礎 302

16.1 理解MEL 302

16.2 MEL的重要性 302

16.3 如何學習MEL 302

16.4 MEL和表達式的區別 302

16.5 MEL編輯器 303

16.6 命令行(Command Line) 303

16.7 腳本編輯器 303

16.8 Mel命令(Command) 304

16.9 Mel命令快速幫助 304

16.10 建立快捷按鈕(Shelf) 305

16.11 編輯快捷按鈕 306

16.12 自定義快捷選單 306

16.13 其他常用選單命令及快捷按鈕 307

16.14 Maya外掛程式的一般安裝方法 308

16.15 MEL運算符 308

16.15.1 數學運算符 308

16.15.2 關係運算符 308

16.15.3 邏輯運算符 309

16.15.4 賦值運算符 309

16.16 變數 309

16.16.1 浮點型變數 309

16.16.2 整數型變數 309

16.16.3 字元串變數 309

16.16.4 矢量變數 309

16.16.5 預定義變數 310

16.16.6 在全局中使用自定義變數 310

16.16.7 變數(variable)的規範 310

16.17 數組 310

16.17.1 數組聲明 310

16.17.2 給數組賦值 310

16.18 print命令 311

16.19 條件語句 312

16.20 select命令 312

16.21 setAttr命令 313

16.22 表達式 314

16.23 headsUpMessage命令 316

16.24 ls-sl命令 316

16.25 函式 318

16.25.1 min最小值函式 318

16.25.2 max函式 318

16.25.3 Clamp函式 318

16.25.4 sin三角函式 319

16.25.5 cos三角函式 319

16.25.6 linstep曲線函式 319

16.25.7 linstep函式算法 319

第17章 MEL高級視窗 320

17.1 MEL視窗概述 320

17.2 創建視窗 320

17.2.1 window命令(創建視窗) 320

17.2.2 showWindow命令(顯示視窗) 321

17.2.3 標籤命名 321

17.2.4 設定視窗的大小 321

17.2.5 視窗命名 322

17.2.6 deleteUI命令(銷毀界面元素) 322

17.2.7 條件語句使用deleteUI命令 323

17.2.8 window常用子命令 323

17.3 控制項(Control)及布局(Layout) 324

17.3.1 控制項及布局概述 324

17.3.2 rowColumnLayout命令(橫豎布局) 325

17.3.3 text命令(靜態文本) 326

17.3.4 改變文字與按鈕之間間隔 327

17.3.5 separator命令(分割線) 329

17.3.6 symbolBotton命令(圖示按鈕) 332

17.3.7 command命令(執行命令) 334

17.3.8 層級關係 335

17.3.9 setParent命令(指定當前布局) 335

17.3.10 columnLayout命令(豎布局) 335

17.3.11 將文本框內名稱與創建的球體名稱相同 336

17.3.12 rowLayout命令(橫布局) 337

17.3.13 rowColumnLayout命令(橫豎布局) 338

17.3.14 scrollLayout命令(滾動布局) 339

17.3.15 frameLayout命令(框線布局) 340

17.3.16 paneLayout命令(窗格布局) 344

17.3.17 tabLayout命令( 標籤布局) 345

17.3.18 formLayout命令(表單布局) 346

17.3.19 gridLayout命令(格子布局) 351

17.3.20 menuBarLayout命令(選單條布局) 352

17.3.21 shelfLayout命令(工具架布局) 353

17.3.22 shelfTabLayout命令(工具架標籤布局) 354

17.3.23 “confirmDialog”命令(確認對話框) 355

附錄 角色設定規範

附錄A 骨骼綁定規範 358

附錄B 骨骼常用名稱 367

相關詞條

熱門詞條

聯絡我們