다이나믹 머티리얼을 통해 게임 중 실시간으로 머티리얼 색상을 변경시킬 수 있다.
해지는 모습을 보여주기 위해 하늘의 색을 서서히 바꾸려고 한다.
보통 낮-밤을 구현할 때에는 하루 시간만큼 회전 각도를 계산해서 해를 서서히 회전시키는데, 내 프로젝트의 경우 해로 인해 그림자가 커지면 곤란하고 창 틈으로 시간이 흘러 저녁이 되어가고 있다는 것만 보여주면 되기 때문에 하늘의 색만 변경하려고 한다.

전체 구현은 다음과 같다.
위 노드들을 레벨 블루프린트의 BeginPlay에 연결해주었다.

하늘의 색을 바꾸기 위해서는 BP_Sky_Sphere의 Zenith Color을 바꾸어야 한다.
따라서 타깃으로 BP_Sky_Sphere->Sky Sphere Mesh를 연결해주었다.
만약 하늘이 아닌 일반 메시의 머티리얼 색상을 변경해주고 싶은 경우에도 Static Mesh를 연결해주면 된다.
Source Material에는 Sky Sphere Mesh의 머티리얼을 가져와 연결해주긴 했지만, 연결이 안 되어있어도 색은 바꾸는 데는 문제 없다.

타임라인 내 트랙은 다음과 같다.
컬러 트랙을 추가하여 색이 변경되길 원하는 시점에 키들을 추가해주었다.
내 프로젝트에선 하루가 5분, 즉 300초이기 때문에 트랙의 길이를 300으로 만들어주었다.
트랙 길이는 초(sec)를 기준으로 한다.

타임라인이 실행되는 동안에는 Set Vector Parameter Value 노드를 통해 하늘의 색이 서서히 바뀌도록 해주었다.
Set Vector Parameter Value 노드의 Value로 트랙을 연결하여, 실시간으로 트랙의 색상을 받아올 수 있도록 했다.
타임라인의 Update 핀에 연결해주어야 타임라인이 실행되는 동안 호출된다.
여기서 중요한 점은 Set Vector Parameter Value 노드의 Parameter Name이다.
Parameter Name에는 변경할 머티리얼의 파라미터명을 적어주면 된다.
머티리얼의 이름이 아니라 머티리얼의 파라미터명이다.

하늘의 색은 Zenith Color을 바꾸는 것이기 때문에, 예시를 위해 별도의 머티리얼을 가져왔다.
(이 머티리얼은 하늘의 색을 바꾸는 것과는 전혀 관련 없다.)
머티리얼에 들어가면 이런 파라미터들이 있는데 보통 여러 개이지만, 경우에 따라 한 개이기도 하다.

Texture Sample의 경우 우클릭 하면 파라미터로 변환이 가능하고, 변환 후 이름을 수정할 수 있다.
일반적인 파라미터는 위와 같이 디테일 창에서 수정할 수 있다.
Set Vector Parameter Value는 바꾸려는 머티리얼의 파라미터를 이름으로 찾기 때문에, 파라미터 이름을 모두 새로 지어 구분해주는 것이 좋다.

이렇게 이름을 바꾸어주었다.
그럼 이제 Parameter Name에 이 머티리얼 파라미터(Color, Metallic, Normal) 중 바꾸길 원하는 하나의 이름을 넣어주면 된다.
만약 존재하지 않는 파라미터 이름을 잘못 넣어주면 Set Vector Parameter Value 노드가 실행되지 않아 머티리얼 색상이 변하지 않으니 주의하자.