본문 바로가기
유니티 공부/Unity

Unity - KeyFrame Animation(Key, Dope Sheet, Curves),Animation Event

by 코딩하는 돼징 2023. 2. 15.
반응형

 KeyFrame Animation

이미 만들어져있는 애니메이션을 사용하는 것이 아니라 게임 속에서 우리가 지정한 위치나 로테이션 같은 일련의 행동 지정

예를 들어) 게임 속에서 랜덤으로 움직이는 새, 구름


직접 Cube에대한 애니메이션을 한번 만들어보자

01 Add Property

Cube에서 어떤 것을 건드릴지 선택


02 애니메이션 창 확인

첫번째 검은 줄 우클릭은 애니메이션 이벤트


두번째 검은 줄 우클릭은 원하는 프레임에 키를 추가 


3. Key

애니메이션에서 어떤 속성이 변할 떄 그변 화를 나타내는 시점이다. 이를 통해 애니메이션을 부드럽게 만들 수 있다.

 

01 Dope Sheet

애니메이션의 키프레임과 타임라인을 표시한다. 각 키프레임은 특정 속성의 변화를 나타내며, 타임라인에서 해당 프레임의 위치를 보여준다. 이를 통해 애니메이션의 타이밍을 조절하고 키프레임 간의 간격을 조절할 수 있다.

원하는 위치에 원하는 Property에서 AddKey를 선택할 수 있다. 그렇게 되면 모든 속성에 Key가 생기는 것이 아니라 관련 속성에서만 Key가 생긴다.

오른쪽부분을 보면 마름모가 5개만 생겼음을 확인할 수 있다.


02 Curves

애니메이션의 변화를 시각적으로 미세하 조정할 수 있다. 각 속성에 대한 곡선은 시간에 따른 해당 속성의 변화를 보여준다. 이를 통해 보간(Interpolation)을 사용할 수 있다.

수정 후 Dopesheet를 가보면 조정된 Key값이 추가되었음을 확인할 수 있다.


03 녹화

이를 사용하면 하나하나 Key 지정할 필요없다. 바로 Key값이 찍힌다.


4. Animation Event

애니메이션 안에 어떤 특정 프레임 지점에 이벤트를 생성하면 그 시점에 사용자 정의 함수를 호출하도록 할 수 있다. 이를 통해 애니메이션에 따라 게임 오브젝트의 동작을 제어하거나 사운드를 재생하는 등의 작업을 수행할 수 있다.

Animation Event를 추가했다면 밑에 파란색 처럼 표시된다.


01 Animatation Controller를 설정한 게임 오브젝트 클릭시


02 Animation Controller를 설정하지 않은 게임 오브젝트 클릭시


03 void 함수 출력

void TestEvenCallBack()
{
    Debug.Log("Event Received");
}

다시 Animation Event을 클릭하고 Function을 누르면 cubeEvenTest가 추가된것을 확인할 수 있다.

로그가 잘 출력되는 것을 확인할 수 있다.


04 정수 값 사용하고 싶은 경우

void TestEvenCallBack(int a)
{
    Debug.Log($"Event Received {a}");
}

 

 

 

 

 

 

 

 

 

 

참고 :  본 내용은 MMORPG  PART3 강의를 수강하여 작성하였습니다.

https://www.inflearn.com/course/mmorpg-%EC%9C%A0%EB%8B%88%ED%8B%B0/dashboard

 

 

 

 

반응형

댓글