Blender 骨架
===
[toc]
## 基本操作
### 模式切換
* 骨架有edit/pose mode
* object mode:
新增骨架(armature)
* edit mode:
* 新增骨頭(bone)
* 連接骨頭
* 建立骨頭父子關係
* pose mode:
* 與物件榜定
* 約束器操作
* 執行骨架操作(位移/旋轉)
* 切換object/edit mode: tab
* 切換object/pose mode: ctrl+tab
* 按.選擇想要物件旋轉的中心點

* item的rotation可以顯示轉多少圈

### 骨架操作
* 新增骨架:shift+A選amature

* 新增骨頭:在骨架edit mode下shift+A會在游標出現新的骨頭
* 新增連接骨頭:點選骨頭頂端按E

* 設定父子關係:ctrl+P(最後選的骨頭是父,其於是子)
* keep offset:跟父骨頭會有距離
* connected:直接接在父骨頭的頂端

* 解除父子關係:alt+P

* 取消lock object mode:在pose mode下可以選擇物件後shift選骨架

* 物件榜定骨架:先選物件shift選骨架(pose mode)後ctrl+P

* 骨架不要被物件擋住:右側工序欄勾選in Front

* 榜定骨架使用with automatic weight進入weight paint模式下可以檢視權重分配狀況

* 修改權重:weight paint下按N叫出右方工具欄

* 鏡像權重
1. 複製權重

1. 鏡射

* 游標控制:shift+S
* 鏡射骨架
1. 圈選完一側的骨架再命名

1. 執行對稱

### 骨架空間
* 骨架在pose mode下的local space軸向
* Z軸

* Y軸

* X軸

### 外掛功能
* copy constraint

### 自訂控制骨頭外型
* 新增plane

* 編輯模式delete face

* 編輯形狀
* 骨頭點選custom shape

### 材質套用
* 新增材質兩次,第一次的材質會套用到整個物件,第二個材質才可以選擇要的區域

### 常用操作
* 鏡像複製
1. 選擇物件後shift+D複製
2. s+x/y/z鏡像指定軸
3. ctrl+A套用rotation&scale
4. 編輯模式下全選物件後shift+N重新計算normal
* 把物件獨立出來
1. 點選p,選擇selection

## IK Bone
1. 選擇物件shift選骨架(pose mode)後ctrl+P選bone
1. 控制骨架先解除父子關係
2. 選擇控制骨頭shift選前一個骨頭後shift+i

1. 修改控制骨頭數量:chain length

* 設定ik bone的延伸影響:ik strectch

* 設定pole target讓IK bone彎曲較自然
 
## Bendy bone
移動時有柔軟的效果
1. 建立三個骨頭,中間的要比較長(bendy bone)

1. 將中間骨頭細分成多段

1. 切換成B-bone可以看到骨頭被細分的狀態
 
1. 將端點控制骨架取消父子關係
2. 新增bendy bone的骨架約束器,使用stretch to,目標選擇控制骨架

1. 設定起始結束把手(absolute)
* 起始:另一個端點骨頭
* 結束:控制的骨頭

1. 最後將物件榜定骨架,使用自動權重分配
## Shape key
物件形狀改變
1. 點選物件後新增shape key,點二次後才會出現key

1. 編輯物件的形狀後,value=1時為最後編輯過的形狀,改變value可以看到物件變化過程
2. 可新增多組key
1. 也可用於變更曲線外型
* 鏡像功能
1. 複製shape key,新增時用不到的key,value要歸0

1. 鏡射

## 約束器
### Copy Location/Rotation/Scale
1. 選擇copy location/rotation/scale

1. target點選要跟隨的骨架,owner是自己,座標系選擇local space
2. 如果需要用target的父骨頭作連動時,target座標要選擇local space with parent
### Limit Distance
1. 選擇limit location/rotation/scale
2. distance填入兩個骨頭的限制距離

1. 當移動owner時會被distance限制住
### Transformation
* 骨架帶著其他骨架做不同步運動,例如要用控制骨頭移動來帶動被控制骨頭的轉動
1. 設定target(控制骨架)的運動方式,這邊選擇target x軸移動

1. 設定owner(被控制骨架)的運動方式,這邊選擇owner z軸移動,要映射到target的x

1. 勾選extrapolate可以一直循環
2. 若有跟其他骨頭設定父子關係時,要選with parent

### Clamp to
* 讓骨架跟著曲線移動

### Stretch to
* 讓骨頭以延伸的方式追蹤目標
* 用於Bendy bone
### Damped Track
* 物件朝著指定目標方向追蹤
 
### Armature
不同骨架之間的榜定
1. 選擇要榜的骨架新增armature約束器
2. 指定要榜到哪個骨架

### Floor
設定骨頭的地板下限
1. 選擇要限制的骨頭新增Floor約束器
2. 指定地板的骨頭,在選擇要限制的軸向,這樣骨頭就不會超過地板骨頭的軸向

1. 也可操作地板的骨頭,可將帶動被限制的骨頭
2. offset可以修改地板的距離

### Follow path
讓骨頭跟著路徑移動
1. 新增曲線
2. 新增follow path約束器,並指定路徑後按animate path

1. 搭配曲線的影格設定調整速度

### Shrinkmap
在物件表面移動
1. 新增物件
2. 新增shrinkmap約束器,指定到物件

1. 可變更snap mode來決定移動模式
### Pivot
指定骨架對某個物件為旋轉中心轉動

### Action
以動畫方式完成骨架設定
1. 開啟Dope sheet點選第一影格

3. 在骨架的pose mode上點i插入影格,通常直接選location/rotation/scale

1. 在指定的影格上編輯骨架的方位並插入影格

1. 拖曳dope sheet上的影格軸就會有動畫效果
2. 選擇action editor後可以看到剛編輯的動畫名稱

1. 新增一骨頭用來啟動剛設定的動畫
1. 選擇剛有編輯動畫的骨頭新增action約束器
2. targe選擇控制骨頭,並設定控制模式

1. 以上面設定來看當控制骨頭研x軸方向移動3單位,動畫骨頭會播放1~20影格的動作
2. 操作前將影格移回1,再刪除,這樣在播動畫時才不會影響,這個並不歸類在動畫中,只是將動畫的動作拿來做骨架
### Spline IK
配合曲線使用
1. 新增曲線
2. 曲線編輯模式下設定控制類型

1. 設定頂點對齊

1. 將曲線貼在骨架上

1. 最後端點的骨頭新增spline ik約束器

1. 指定曲線後調整控制骨架數量:chain length
2. 將每個骨頭端點拉出一個控制骨頭,並取消父子關係

1. 曲線綁定骨頭:
1. 選擇骨頭(pose mode)
2. shift選取線在tab進入edit mode
3. 點選曲線端點ctrl+H

1. 選擇hook to selected object bone
2. 依序將其他曲線端點與骨頭榜定
3. 移動骨頭會帶動曲線
4. 自動權重之前先將這些控制骨頭取消Deform,選取多個骨頭在Deform按shift+alt點選
1. 點選物件後shift骨架後ctrl+P選automatic weight

### 約束器控制順序
從上到下開示

## 驅動器控制
* 驅動器編輯骨頭運動
可在任何數值變動的欄位增加驅動器控制
1. 在數值欄位右鍵add driver
2. object點選骨頭

* 材質設定
* 新增客製化屬性
1. 在骨頭設定最下面的custom properties新增屬性

1. 在骨頭item的prop欄位上右鍵

1. 點選copy data path

1. 在驅動器編輯欄位的下拉選單點選signal property並把剛複製的路徑貼上

1. 可以調整prop的值來控制對應的
* 將driver套用到不同屬性的數值
1. 客製屬性右鍵選copy as new driver

1. 在要控制的屬性數值點選paste driver

## 實例說明
### 動物
* 身體和軀幹交接處使用自動權重會有問題,連接處的權重會被分配到四肢
 
先將四肢連接身體的骨頭拉長,在細分後,從末端額外多拉一節骨頭出來

* 動物的軀幹可用bendy bone,或是Z字型骨架

* IK bone使用時要注意的地方,如果希望骨架彎曲的方向照我們希望的,那初始角度要給,不然有時會不同的方向彎曲

或是在那個關節後的骨頭在設定一個IK bone

* 自行分配權重
1. 在物件編輯模式下選擇控制區域

1. 進入weight paint勾選遮罩

1. 點擊N選擇權重數值,將遮罩部份塗滿,紅色代表控制權愈高

* 直接分配選取的區域權重
在物件編輯模式下,在view group選擇到控制的骨頭,將圈選的區域直接assign,記得也要處理不想控制的區域

### 手
* 使用spine IK + IK bone組合,藉由IK來控制spline IK
* 將spline IK的控制骨頭跟IK的骨頭建立父子關係

### 人體
* 軀幹用三個骨頭構成,須稍微有些弧度

* 手臂

* 手掌

* 腿
 
* 手指控制:從手指與手掌連接處拉出骨頭,其餘手指骨頭copy rotation控制骨頭的角度,手指骨頭mix選offset
 
* 腳掌
 
* 胸口

### 人臉
* 使用shape key控制+驅動器控制臉部肌肉
1. 新增shape key來控制臉部的肌肉位置
2. 新增控制骨頭
3. shape key add driver,先將骨頭移至最後的位置

5. var調整到接近1的值
### 工程車
* 履帶
可用array修改器方式複製單一元件,再用曲線修改器讓物件在指定路徑上排列

* 吊鉤
1. 選擇物件再選曲線進入edit mode選端點
2. ctrl+H:hook to selected object

## 快捷鍵
* ctrl E: 呼叫edge的操作
* ctrl L: 材質鍊結
* U: UV功能鍵

* ctrl B: 選取渲染區域
* 0: 攝影機視角
* x: 刪除功能

* u: UV紋理設定

* 空白鍵改成search

* 設定物件中心

* ctrl J: 將選取的物件合成一物件
* ctrl RMB: 新增頂點
* shift alt LMB: 選取一串點
* shift E: 邊緣銳利
* shift ctrl B: 布林運算
* s x/y/z 0:對齊軸
## 攝影機設定
* 調整景深

## 編輯模式
### 面編輯
* i: 插入面

* ctrf+F
* poker face

* fill grid

* shade smooth

* edge splite: 平滑破碎區域

 
* 將面推平

 
### 點編輯
* f: 連接點
* shift alt LMB: loop select
* 顯示長度

* 錨點設定

### 線編輯
* shift+alt點線段:選擇loop
* 網格填滿

## 材質渲染
### 紋理
1. 新增材質屬性
2. shading新增image texture

3. 投影UV

4. 縮放UV符合大小

5. ctrl L調整UV map位置,有可能會跑掉
6. 調整後將物件scale設定成1

### 著色器
* 開啟shading編輯視窗(上方工具列選擇shading)
* SDF著色器可定義紋理外觀

* 圖片紋理
1. shift+A

2. 將紋理賦予物件

3. 可以用於粗糙和法向量效果設定
* UV編輯視窗

* 使用粗糙面要把color space改為non-color
 
* 混合兩種shader: Mix shade

* 法線材值設定

## 物件修改器
* Decimate: 降低物件的面數

* Bevel:斜角
可選擇用weight/angle方式

## 參考網站
* 紋理:plyhaven.com
* 技巧:https://kaicho-cg.com/geometry-node-master-serie/
* geometry node: https://www.youtube.com/watch?v=WOccqv3ymYw
* 課程:https://www.wingfox.com/c/8927_79782_24897
WFX15
{"metaMigratedAt":"2023-06-17T06:19:32.941Z","metaMigratedFrom":"Content","title":"Blender 骨架","breaks":true,"contributors":"[{\"id\":\"63b1c5d8-8363-4956-9420-102f1de55d83\",\"add\":11004,\"del\":335}]"}