[Unity菜鳥] Final IK


由於本人英文較爛,邊翻譯用戶手冊邊學習。

用戶手冊 

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系統標准的兩足角色旨在復制和增強

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM