由於本人英文較爛,邊翻譯用戶手冊邊學習。
用戶手冊
IK Components
Final IK 包含許多強大高速的IK組件
Aim
AimIK solver是一個對CCD算法(cyclic coordinate decent循環坐標下降算法)的修正,通過旋轉骨骼的層次結構,確定瞄准目標后子骨骼的Transform。
它不同於內置Animator的 SetLookAtPosition 和 LookAtIK 功能,因為它能對不一致的層級主軸進行精確的目標轉換。(because it is able to accurately aim transforms that are not aligned to the main axis of the hierarchy.)
AimIK能重定位角色動畫產生非常穩定並且自然的樣子,因此它在武器瞄准系統有巨大的潛能。使用AimIK我們能通過偏移單一的向前瞄准姿勢或動畫來瞄准目標,即使目標幾乎在角色身后。它僅僅是對四元數奇點做180度的偏移,solver不知道把脊椎轉向哪里。同LookAtIK一樣,AimIK提供一個clampWeight屬性來避免奇點問題。
AimIK還適用於旋轉限制,然而它比其它約束solvers更容易阻塞,鏈條應該有很強的約束性。
Aim提供了高速高精度,仍須記住把目標的位置與aiming Transform維持在一個安全的范圍。如果到traget的距離小於到aiming Transform的距離,solver會嘗試卷向自身,可能不會產生預期的結果。
步驟:
· 把AimIK組件添加到角色上
· 把所有的脊椎骨(spine)骨骼節點賦給AimIK組件的Bones (如Bip002 Spine1 Spine2 Spine3 Neck)
· 給Aim Transform賦值 (你想瞄准的目標的Transform)
· 確保Axis代表你想要瞄准的Aim Transform的當前軸 (axis)
· 設置Weight為1,點擊Play運行
改變瞄准目標 target
public AimIK aimIK; void LateUpdate () { aimIK.solver.IKPosition = something; }
改變Aim Transform
public AimIK aimIK; void LateUpdate () { aimIK.solver.transform = something; aimIK.solver.axis = localAxisOfTheTransformToAimAtTheTarget; }
在運行時增加AimIK
· 通過腳本添加AimIK組件
· 調用 AimIK.solver.SetChain()
AimIK slover 運行效果
Biped IK
IK系統標准的兩足角色旨在復制和增強