언리얼(Unreal) 에너지 쉴드 만들기

Six Root·2022년 9월 28일
1

언리얼 엔진 공부

목록 보기
5/15

에너지 쉴드 만들기

1. 분석하기

  1. 반투명하다. 반대편도 보인다.
  2. 오브젝트의 가장자리가 빛나듯이 보인다.
  3. 오브젝트가 맞닿는 경계가 하얗게 보인다.
  4. 위에서 아래로 흐르듯이 스캔을 하듯이 선이 흘러간다.

기본순서: 모양을 낸다 -> 색을 입힌다 -> 다듬기

2. 머티리얼 기본 설정

  1. 반투명하다. 반대편도 보인다
  1. 머티리얼을 생성한 후 디테일 창에 Material, Blend Mode 항목이 기본값인 Opaque(불투명)을 Translucent(반투명) 상태로 변경한다.
  2. 스타터콘텐츠의 T_Tech_Hex_Tile_M 텍스쳐를 드래그 해서 가져온다.
  3. 텍스쳐를 확인해보면 G채널이 가장 흑백이 명확하기 때문에 G채널을 Opacity(투명도) 노드에 연결한다. White(1)은 불투명, Black(0)은 투명하게 처리가 된다.
  4. 디테일 창에서 Two Sided 항목을 체크하게 되면, 쉴드 안쪽에서 보는 면도 그려지게 된다.
    ※ 모든 엔진은 투명한걸 어려워함. 무겁다.
    엔진에서 뒷부분은 대부분 그리지 않는다.

3. 프레넬(Fresnel)을 활용한 표현

  1. 오브젝트의 가장자리가 빛나듯이 보인다.

Fresnel: 상하좌우 어느 방향이든 상관없이 90도로 기울어져 있다면 1(White, 불투명)을 출력해주는 노드.
카메라 방향과 수직이 될 수록 불투명하게 보여서 띠가 이루어지는 것처럼 보임
외곽에 역광이 그려진것처럼도 표현할 수 있다.

Exponent: 가장자리 빛나는 두께
Base Reflect Fraction: 가운데가 비어보이는 효과

4. 뎁스 페이드(Depth Fade)를 활용한 표현

  1. 오브젝트가 맞닿는 경계가 하얗게 보인다.
  1. Depth Fade: Opacity 노드에 연결하면 경계선 부분을 안보이게 투명하게 함.

  1. 반대로 되야하기 때문에 1-x (OneMinus) 노드를 사용해서 반전시킨다.

  2. Fresnel 노드와 반전된 Depth Fade 노드를 Add 노드로 합쳐서 Opacity에 연결한다.

  1. T_Tech_Hex_Tile_M 텍스쳐의 G 채널과 Fresnel을 곱한 값을 Depth Fade와 합친다.

5. 그물(텍스쳐) 크기를 작게 하려면?

  1. TextureCoordinate: UV 맵 크기를 조절하고, 커진 부분은 UV 좌표에 해당하는 텍스쳐를 기본적으로 반복한다.
    ※ U,VTiling: 배수 입력

  2. 아래 그림처럼 인스턴스에서 그물의 크기를 조절할 수 있도록 Parameter를 곱해주어 연결해줄 수도 있다.

6. 색 표현하기

  1. Constant 3 Vector 노드 두 개에 외형 색과 그물색을 넣고 LinearInterpolate로 서로 연결한다.
    LinearInterpolate
    알파의 하얀색 부분은 불투명 어두운 부분은 투명하게
    0에 가까우면 A를, 1에 가까우면 B를 잘 보여줌

  2. Alpha 값에는 5번까지 했던 값을 연결하고 BaseColor에 연결한다.

7. 좌표값을 응용한 시각화

  1. Absolute World Position: RGB x,y,z 방향을 색깔로 표현
    X축 방향으로는 Red. Y축 방향으로는 Green. 이렇게 단색인 이유는
    World Position의 값은(0~월드의 x값)으로 계속 늘어지만, 색이 표현하는 값은 (0~1)이 최대이기 때문이다.

    쉽게 말해 World Position 노드는 그 위치에 해당하는 Position 값이다.
    x,y,z 위치가 (10,0,0) 이라면 World Position 노드는 (10,0,0)을 반환한다.

  2. Component Mask: x, y, z 축 값을 분리할 수 있다. Z축에 해당하는 B 채널을 따로 분리한다.

  3. 분리한 값에 0.01을 곱해서 sine 노드에 연결한다.

  4. Power(제곱) 노드에 연결해서 Const Exponent 값을 조절하면 선의 두께가 조절된다.

  5. Saturate 노드를 연결해서 최적화를 해줄수도 있다.
    Saturate: 0 이하 값은 0으로, 1 이상의 값은 1로 변환해주는 노드

8. 타임(Time)을 활용한 표현

  1. 선이 위에서 아래로 움직여야 하기 때문에 타임(Time) 노드를 활용한다.

  2. 선이 움직이는 속도를 인스턴스에서 조절해주기 위해 Parameter 노드를 곱해준 후 sine 노드 앞에 값과 Add 노드로 연결해준다.

  3. Power(제곱)의 Exp 노드에 Const Exponent 값을 인스턴스에서 조절해주기 위해 Parameter 노드를 연결해준다.

9. 완성

  • Emissive Color 응용

10. 머티리얼 인스턴스화

profile
언리얼 전문가가 될 때까지 (중요한 건 꺾이지 않는 마음)

0개의 댓글