Ch1. 맵 생성 & 라이팅 세팅(+ 라이트 모빌리티, 태양, 하늘)
카테고리: UE4 Lesson 3
태그: UE4 Game Engine
인프런에 있는 배틀로얄 게임을 만들어보며 배우는 언리얼 게임 개발 강의를 듣고 정리한 필기입니다. 😀 강의 들으러 가기
Chapter 1. 언리얼 프로젝트 준비
🚕 프로젝트 세팅
편집 - 프로젝트 세팅
프로젝트 - 패키징 - 블루프린트
이 옵션을 켜주면 블루프린트를 C++ 코드로 변환하여 컴파일하여 배포한다. 즉 이 옵션을 켜주면 C++에 준수하는 성능을 낼 수 있다. C++ 의 80~90% 성능까지 따라 잡는다. Inclusive 는 모든 블루프린트에 대해 적용되며, Exclusive는 선택된 블루프린트들에 대해서만 적용된다.(C++로 변환할 블루프린트들을 배열 원소로 넣음)
엔진 - 렌더링 - Lighting
이 프로젝트에서는 Static Lighting 을 하지 않고 Dynamic Lighting 을 할 것이다. 따라서 체크 해제해주어 게임 플레이 전 라이트맵을 미리 생성하지 않는다.
🚗 맵 생성과 라이트 세팅
맵 생성
빈 레벨
Jungle
을 생성하고 연다.
빈 레벨이므로 라이팅 조차 없는 상태이므로 아무것도 보이지 않고 깜깜한 상태다. 액터를 배치해도 보이지 않는다. 라이팅 포함 모드인데 라이팅이 없기 때문에 그렇다.
참고로 이렇게 라이팅 제외를 해주면 라이팅 없어도 액터 본연의 모습과 색이 나오게 된다.
태양광 만들기 (라이트 세팅)
Directional Light
를 추가해준다.
보통 햇빛 같은 게임 월드 내 전체적인 빛은 Directional Light
사용을 많이 한다.
빛이 생기니 이렇게 그림자가 생기고 액터가 보이기 시작했다!
라이트 모빌리티
Directional Light
의 디테일 패널의 트랜스폼을 확인하면 이런 모빌리티를 확인할 수 잇다.- Static 라이트
- 어떤 식으로든 움직이거나 변경할 수 없도록 디자인된 완벽한 정적 라이트
- 게임 플레이 전에 미리 전부 연산하여 라이트맵을 딱 한번 구워놓는 방식이기 때문에 게임 실행중에 성능에 영향을 끼치지 않는다. 성능이 가장 좋다. 실행 중에 라이트 연산을 하지 않기 때문이다.
- 실행 시간 중에, 즉 Dynamic 하게 빛의 속성을 바꿀 수 없다. 미리 구워놓은 라이트맵에 따라 진행되기 때문에 빛은 어떤 속성도 플레이 중에 변하지 않는다.
- 다만 레벨 규모가 크다면 라이트맵을 굽는게 정말 오래걸릴 것이다..!
- Stationary 라이트
- Static + Dynamic 짬뽕
- 빛의 몇몇 속성에 대해서만 라이트맵을 굽고 나머지는 런타임에 결정한다.
- 실행 시간에 빛의 색이나 밝기(직사광)를 바꿀 수는 있어도 간접광, 빛의 이동, 회전, 영향력 크기는 미리 실행 전에 라이트맵을 구워놓는다. 이는 실행 중에 바꿀 수는 없다.
- Static + Dynamic 짬뽕
- Movable 라이트 👉 이거 선택!
- 빛의 모든 속성이 게임 실행 중에 결정되므로 라이트맵을 전혀 굽지 않는다.
- 당연히 성능이 떨어진다.
- 게임 플레이 중에도 빛의 속성들이 변경될 수 있다.
- 빛의 모든 속성이 게임 실행 중에 결정되므로 라이트맵을 전혀 굽지 않는다.
- Static 라이트
하늘 만들기
언리얼에서는 하늘 블루프린트를 지원한다. BP_Sky_Sphere
을 드래그 하면 끝!
언리얼에서의 하늘 블루프린트 BP_Sky_Sphere
는 미리 개발자들이 하늘을 원하는대로 변경하여 사용할 수 있도록 이렇게 public 변수들을 열어두었다. Directional Light Actor
변수에 위에서 배치한 Directional Light
(Sun)를 할당해준다. 이 하늘의 빛의 기준이 될 해를 지정해준 것이다.
Ambient Light
해와 하늘이 추가됐지만 그림자는 여전히 부자연스럽다. 직사광을 받지 않는 쪽은 아예 검정색이다. 스카이 라이트를 추가해주면 된다.
라이트의 종류 중 하나인 스카이 라이트
를 배치해주니 자연스럽게 하늘 색에 따라 이런 간접광이 들어가게 되었다.
태양의 각도(Directional Light의 회전값)에 따라 오전 오후 노을 밤 등등 시간대가 결정될 수 있다. 태양의 각도에 따라 하늘의 상태가 바뀌게끔 하려면?
하늘의 경우 Refresh Material
을 한번 누르기만 하면 현재의 해의 각도를 기준으로 하늘이 새롭게 바뀐다. 노을진 하늘이나 밤이 되기도 한다. 이렇게 해의 각도를 바꾸고 나면 수동으로 하늘을 갱신시켜주어야 한다.
스카이라이트의 경우 씬 리캡처를 한번 클릭해주면 변경된 하늘에 따른 빛으로 갱신된다.
Post Process Volume
카메라가 이 Post Process Volume
이라는 볼륨안에 들어가 있을 때만 어떤 영상적인 후처리가 적용된다. 뽀샵같은 그런 후처리!
그러나 어떤 크기의 볼륨에만 적용하기보다는 맵 전체에 전역적으로 후처리를 적용시키고 싶기 때문에 볼륨 세팅에서 Infinite Extent 를 체크해준다. 특정 바운더리가 있는 볼륨 안에서만 적용되는게 아니라 월드 전체를 커버하도록.
하늘을 바라보면 계속해서 밝아지면서 하얗게 타는 현상이 발생하여 최소, 최대 밝기를 다음과 같이 Lens 에서 조정해주었다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기