본문 바로가기
Unity & C# Basics

C#책 공부일지 : Simple Animation, Animation Script

by 나만두 2023. 8. 17.

Unity Animation

 

애니메이션 창은 타임라인을 사용해 클립이라는 애니메이션 세그먼트를 만들고 관리한다.

애니메이터 창은 애니메이션 컨트롤러라는 오브젝트를 사용해 클립과 전환을 관리한다.

 

Unity에서 체력 아이템(Capsule) 한 개를 만들고 프리팹화 한다.

 

 

이후 코드 작성

 

 

RotationSpeed라는 회전 속도 변수를 100으로 선언한다.

itemTransform이라는 필드로 생성 후 Transform컴포넌트를 반환받는다.

 

이후 Update()인 반복되는 구문에 Rotate(회전)을 통해 x축을 기준으로 100*Time.deltaTime만큼 회전한다.

Time.deltaTime은 유니티에서 움직임 효과를 일정하게 만드는 방법으로 컴퓨터의 실행 속도와 상관없이 매끄럽게 보여준다.

일반적으로 이동이나 회전속도에 Time.deltaTime을 곱한다.

 

이를 체력아이템의 컴포넌트에 추가하면 x축을 중심으로 자연스럽게 회전한다.

 

 

 

다음은 유니티에서 제공하는 애니메이션 시스템을 이용해 회전시킨다.

 

용어 

Animation Controller :애니메이션 형성, 상태와 전횐을 관리

Animation Clip: 애니메이션의 구현데이터가 담겨져있는 모음

Animator: 컨트롤러, 클립을 관리하는 요소 

 

 

 

체력 아이템의 애니메이션을 생성한다.

Animator의 옵션에서 체력아이템의 프리팹에 적용시킨다.

 

 

저 빨간색의 녹화 버튼을 통해 애니메이션을 만들 수 있다. Add Property를 통해 Transform-Rotation을 선택 후 타임라인에 따라 z 축 회전을 변경한다. 0:00에는 0, 0:30에는 180, 1:00에는 360을 넣어 회전을 설정한다.

 

 

 

지금 이대로 실행을 하면 새로운 회전 사이에 딜레이가 발생한다. 

이를 해결하기 위해 키프레임 스무딩 옵션을 Auto로 변경해야한다.

 

 

 

 

 

이렇게 되면 애니메이션을 통해 z 축을 기준으로 자연스러운 회전이 가능하다.