Ch1. 맵 생성 & 라이팅 세팅(+ 라이트 모빌리티, 태양, 하늘)

Date:     Updated:

카테고리:

태그:

인프런에 있는 배틀로얄 게임을 만들어보며 배우는 언리얼 게임 개발 강의를 듣고 정리한 필기입니다. 😀 강의 들으러 가기


Chapter 1. 언리얼 프로젝트 준비

🚕 프로젝트 세팅

편집 - 프로젝트 세팅

image

프로젝트 - 패키징 - 블루프린트

이 옵션을 켜주면 블루프린트를 C++ 코드로 변환하여 컴파일하여 배포한다. 즉 이 옵션을 켜주면 C++에 준수하는 성능을 낼 수 있다. C++ 의 80~90% 성능까지 따라 잡는다. Inclusive 는 모든 블루프린트에 대해 적용되며, Exclusive는 선택된 블루프린트들에 대해서만 적용된다.(C++로 변환할 블루프린트들을 배열 원소로 넣음)

image

엔진 - 렌더링 - Lighting

이 프로젝트에서는 Static Lighting 을 하지 않고 Dynamic Lighting 을 할 것이다. 따라서 체크 해제해주어 게임 플레이 전 라이트맵을 미리 생성하지 않는다.


🚗 맵 생성과 라이트 세팅

맵 생성

빈 레벨 Jungle을 생성하고 연다.

빈 레벨이므로 라이팅 조차 없는 상태이므로 아무것도 보이지 않고 깜깜한 상태다. 액터를 배치해도 보이지 않는다. 라이팅 포함 모드인데 라이팅이 없기 때문에 그렇다.

image

참고로 이렇게 라이팅 제외를 해주면 라이팅 없어도 액터 본연의 모습과 색이 나오게 된다.


태양광 만들기 (라이트 세팅)

Directional Light를 추가해준다.

image

보통 햇빛 같은 게임 월드 내 전체적인 빛은 Directional Light 사용을 많이 한다.

image

빛이 생기니 이렇게 그림자가 생기고 액터가 보이기 시작했다!

라이트 모빌리티

image

  • Directional Light의 디테일 패널의 트랜스폼을 확인하면 이런 모빌리티를 확인할 수 잇다.
    • Static 라이트
      • 어떤 식으로든 움직이거나 변경할 수 없도록 디자인된 완벽한 정적 라이트
      • 게임 플레이 전에 미리 전부 연산하여 라이트맵을 딱 한번 구워놓는 방식이기 때문에 게임 실행중에 성능에 영향을 끼치지 않는다. 성능이 가장 좋다. 실행 중에 라이트 연산을 하지 않기 때문이다.
        • 실행 시간 중에, 즉 Dynamic 하게 빛의 속성을 바꿀 수 없다. 미리 구워놓은 라이트맵에 따라 진행되기 때문에 빛은 어떤 속성도 플레이 중에 변하지 않는다.
      • 다만 레벨 규모가 크다면 라이트맵을 굽는게 정말 오래걸릴 것이다..!
    • Stationary 라이트
      • Static + Dynamic 짬뽕
        • 빛의 몇몇 속성에 대해서만 라이트맵을 굽고 나머지는 런타임에 결정한다.
      • 실행 시간에 빛의 색이나 밝기(직사광)를 바꿀 수는 있어도 간접광, 빛의 이동, 회전, 영향력 크기는 미리 실행 전에 라이트맵을 구워놓는다. 이는 실행 중에 바꿀 수는 없다.
    • Movable 라이트 👉 이거 선택!
      • 빛의 모든 속성이 게임 실행 중에 결정되므로 라이트맵을 전혀 굽지 않는다.
        • 당연히 성능이 떨어진다.
      • 게임 플레이 중에도 빛의 속성들이 변경될 수 있다.


하늘 만들기

image

언리얼에서는 하늘 블루프린트를 지원한다. BP_Sky_Sphere을 드래그 하면 끝!

image

언리얼에서의 하늘 블루프린트 BP_Sky_Sphere는 미리 개발자들이 하늘을 원하는대로 변경하여 사용할 수 있도록 이렇게 public 변수들을 열어두었다. Directional Light Actor 변수에 위에서 배치한 Directional Light(Sun)를 할당해준다. 이 하늘의 빛의 기준이 될 해를 지정해준 것이다.


Ambient Light

image

해와 하늘이 추가됐지만 그림자는 여전히 부자연스럽다. 직사광을 받지 않는 쪽은 아예 검정색이다. 스카이 라이트를 추가해주면 된다.

image

라이트의 종류 중 하나인 스카이 라이트를 배치해주니 자연스럽게 하늘 색에 따라 이런 간접광이 들어가게 되었다.

image

태양의 각도(Directional Light의 회전값)에 따라 오전 오후 노을 밤 등등 시간대가 결정될 수 있다. 태양의 각도에 따라 하늘의 상태가 바뀌게끔 하려면?

하늘의 경우 Refresh Material을 한번 누르기만 하면 현재의 해의 각도를 기준으로 하늘이 새롭게 바뀐다. 노을진 하늘이나 밤이 되기도 한다. 이렇게 해의 각도를 바꾸고 나면 수동으로 하늘을 갱신시켜주어야 한다.

image

스카이라이트의 경우 씬 리캡처를 한번 클릭해주면 변경된 하늘에 따른 빛으로 갱신된다.


Post Process Volume

image

카메라가 이 Post Process Volume이라는 볼륨안에 들어가 있을 때만 어떤 영상적인 후처리가 적용된다. 뽀샵같은 그런 후처리!

image

그러나 어떤 크기의 볼륨에만 적용하기보다는 맵 전체에 전역적으로 후처리를 적용시키고 싶기 때문에 볼륨 세팅에서 Infinite Extent 를 체크해준다. 특정 바운더리가 있는 볼륨 안에서만 적용되는게 아니라 월드 전체를 커버하도록.

image

하늘을 바라보면 계속해서 밝아지면서 하얗게 타는 현상이 발생하여 최소, 최대 밝기를 다음과 같이 Lens 에서 조정해주었다.



🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

UE4 Lesson 3 카테고리 내 다른 글 보러가기

댓글 남기기