유니티

KeyFrame Animation

코다람쥐 2022. 2. 5. 12:47

1. 키프레임 창 띄우기

위의 경로로 들어가도 되고 아니면 Ctrl+6으로 단축키로 키프레임 창을 띄울 수 있다.

 

키프레임 창

2. 키프레임을 통한 애니메이션

애니메이션 키프레임을 넣을 아무 객체나 선택하면

 

Create버튼이 활성화 된다.

 

경로와 파일이름을 선택하는 화면이 나오는데 원하는 경로와 원하는 파일이름을 적고 저장을 누르면 된다.

 

저장을 누르면 애니메이션 파일과, 애니메이터 컨트롤러 파일이 생성이 된다.

 

인스펙터창에서 객체를 선택한 상태면 Add Property가 활성화된다.( 만약 비활성화 되어있으면 객체를 눌러줬는지 확인해보자)

 

Add Property에서 Property를 선택하면 아래와 같이 된다.

화살표를 누르면 프로퍼티의 세부항목을 볼 수 있다.

 

빨간 네모로 표시된 영역을 마우스 우클릭하면 Add Key가 뜨는 것을 볼 수 있다. Key를 통해서 프레임에서 특정한 애니메이션을 만들 수 있다.

주의) 영역이 여러 개 보이는데 햇갈리지 않게 구분할 것

 

x축의 위치를 움직여보고 싶다면

0프레임에서 x의 위치를 0으로 두고

60프레임에서 x의 위치를 5로 둔다면

Cube는 (0, 0, 0)에서 (5, 0, 0)으로 움직이는 애니메이션을 재생할 것이다.

 

3. Curves기능

만약 Curves기능을 활용하면 부드럽게 움직이는 것을 표현이 가능하다.

예를들어, 자동차는 브레이크를 밟을 때 관성에 의해서 서서히 감속하는 것을 볼 수 있다.

 

자동차의 브레이크와 같은 애니메이션을 부드럽게 표현하기 위해 Add Key를 수십개 만들어서 처음에는 키를 넓게 배치했다가 마지막에 갈 수록 키를 촘촘하게 배치하는 방법을 떠올릴 수 있다. 하지만 이러한 방법은 시간을 정말 많이 소비할 것이므로 그리 좋은 방법은 아니다.

그럴 때 curves기능을 활용하여 점의 위치를 알맞게 배치하면 몇 개의 Key로도 자동차 감속과 같은 부드러운 애니메이션을 표현할 수 있다.

 

4. Keyframe Record기능

모든 파라미터 값을 일일이 직접 설정하는 것은 어찌보면 힘들 수도 있다.

그럴 때 레코드 기능을 이용하여 원하는 프레임에서 객체의 상태만 변화시키면 알아서 키프레임에 변화한 객체의 모든 애니메이션의 상태가 저장된다.

Record기능

5. Animaiton Event

애니메이션 이벤트는 애니메이션에 특정한 기능을 연동시킬 때 좋다.

예를들어, 걷는 애니메이션에 뚜벅뚜벅 소리를 연동시키고 싶은 상황에서 만약 20프레임과 40프레임에서 발과 땅이 겹쳐지는 모션이 나온다고 했을 때

20프레임과 40프레임에 애니메이션 이벤트를 추가시켜서 뚜벅뚜벅 거리는 소리를 넣어주면 된다.

 빨간색 네모로 표시된 영역을 마우스 우클릭하면 Add Animation Eevent가 뜨는 것을 볼 수 있다.

주의) Add key영역과 햇갈리지 않기.

 

원하는 프레임(현재는 22프레임)에 이벤트를 추가하면 파란 네모가 생긴다.

 

파란네모를 클릭하면 인스펙터 창에 아래와 같이 뜬다.

Function은 객체에 귀속되어 있는 함수 어떤 것이라도 불러올 수 있다.

 

시험을 위해 스크립트 파일을 생성하고 TestEventCallback()함수를 임의로 정의하였다.

CubeEventTest.cs

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

public class CubeEventTest : MonoBehaviour
{
    void TestEventCallback()
    {
        Debug.Log("Event Received!");
    }
}

 

실행을 해보면 애니메이션의 22프레임이 될 때마다 TestEventCallback()함수가 실행되는 것을 볼 수 있다.