Unity/수업내용
[Unity 3D] IK 역운동학
왹져박사
2023. 5. 22. 16:23
IK(역운동학)
보통 부모가 움직이면 자식이 움직이게. IK는 반대로 자식이 움직이면 부모가 따라가게
-총이 움직이면 손이 따라 움직임
https://docs.unity3d.com/kr/530/Manual/InverseKinematics.html
역운동학(IK) - Unity 매뉴얼
대부분의 애니메이션은 스켈레톤의 조인트 각도를 미리 정해진 값으로 회전하여 만듭니다. 자식 조인트의 포지션은 부모의 회전에 따라 변하므로 조인트 체인의 끝 점은 체인에 포함된 각 조인
docs.unity3d.com
동일한 위치상에 붙임
IKPass 체크 확인
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IKWoman : MonoBehaviour
{
[SerializeField]
Transform rightHand;
[SerializeField]
Transform leftHand;
[SerializeField]
[Range(0f, 1f)]
private float leftWeight = 1f;
[SerializeField]
[Range(0f, 1f)]
private float rightWeight = 1f;
protected Animator animator;
void Start()
{
this.animator = this.GetComponent<Animator>();
}
void Update()
{
}
private void OnAnimatorIK(int layerIndex)
{
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, rightWeight);
animator.SetIKPosition(AvatarIKGoal.RightHand, rightHand.position);
animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, leftWeight);
animator.SetIKPosition(AvatarIKGoal.LeftHand, leftHand.position);
}
}