1. 머터리얼 애니메이션

- 머터리얼을 활용해 애니메션을 만들어 항공장애등을 만들어보자.
1-1. 사인 그래프
사인 그래프는 주기적으로 반복 되는 특성때문에 주기적으로 반짝이는 효과를 줄 수 있다. 사인 그래프에 '상수를 더하거나 곱하는 연산'을 통해 그래프를 변형하면, 더 밝게 반짝이거나, 더 빠르게 반짝이거나 꺼졌다 켜졌다 등 여러가지 효과를 줄 수 있다.
1. y = sin(x)

2. y = sin(x + a)

- a를 더하면, 사인그래프가 좌우로 수평 이동한다. 시간을 기준으로 보면 언제 진동이 시작할지 바꿀 수 있다.
3. y = sin(x) + b

- 사인 그래프 전체를 b만큼 위아래로 수직 이동한다.
- y = sin(x) + 1형태를 쓴다면, 0과 2사이를 진동하게 되고 이를 머터리얼과 연결해 빛의 세기를 조절할 수 있다. 이때는 빛은 꺼지지 않고 부드럽게 깜빡인다.
4. y = A * sin(x)

- sin(x)를 곱셈으로 스케일링하면, 그래프의 최대, 최소값이 달라진다.
- A가 커질수록, 빛의 세기가 더 큰 범위에서 변동한다. 반대로 A값을 작게 하면, 미세하게 깜짝여 "잔잔"한 변화를 줄 수 있다.
5. y = sin(B * x)

- 그래프에서 x에 B르 곱하면, 사인파의 반복 주기가 바뀌게 된다.
- B가 커질수록 주기가 빨라져 빠르게 깜빡이고, 작아질수록 주기가 느려져 천천히 깜빡인다.
1-2. 머티리얼의 생성

- 이름이 'M_BlinkingLight'인 머티리얼을 새로 생성한다.

- Time : 현재 게임 내 시간(Time)을 실시간으로 반환하는 노드.
- VectorParameter : RGB 값을 사용해 색을 선택할 수 있다.

- Time과 Sine노드로도 흰색, 일정주기로 반짝이는 머터리얼을 만들 수 있다.

- VectorParameter에서 R의 값을 1로하고 Time과 Sine 노드를 연결한다.
- Multiply 노드로 아웃풋 노드의 이미시브 컬러와 연결한다.
- Multply 노드로 선택한 색과 Sine 의 값이 블렌드 된다.
cf) 이미시브 컬러 : 언리얼 엔진에서 자체 발광 머터리얼은 이미시브 머터리얼이라고 한다. 이때 사용되는 색상 값을 이미시브 컬러라고 한다. 언리얼 엔진에서 이미시브 머티리얼 입력 사용하기 | 언리얼 엔진 5.7 문서 | Epic Developer Community


- 키보드 '1'을 누른채로 마우스 왼 클릭을 하면 상수 노드가 생성된다. 상수 노드를 오른쪽 클릭 > '파라미터 변환'을 선택하여 Offset 변수를 생성한다.
- Add 노드와 Sine 노드를 연결하면 sin(x + a) 형태가 돼어 시작 시간을 조절할 수 있다.

- 'Frequency' 변수도 같은 형태로 생성하고 Multiply로 곱해주면 sin(B * x)의 형태가 된다.


- 'Ceil' 노드를 사용해 일정하게 진행되는 값들을 0과 1로 변경하여 빛을 명확하게 할 수 있다.
- 'Brightness'값을 생성하여 한 번 더 곱해 전체 밝기를 조절할 수 있다.

- 빛이 발산할때는 광원을 기준으로 점차 옅어지면서 퍼져나게가 된다. 즉, 중앙이 가장 빛난다.

- Fresnel 노드
- 화면상에서 법선 벡터와 카메라(뷰 방향) 간의 각도 차를 바탕으로, 표면 가장자리(Edge) 부분이 두드러지도록 값을 계산한다.
- 0~1 범위에서, 시야각에 따라 가장자리 부분에서 값이 높아지는 형태의 마스크가 만들어진다.
- OneMinus 노드(1 - x)
- Fresnel의 값을 반전(Invert) 시킨다.
- Fresnel의 값이 0일 때 > 1이 됨
- Fresnel의 값이 1일 때 > 0이 됨
- 이제 가장자리가 어두워지고 중심부가 밝아진다.
- Fresnel의 값을 반전(Invert) 시킨다.
- Power 노드 + Falloff(변수)
- 하이라이트(밝아지는 영역)의 경계를 더 날카롭게 혹은 부드럽게 조정한다.
- OneMinus로 반전된 마스크가 점점 더 강한 대비를 갖게 된다.
- Falloff(변수) :
- "Exponent"로 들어가는 파라미터로, 숫자가 클수록 하이라이트가 좀 더 가파르고 날카롭게 형성된다.
- 숫자가 작으면, 가장자리 밝기가 좀 더 부드럽고 넓게 퍼진다.


1-3. 머티리얼 적용

- 완성된 머티리얼을 컨텐츠 브라우저에서 우클릭 > 인스턴스 생성을 통해 적용할 인스턴스를 생성한다.

- 생성된 머티리얼 인스턴스를 더블 클릭해 변수에 해당하는 값들을 자유롭게 변경 가능하다.

- 빌딩 블루프린트 꼭대기에 Sphere컴포넌트를 추가 > 생성한 머티리얼 인스턴스를 Sphere에 적용한다.


- 다른 스태틱 매시를 합쳐서 게임 진행을 도와주는 화살표를 만들수도 있다.
1-4. 플레이어 캐릭터에 등 달기



- 캐릭터를 예전에 진행하던 프로젝트에서 마이그레이션 한다.
- 캐릭터에 'SpotLight' 컴포넌트를 추가한다
- SpotLight의 위치 및 각도 빛의 강도 등을 원하는대로 조절한다.
- 이때 빛의 끝은 항상 바닥을 지나가도록 한다.
'프로그래밍 > Unreal Engine 5' 카테고리의 다른 글
| [Unreal Engine 5] 움직이는 발판 위 문제 (0) | 2025.12.03 |
|---|---|
| [Unreal Engine 5] 언리얼에서의 레벨 디자인 (0) | 2025.12.02 |
| [Unreal Engine 5] 강의 2-5 환경 디자인 - 머티리얼 & 라이팅 (0) | 2025.11.28 |
| [Unreal Engine 5] 강의 2-4 환경 디자인 - 랜드스케이프 & 폴리지 (1) | 2025.11.27 |
| [Unreal Engine 5] 강의 2-3 콜리전(Collision) (0) | 2025.11.24 |