潮州市网站建设公司,林甸网站建设,广告传媒公司简介范文,附近设计公司反向动力学Inverse Kinematics 反向动力学#xff0c;简称IK。相较于正向动力学#xff0c;反向动力学旨在子级对父级产生的影响。 使用IK#xff0c;可以实现根据目标位置或方向来计算并调整角色的关节#xff08;骨骼#xff09;链#xff0c;以使角色的末端#xff…反向动力学Inverse Kinematics 反向动力学简称IK。相较于正向动力学反向动力学旨在子级对父级产生的影响。 使用IK可以实现根据目标位置或方向来计算并调整角色的关节骨骼链以使角色的末端如手臂、腿部等达到预期的位置或取向。 通过使用 Unity 的 IK 功能你可以实现各种复杂的角色动画效果如角色抓取、足部对齐、手臂跟随等。
前言使用IK时需要到动画器图层设置勾选IK选项 一、实现角色头部持续看向某物体
1. 在玩家角色的脚本中添加所看向的目标物体 public GameObject target;public Transform target_trans;2. 将所视的目标物体拖拽绑定 3. 编写有关IK的方法 OnAnimatorIK private void OnAnimatorIK(int layerIndex)//参数layerIndex设置动画层数{animator.SetLookAtWeight(1);//设置头部权重animator.SetLookAtPosition(target_trans.position);//看向目标物体的位置}4. 实现效果如下 移动角色时注释立方体 二、实现手部IK动作 private void OnAnimatorIK(int layerIndex)//参数layerIndex设置动画层数{//手IK位置权重animator.SetIKPositionWeight(AvatarIKGoal.RightHand,1);//手IK旋转权重animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1);//设置右手IK指向animator.SetIKPosition(AvatarIKGoal.RightHand, target_trans.position);//设置右手IK旋转animator.SetIKRotation(AvatarIKGoal.RightHand, target_trans.rotation);}实现效果如下