시간에 따라 변화하는 간단한 변수를 만들고 싶을 때 타임라인 기능을 이용한다.
블루프린트 Event Graph에서 우클릭 후 add timeline
버튼을 이용해 타임라인 노드를 생성할 수 있다.
각 핀의 역할은 다음과 같다.
New time
핀과 연계하여 현재 시간을 임의로 조정타임라인 노드를 더블클릭해 타임라인 에디터 창을 열 수 있다.
Add
버튼을 통해 새로운 이벤트를 만들 수 있다. Float, Vector, Event Color 4가지 이벤트가 있다.Length
: 타임라인의 재생 길이 설정Use Last Keyframe
: 이 옵션을 끄면 시퀀스의 마지막 프레임이 무시된다. 애니메이션 루프에서 건너뛰는 것을 방지할 수 있다.Autoplay
: 이 옵션을 켜면 별도의 입력이 없더라도 레벨이 시작되자마자 재생된다.Loop
: 이 옵션을 켜면 Stop 핀이 입력될 때까지 무한 반복된다.Replicated
: 타임라인 애니메이션이 클라이언트에 복제된다.트랙을 추가하면 키를 추가해서 커브를 만들 수 있다.
트랙의 이름을 설정할 수 있고, 외부에서 트랙을 import해와서 사용할 수도 있다.
오른쪽 화면에서 세로축은 값, 가로축은 시간이다.
특정 좌표를 Shift + 클릭함으로써 새로운 키를 생성할 수 있고 시간과 값을 직접 입력 가능하다.
이를 응용해서 간단하게 깜빡거리는 조명을 만들 수 있다.
1초 동안 0에서 1로, 1에서 0으로 총 2초에 거쳐 증감하는 Float 커브를 만들었다.
그리고 계속 깜빡거리게 하기 위해, 자동으로 시작되게끔 하기 위해 autoplay와 loop 속성을 켜주었다.
이제 위와 같이 노드를 구성했다.
PointLight 객체에서 set Intensity
노드를 이용해 밝기를 조절할 수 있는데 이를 Lerp 노드를 거쳐 연결한다.
Lerp 노드란 선형 보간법을 뜻하는 Linear Interpolation의 줄임말이고, 선형 보간법이란 두 끝점을 정하고 그 점 사이를 연결한 직선 상의 값을 이용하는 방법을 뜻한다.
쉽게 말하면 절대적인 값을 변경하는 것이 아닌, 두 지점 사이의 '퍼센티지', '비율'을 이용하겠다는 것이다.
이렇게 직접 값을 대입하지 않고 보간을 사용하는 이유는 확장성을 용이하게 하기 위함이다.
Alpha 값에 0에서 1 사이의 값을 넣어주면 양 끝점인 A B 사이에 알맞은 비율로 값이 결정된다.
예컨대 A가 0이고 B가 4라고 가정하면 알파 값이 0.5라면 2가, 0.25라면 1이 도출된다.
조명의 밝기를 0에서부터 100까지 깜빡거리게 한다고 가정하고 값을 대입해 주었다. 이제 컴파일+저장 후 실행해보면 조명이 1초 간격으로 꺼졌다 켜졌다를 반복함을 확인할 수 있다.