Animator使用IK實現頭部及身體跟隨

我們在開發中往往會遇見需要視線或者說頭部跟隨一個物體移動的效果,這時就可以使用Animator中的IK Pass通道來完成。

假定我們有這麼一個需求,人的頭部(眼鏡需要跟隨這個球(Target)的移動來移動)

這時我們可以使用Animator中的IK Pass來實現需求。

  • 首先確定我們的角色的模型Rig的Animator Type爲:Humanoid,因爲我們會使用到Avatar Mask。

Paste_Image.png

  • 接着爲我們的角色綁定好Animator組件,並設置Animator的當前層使用了IK Pass。

Paste_Image.png

  • 接着設置我們的遮罩(Mask)什麼部分是可以變化的,這裏只需要頭動,使用Mask還涉及到多層的動畫融合。(這裏由於模型動畫原因不設置都行)

Paste_Image.png

  • 接着進行代碼控制。使用OnAnimatorIK回調函數進行實現。

Paste_Image.png

  • 其中SetLookAtWeight,看向的權重設置極其關鍵。它有許多重載,分別爲LookAt的主權重,和後面細分的身體權重,頭權重,眼權重還有腳權重。權重取值爲0-1,越接近1,表現越大。

Paste_Image.png

  • 如果想控制腳或者手的旋轉或者位置,同樣可以通過使用SetIK來實現。

Paste_Image.png

  • 效果實現:

     

    Ani.gif

接着配合Animation Event實現投擲功能。

  • 需要求出添加力的方向這裏使用向量的減法來實現,並將力單位化(這裏加了Vector3.up是爲了有拋物線效果,因爲小球有重力),用係數來方便的控制力的大小。

     

    Paste_Image.png

  • 效果實現:



作者:Levi_Wan
鏈接:https://www.jianshu.com/p/ae6d65563efa
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章