본문 바로가기
Study/Unity

[Unity] AnimationCurve

by chobbo 2024. 5. 27.

AnimationCurve

- 애니메이션의 Keyframe을 사용하여 값을 보간하는데 사용되는 클래스

- 시간에 따라 값을 부드럽게 변화시키는 커브를 정의할 수 있음

 

- 애니메이션 클립의 모든 프로퍼티 (아래 사진에서 왼쪽 목록들) 가 가질 수 있음

애니메이션 창

- 시간에 따라 해당 프로퍼티가 변경되는 방식을 제어하는 것!

 

- 유니티 애니메이션에서는 모드를 선택할 수 있다. 

프로퍼티 목록 아래에서 선택 가능

도프 시트 모드의 애니메이션 뷰에서는

각 프로퍼티의 애니메이션 값이 선형 트랙으로만 표시되지만

커브 모드에서는 그래프에서 선으로 시각화된 프로퍼티 값의 변화를 확인할 수 있다

어떤 모드를 사용하든 커브는 여전히 존재!

도프 시트 모드는 키프레임이 발생한 시점에만 데이터를 보여주는

단순화된 뷰를 제공할 뿐이다.

 

그렇다면 여기서 키프레임이란?

 

Keyframe

- 시간에 따른 값을 정의하는 점

- 시간과 해당 시간에 대응하는 값으로 이루어짐

- 각 key는 Curve Editor 의 커브에 작은 마름모 기호,

    이 key를 가진 프레임을 keyframe 이라고 함

 

- 아래 버튼을 눌러 키프레임 추가 가능

 

보간 방식

- 인접한 키프레임 사이의 값을 보간하는 방법을 지정

- 기본적으로는 Cubic Bezier 보간이 사용되며, 선형, 스텝, 등 다양한 보간 방식 존재

 

 

AnimationCurve 사용 방법

1. 새로운 키프레임 추가

// 애니메이션 커브 선언
private AnimationCurve animationCurve = new AnimationCurve(); 

// 커브에 새로운 키프레임 추가
animationCurve.AddKey(0f,0f);

animationCurve.AddKey(시간, 값) 형태로 사용

 

2. 특정 시간에 해당되는 값을 보간하여 반환

// 시간 변수 
float time = Time.time;
// 시간에 따라 값을 보간
float interpolationVal = animationCurve.Evaluate(time);

animationCurve.Evaluate(시간) 형태로 사용

-> 특정 시간의 값을 보간하여 반환해주는 메서드

 

 

 

 

 

출처 - 유니티 공식문서

 

애니메이션 커브 사용 - Unity 매뉴얼

애니메이션 클립 에서, 모든 애니메이션 가능 프로퍼티는 애니메이션 커브 를 가질 수 있습니다. 이것은 애니메이션 클립이 시간에 따라 해당 프로퍼티가 변경되는 방식을 제어함을 의미합니다

docs.unity3d.com

 

'Study > Unity' 카테고리의 다른 글

[Unity] Mathf  (0) 2024.05.29
[Unity] TMPRO 한글 Import 하는 방법  (0) 2024.05.27
[Unity] Raycast  (0) 2024.05.24
[Unity] Rigidbody - ForceMode  (0) 2024.05.24
[Unity] 스카이박스  (0) 2024.05.24