오늘 공부한 내용📝
오늘은 애니메이션 커브를 이용한 유니티 3d프로젝트에서 낮과 밤을 표현하는 방법에 대해 공부했다. 애니메이션 커브는 쉽게 말해
수학적 사고를 곁들인 애니메이션이라고 생각하면 될 것 같다. 기술적으로 접근한다면 애니메이션 커브는 시간에 따른 값의 변화를 부드럽게 조정할 수 있는 기능이다.
애니메이션 커브
애니메이션 커브는 시간(Time)을 x축으로, 값(Value)를 y축으로 설정한 그래프로 표현 된다.
애니메이션 커브의 특징
- 시간과 값의 관계:
- 애니메이션 커브에서 x축은 시간(Time), y축은 해당 시간에서의 값(Value)을 나타냅니다.
- 예를 들어, 낮과 밤을 표현하는 프로젝트에서는 낮 시간이 지나면서 태양의 밝기가 점점 줄어드는 자연스러운 변화를 커브로 설정이 가능하다.
- 부드러운 값 변화:
- 애니메이션 커브는 보간을 활용해서 시간에 따라 부드럽게 변화를 줄 수 있다. 키프레임을 통해 특정 시간에 특정한 값을 조절하고 이를 통해 값 변화를 나타낼 수 있다.
- 수학적 사고:
- 수학 공식을 사용해 특정 값을 구하고 이를 통해 개발을 해야하는 상황에서 유용하게 사용 될 수 있다 .
애니메이션 커브를 활용한 낮과밤 조명 설정
//시간을 구하는 로직
timeRate = 1.0f / fullDayLength; //하루의 기준이 되는 초를 구함 (하루의 진행비는 0.0 ~ 1.0f)
time = (time + timeRate * Time.deltaTime) % 1.0f; // % 1.0f 를 통해 진행비를 넘지 않게 해줌
//Evaluate()는 x축(특정 시간값)에 해당하는 y축(값) 결과값을 반환 하는 메서드
float sunIntensity = sunIntensityCurve.Evaluate(time); //time에 따른 값으로 설정
Evaluate의 활용
Evaluate를 사용하면 시간에 따라 값이 부드럽게 변화하게 할 수 있고 AnimationCurve에 설정된 곡선 값을 통해 직접 값을 계산하지 않고도 x축에 지정된 y축 값을 가져와 쉽게 사용할 수 있다.
😺마무리
애니메이션 커브는 처음 접해보는 개념이라 어렵게 느껴졌는데 TIL을 통해서 개념을 한번 정리하니 조금 더 친숙하게 온 것 같다 . 낮과 밤의 조명을 설정하는 것 외에도, 물체를 시간에 따라 자연스럽게 움직이게 하는 등 다양한 로직에도 적용할 수 있을 것 같다 유니티를 공부하면서 여러 기능들의 사용법에 익숙해지는 것이 중요하다고 느껴진다. 특히 애니메이션 커브는 적어도 이런 기능이 있었고 이때 사용하면 좋겠다 정도는 확실하게 잡고가면 좋은 기능 인 것 같다!
'내일배움캠프' 카테고리의 다른 글
내일배움캠프: 유니티 3D에서 Ray와 Raycast로 충돌 감지하기 (0) | 2024.10.30 |
---|---|
내일배움캠프: InputSystem Rebinding (인풋시스템을 활용한 키 리바인딩) (0) | 2024.10.25 |
내일배움캠프: 딕셔너리에서 데이터가 찾아지는 과정 (0) | 2024.10.23 |
내일배움캠프21: 람다식과 Func을 활용한 효율적인 코드 작성법 (2) | 2024.10.14 |
내일배움캠프 19일차 : SOLID 원칙 (0) | 2024.10.10 |