[Unreal Engine 5] 강의 2-6 환경 디자인 - 머티리얼 애니메이션

2025. 12. 1. 20:27·프로그래밍/Unreal Engine 5

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노드로도 흰색, 일정주기로 반짝이는 머터리얼을 만들 수 있다.

 

  1. VectorParameter에서 R의 값을 1로하고 Time과 Sine 노드를 연결한다.
  2. Multiply 노드로 아웃풋 노드의 이미시브 컬러와 연결한다.
  3. 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이 됨
    • 이제 가장자리가 어두워지고 중심부가 밝아진다.
  • 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
'프로그래밍/Unreal Engine 5' 카테고리의 다른 글
  • [Unreal Engine 5] 움직이는 발판 위 문제
  • [Unreal Engine 5] 언리얼에서의 레벨 디자인
  • [Unreal Engine 5] 강의 2-5 환경 디자인 - 머티리얼 & 라이팅
  • [Unreal Engine 5] 강의 2-4 환경 디자인 - 랜드스케이프 & 폴리지
hanong8
hanong8
hanong8 님의 블로그 입니다.
  • hanong8
    HaNong
    hanong8
  • 전체
    오늘
    어제
    • 분류 전체보기 (104) N
      • 프로그래밍 (101) N
        • Unreal Engine 5 (45)
        • C++ (22)
        • UML (2)
        • 자료구조 (2)
        • 알고리즘 (9)
        • 개발일지 (4)
        • DirectX11 (5)
        • Git (2)
        • 코드카타 (10) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
hanong8
[Unreal Engine 5] 강의 2-6 환경 디자인 - 머티리얼 애니메이션
상단으로

티스토리툴바