LookAt IK可用于任何角色或其他骨骼層次結(jié)構(gòu)募闲,以旋轉(zhuǎn)一組骨骼以面向目標(biāo)笔喉。
請(qǐng)注意尸诽,如果LookAtIK不符合您的要求忽孽,您還可以使用非常相似的AimIK绑改,但提供一組不同的參數(shù),以使角色(尤其是非Biped)查看目標(biāo)兄一。
使用步驟:
- 將LookAtIK組件添加到根GameObject厘线。 GameObject的前軸將是前進(jìn)方向。
- 將脊柱出革,頭部和眼睛骨頭分配到組件上造壮。
- 運(yùn)行
使用腳本:
public LookAtIK lookAt;
void LateUpdate () {
lookAt.solver.IKPositionWeight = 1f; // The master weight
lookAt.solver.IKPosition = something; // Changing the look at target
// Changing the weights of individual body parts
lookAt.solver.bodyWeight = 1f;
lookAt.solver.headWeight = 1f;
lookAt.solver.eyesWeight = 1f;
// Changing the clamp weight of individual body parts
lookAt.solver.clampWeight = 1f;
lookAt.solver.clampWeightHead = 1f;
lookAt.solver.clampWeightEyes = 1f;
}
在運(yùn)行時(shí)添加LookAtIK:
- 通過腳本添加LookAtIK組件
- 調(diào)用LookAtIK.solver.SetChain()
組件參數(shù):
- timeStep - 如果為零,將更新每個(gè)LateUpdate()中的求解器骂束,用于骨骼帶動(dòng)畫時(shí)的情況耳璧。 如果大于零,將按頻率更新展箱,以便求解器將在所有對(duì)象上同時(shí)到達(dá)其目標(biāo)旨枯。
- fixTransforms - 如果為true,則將解算器使用的所有Transforms修復(fù)為每個(gè)Update中的初始狀態(tài)混驰。 這可以防止沒有動(dòng)畫骨骼和animator的剔除的問題攀隔,并且性能成本很低。
求解參數(shù):
- target - 目標(biāo)transform账胧。如果已分配竞慢,則解算器IKPosition將自動(dòng)設(shè)置為目標(biāo)的位置
- weight - 求解器的主要權(quán)重(乘以所有其他權(quán)重)
- bodyWeight - 旋轉(zhuǎn)脊柱骨骼的權(quán)重
- headWeight - 旋轉(zhuǎn)頭骨的權(quán)重
- eyesWeight - 旋轉(zhuǎn)眼骨的權(quán)重
- clampWeight - 夾緊脊柱骨骼的旋轉(zhuǎn)。 0是自由旋轉(zhuǎn)治泥,1是完全鉗位到無效果
- clampWeightHead - 夾緊頭骨的旋轉(zhuǎn)筹煮。 0是自由旋轉(zhuǎn),1是完全鉗位到無效果
- clampWeightEyes - 夾緊眼骨的旋轉(zhuǎn)居夹。 0是自由旋轉(zhuǎn)败潦,1是完全鉗位到無效果
- clampSmoothing - 用于夾緊的正弦平滑迭代次數(shù)本冲,使其更平滑
- spineWeightCurve - 脊柱骨骼之間的標(biāo)準(zhǔn)化重量分布。第一個(gè)脊骨骨骼位于“time”為0處劫扒,最后一個(gè)脊椎骨骼位于1
- head - 頭骨
- spine - 脊椎骨骼按降序排列(父親優(yōu)先)檬洞,可以跳過骨骼
- eyes - 眼睛的骨頭