[24.03.05]Unity - IK

손지·2024년 3월 5일
0

Unity

목록 보기
22/44

애니메이션 레이어에 Base레이어에 톱니바퀴 누르고 IKpass를 체크해두고
스크립트 IKExample을 만든다음 기본캐릭터에 붙여줍니다.

그리고 3dobject로 sphere하나 만든다음 위치 리셋해줍니다.
콜라이더도 삭제하고 크기를 0.2로 한다.

그리고 이렇게 위치 해줍니다.
그리고 구 하위 오브젝트로 빈 오브젝트 하나 만들어주고,
GrabPoint로 만들어 줍니다.

그리고 위치를 Y : 0.5 로 줍니다.

IKExample.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class IKExample : MonoBehaviour
{
    [SerializeField] private Transform targetTr = null;
    [SerializeField] private Transform grabPtTr = null;

    [SerializeField, Range(0f, 1f)] private float weight = 1f;
    private Animator anim = null;

    private void Awake()
    {
        anim = GetComponent<Animator>();
    }

    private void OnAnimatorIK(int _layerIndex)
    {
        anim.SetLookAtWeight(weight);
        anim.SetLookAtPosition(targetTr.position);

        anim.SetIKPositionWeight(AvatarIKGoal.LeftHand,weight);
        anim.SetIKPosition(AvatarIKGoal.LeftHand, grabPtTr.position);

        anim.SetIKRotationWeight(AvatarIKGoal.LeftHand, weight);
        anim.SetIKPosition(AvatarIKGoal.LeftHand, grabPtTr.position);
    }
}

스크립트를 넣어주면

공 위치가 바뀌면 시선과 팔이 따라옵니다.

profile
게임 개발자가 될사람

0개의 댓글

관련 채용 정보