개발/Unreal Engine / / 2022. 3. 21. 12:20

Learning Unreal 4 언리얼 공부일지 - 블루프린트 Timeline

반응형

Timeline

시간에 따라 자연스러운 움직임을 등을 구현하기 위해 Timeline이라는 노드를 사용할 수 있다.

 

타임라인에서는 이러한 식으로 시간에 따른 값의 변화를 설정할 수 있다.

 

타임라인의 그래프를 따라 회전하도록 하기 위해 timeline에 setActorRotation을 연결하였고, 

Lerp(Linear Interpolate)를 통해 timeline의 Door Rotation이라는 트랙의 값을 선형 보간하여 rotation값으로 넣음으로써 문의 회전 애니메이션이 자엽스럽게 진행되도록 하였다.

 

 

타임라인의 그래프의 점들을 선택하여 위 사진과 같이 그래프의 모양을 조정할 수 있다.

 

이렇게 reverse에 이벤트를 연결하면 타임라인의 역으로도 실행할 수 있다.

 

이렇게 타임라인에 트랙을 여러개 설정해서 각각에 트랙을 다른 오브젝트의 애니메이션에 사용할 수 있다.

 

위 사진에서는 PointLight의 Light component를 타깃으로 light의 intensity에 타임라인을 적용한 그래프이다.

잘려 안보이지만 OnActorBeginOverlap 이벤트를 실행하였을 때 타임라인의 두 트랙이 동시에 실행된다.

 

이번에는 Timeline을 이용해서 배경을 바꾸어 보자

 

참고로 블루프린트 클래스를 사용할 때 Light Shaft Occlusion의 경우 Occlusion Depth Range라는 값이 블루프린트 클래스에서 조절할 수 없는 값이다.

 

skysphere의 색이 바뀌지 않는다면?

위 사진의 오른쪽 아래에 Overall Color값을 아무리 조정해도 skySphere의 색이 바뀌지 않는다면 Colors Determinant By Sun Position 옵션을 false로 설정하자.

 

Trigger를 이용해 배경 변경하기

위 이벤트 그래프는 trigger에 들어가거나 나오면 timeline을 이용해서 서서히 배경이 바뀌는 기능을 구현한다.

timeline의 트랙값을 lerp의 alpha값으로 적용하여 (0~1 범위) 서서히 변경시킨다.

연결된 set 노드들은 각각 SkySphereBlueprint의 sun brightness, overall color, cloud opacity 값이다. 

SkySphereBlueprint의 경우 위 값을 변경하고 나면 Refresh Material을 호출해야 적용이 된다.

 

이러한 작업을 할 때 유의할 점은 trigger를 실행하기 전의 초깃값에 유의해야한다는 점이다. 

lerp값을보면 sunbright ness에는 A에 489라는 값으로 밝은 상태에서 B인 0으로 어두운 상태로 간다.

하지만 초깃값을 반대로 설정하고 시작하게 되면(위 상황에서는 A값에서 시작해야하지만 B의 값에서 시작한다는 의미이다), trigger를 실행하였을 때 서서히 변하는게 아니라 순식간에 값이 바뀌는 불상사가 발생한다.

 

이번에는 ExponentialHeightFog와 Light Source의 컴포넌트까지 포함하여 Timeline에 맞추어 변화하도록 구현하였다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유