언리얼에서 제공하는 강의를 듣고 몰랐던 사실이나 알아두면 좋을거 같은 정보들을 공부하고 정리 하는 시간을 가져봤습니다.

현재 프로젝트가 저장되어있지 않는지 확인하는 방법은 상단 왼쪽을 확인하면 맵 이름 뒤에 * 표시를 보실수 있는데 이 표시가 저장이
되어있지 않는 상태입니다. 또 콘텐츠 브라우저-> 'ThirdPersonBP' -> Map폴더 맵이 저장되어 있는데 여기서도 확인 할 수 있습니다.
그래서 잘 확인하고 Save all를 눌러주면 된다.


마음에 드는 외부 프로젝트를 내가 만들어 놓은 프로젝트에 콘텐츠를 추가로 프로젝트에 가져오는 방법은 원하는 프로젝트 폴더를
찾아서 우클릭 하면 Asset Action -> Migrate 를 눌러서 보내고 싶은 프로젝트 폴더로 보내면 됩니다.
시뮬레이션을 진행할 때 캐릭터가 에디터의 카메라 위치에서 스폰이 되기 때문에 월드에서 플레이어 스폰 위치를 정하려면
플레이어 스타트를 사용해서 설정해줄수 있다.


우측상단에 +아이콘을 클릭하고 All Classes -> Player Start -> 드래그해서 시작점을 정해줄 수 있습니다.
그리고 지면에 딱 붙여서 위치시킬려면 End키를 누르면 가장 가까운 지면이랑 스냅이 되어 위치시킬수가 있습니다.
그리고 만약 캐릭터가 원하는 곳에 자동으로 스폰되지 않으면

플레이 옵션 옆에 점 3개 를 클릭해 안에 들어가면 Default Player Strat 에서 스폰이 되는지 확인해야 합니다.
언리얼 엔진(Unreal Engine)에서 사용되는 빛(Light)은 장면의 조명을 설정하고 분위기를 연출하는 데에 있습니다. 언리얼에서 제공하는 빛 종류와 각각의 특징을 아래로 정리했습니다.
언리얼의 빛의 종류에는

디렉셔널 라이트, 포인트 라이트, 스포트 라이트, 렉트 라이트, 스카이라이트 등이 있으며 각 라이트별 특징을
간략하게 소개 해드리도록 하겠습니다.
언리얼 엔진에서 디렉셔널 라이트 같은 경우 태양광과 같은 역할을 하는 라이트라고 생각하면 되는데요
넓은 환경에서 태양광 처럼 아주 먼 거리에서 빛이 내리 쬐는듯한 라이트 입니다.
특징: 라이트의 위치와 상관없이 빛의 회전만 빛의 방향에 영향을 줄 수 있으며 전체를 조명하기 때문에 공간의 크기와 독립적으로 빛이
모든것에 영향을 줄 수 있습니다.
주로 실외에서 사용하며 품질이 높은 그림자를 생성할 수 도 있는데 Cascade Shadow map를 사용해서 먼 곳에 있는 그림자를 쉽게
표현 할 수 있습니다.

아웃라이너 패널에서 현제 레벨에서 작동중인 디렉셔널 라이트를 볼 수 있는데요 여기서 디테일 텝을 보시면 라이트의
강도, 컬러, 온도 등 라이트에 대한 다양한 설정을 할 수 있습니다.
언리얼 엔진에서 포이트 라이트 는 전구 와 같은 빛의 형태를 가지고 있는 라이트라고 생각 하시면 됩니다.

특징: 포인트 라이트는 Staric, Stationary, Movable 설정에 따라 그림자를 생성 할 수 있으며 필요에 따라 라이트 프로파일
(LES Profiles)을 사용하여 현실적인 빛의 패턴을 적용 시킬수 있습니다.
또한 간접 조명이나 빛의 퍼짐 효과가 필요할 경우, 스카이라이트나 주변 라이트와 조합하여 사용하기 좋다.
라이트 프로파일이란? 라이트 프로파일(Light Profiles)은 조명의 배광 분포(빛의 확산 패턴)를 정의하는 데이터 파일로, 현실 세계에서 사용되는 특정 조명의 특성을 언리얼 엔진에 적용할 수 있게 해줍니다. 주로 IES 파일(IES Light Profiles) 형식으로 제공되며, 이는 실제 조명 제조업체에서 제공하는 표준 파일 형식입니다.
IES 파일(IES Light Profiles)이란? 조명의 밝기, 광각, 빛의 감쇠, 분산 패턴 등의 정보를 포함.
조명 제조업체에서 제공하는 데이터를 사용하여 실제 제품에 가까운 시각적 효과를 구현하여 빛의 분포 패턴등을 정확하게
시뮬레이션할 수 있도록 데이터화한 것입니다.
Staric, Stationary, Movable 에 대한 설명은 따로 밑에서 추가 설명을 하겠습니다.
언리얼 엔진에서 스포트라이트(Spot Light) 는 특정 방향으로 원뿔 모양의 빛을 방출하는 라이트 유형입니다. 이는 실제 세계에서 무대 조명, 서치라이트, 자동차 헤드라이트처럼 특정 대상이나 영역을 강조하는 데 사용됩니다.

특징 : 스포트 라이트는 지정된 방향으로만 빛을 방출하며 빛이 퍼지는 각도와 범위를 조정할 수 있어 특정 영역만 조명하거나 넓은 공간을 조명할 수 있습니다. Inner Cone Angle (내부 원뿔 각도): 내부 원뿔의 각도를 설정하며, 이 각도 내에서는 빛이 균일하게 비춰지게 할수 있습니다. Outer Cone Angle (외부 원뿔 각도): 외부 원뿔의 각도를 설정하며, 빛이 점점 감쇠되며 퍼지는 영역을 정의합니다. 두 값의 차이를 통해 빛의 경계를 부드럽게 만들 수 있습니다.
스포트 라이트는 빛의 최대 영향을 미치는 Attenuation Radius(감쇠 반경)을 설정해서 반경을 벗어난 오브젝트는 빛의 영향을 받지 않게 설정해 줄 도 있습니다.
언리얼 엔진의 렉트라이트(Rect Light) 는 직사각형 형태의 빛을 방출하는 라이트 유형입니다. 이는 현실 세계에서 넓은 면적에서 나오는 빛(예: 창문을 통해 들어오는 빛, 네온사인, TV 화면)과 유사한 효과를 구현하는 데 사용됩니다.

특징: 직사각형 면적을 가진 광원으로, 빛의 크기와 형태를 가지고 있으며 포인트라이트 처럼 광원이 아니라, 면적을 가지므로
부드럽고 자연스러운 빛과 그림자를 생성합니다.
광원의 크기를 조정하여 넓은 영역을 부드럽게 밝혀주거나, 특정 부분을 강렬하게 강조할 수 있습니다. 특히 간점 조명을 연출하거나
빛의 확산 효과를 구현할 때 유용합니다.
렉라이트는 큰 광원에서 나오는 빛의 특성을 반영하여 부드러운 그림자를 생성할수 있는데 Source Width와 Source Height 값이
커질수록 그림자가 더 부드럽게 퍼지게 할 수 있습니다.
언리얼 엔진의 스카이라이트(Sky Light) 는 언리얼 엔진에서 하늘에서 오는 전반적인 환경 조명을 구현하는 데 사용되는 라이트 유형입니다. 씬 전체에 고르게 퍼지는 빛을 제공하며, 특히 간접 조명을 추가해 현실감 있는 환경을 연출하는 데 필수적인 요소입니다.

특징: 스카이라이트는 하늘에서 나오는 빛을 시뮬레이션하며, 씬의 모든 오브젝트에 고르게 조명을 제공하며 이는 그림자 속 영역이나
직사광선이 닿지 않는 어두운 부분도 은은하게 밝히는 역할을 합니다.
스카이라이트는 HDRI를 기반으로 빛을 생성할 수 있으며 HDRI 이미지의 색상과 밝기를 활용해 자연스러운 하늘빛 효과를 구현할 수 있습니다.
또한 특정 시간대(낮, 밤, 황혼 등) 날씨 상태를 표현하는데 적합 하며 다른 라이트와 함께 사용하면 더욱 사실적인 환경 조명을 만들 수 있고 씬의 하늘과 주변 환경을 실시간으로 캡처하여 간접 조명으로 도 변환할 수 있습니다.
씬에 스카이라이트 추가: Modes > Lights > Sky Light에서 추가.
추가된 스카이라이트는 디렉셔널 라이트와 함께 배치되는 것이 일반적.
소스 설정: Source Type에서 Captured Scene을 선택하면 씬의 하늘을 캡처.
Specified Cubemap을 선택하면 HDR 이미지를 불러와 적용.
간접 조명 조정: Intensity Scale과 Indirect Lighting Intensity로 조명 강도를 설정.
리얼타임 캡처 활성화: 시간대 변화나 동적 환경 효과가 필요한 경우 Real-Time Capture 옵션을 활성화.
영상을 보다가 흥미롭거나 적어두면 좋을거 같은 정보들이 있어서 추가적인 라이팅 관련 공부 내용을 적어 보겠습니다.
레벨을 둘러보고있다가 보면 라이팅이 자체 조정이 되는 효과가 있는데요 예를 들어 밖에 있다가 건물 안으로 들어갔을 때
라이팅이 밝아졌다가 어두워지는 연출이 되는데 이유는 자동노출 또는 시각 적응 때문입니다.
언리얼엔진은 인간의 눈을 모방하려고 하는데 밝은 방에서 어두운 방으로 들어가면 어둠에 적응하는데 시간이 걸리므로 서서히 보이게 되고 따라서 서서히 보이게 하는 수치 값을 조절하려면

"PostprocessVolume" -> Exposur -> Min Brightness(최소 발기), Max Brightness(최대 밝기)를 조절하여 수치 값 만큼
빛에 적응하는 속도를 조절 할 수 있으며 활성화 와 비활성화 를 할 수 도 있습니다.
다음은 라이트 섀프트 라는 기능에 대해서 설명을 해볼껀데요 라이트 섀프트(Light Shafts) 는 디렉셔널 라이트에 의해 생성
가능한 것으로, 현실에서 구름 사이를 뚫고 나오는 빛줄기에 대한 시뮬레이션입니다. 어느 씬에서도 입체감과 현실감을 더해줄 수 있는 효과입니다.

아웃라이너에서 디렉셔널 을 클릭하고 인텐시티를 1로 설정해준뒤에

디테일 창에서 LightShafts 에서 Light Shaft Occlusion 과 Light Shaft Bloom을 켜주게 되면 아래 이미지와같이 태양에 블룸 현상으로 더 입체감 있고 눈이 부신듯한 현실감을 표현해 줄 수 있게 되었습니다.
Light Occlusion : 오클루전(Occlusion)은 가림 효과를 뜻하며, 가상 콘텐츠를 실제처럼 느끼게 해주는 요소입니다. 실제 사물 뒤에 가상 콘텐츠가 있을 때, 실제 사물에 의해 가상 콘텐츠가 가려지도록 하는 효과를 말합니다.
Light Bloom :Light bloom은 밝은 광원에서 나오는 빛이 주변 오브젝트로 새어 들어가는 것처럼 보이는 광학 효과입니다. 씬에 큰 차이를 가져오며, HDR 렌더링과 함께 사용하면 마법이나 꿈 같은 환경처럼 보일 수 있습니다.


Light Shaft Occlusion 과 Light Shaft Bloom의 수치값을 조절 하면 아래와 같이 블룸이 얼마나 보이고 얼마나 강하게 표현되는지 조절 할 수 있으며 Bloom Scale 과 Tint 를 절정해 색과 크기 또한 조절 할 수 있습니다.



위에서 설명을 하지 못한 Light Mobillity에 대해서 설명을 해 보도록 하겠습니다.
Mobillity 에는 3가지 종류가 있는데 "Static, Stationary, Movable" 가 있습니다.

Static : 스태틱은 라이트와 그림자를 맵에 직접 구워 텍스처 자체를 변형시키는 것이고
무버블은 다이내믹 라이트라고도 하죠, 실시간으로 라이트와 그림자가 구현되는 방식입니다.
특징으로는
라이트매스를 사용해 조명과 그림자 정보를 포함하는 텍스쳐인 라이트 맵을 렌더링.
동적 오브젝트에 빛을 적용하거나 그림자 투영 불가능.
라이트 액터의 광원 반경 Radius 속성을 변경해 정적 그림자 가장자리의 부드러운 정도를 조절 가능.
(단, 라이트매스를 활용해 라이팅을 빌드해야 해당 효과를 확인할 수 있음.)

라이트 수에 제한이 없이 사용 가능.
스페큘러 specular 하이라이트에 영향을 주지 않음.
Stationary : 실행시간에 색이나 밝기는 바꿀 수 있어도 이동 및 회전, 영향력 크기를 바꿀 수는 없는 라이트 유형입니다.
스테이셔너리 라이트에서 나오는 모든 간접광과 그림자는 라이트맵 안에 저장됩니다. 직사 그림자는 섀도맵 안에 저장됩니다. 여기서는 디스턴스 필드 섀도를 활용하는데, 라이팅된 오브젝트의 라이트맵 해상도가 꽤나 낮아도 그림자를 바삭바삭하게 구워낼 수 있다는 뜻입니다.
특징으로는
정적 조명을 사용하는 시각화를 구성함에 있어서 햇빛을 구성.
정적 오브젝트와 동적 오브젝트에 라이트를 비추고 그림자 투영 가능.
(스태틱과 무버블 사이에 위치하니 두 가지의 장점을 다 가지고 있다고 생각하면 쉽습니다.
단, 장점이 있는 대신 조건이 존재합니다.)
각 메시는 한 번에 최대 4개의 스테이셔너리 라이트 조명만 받을 수 있다.
(이게 바로 그 조건. 5번째 라이트부터는 무버블 라이트로 전환되어 성능이 크게 저하됩니다.)
스페큘러 하이라이트에 영향을 줄 수 있다.
라이팅 빌드에 영향을 받지않고 실시간으로 속성과 설정이 가능하다.
Movable : 무버블, 이동가능한 라이트에 대한 일반적인 정보입니다.
Movable Lights (무버블 라이트)는 완벽히 동적인 빛과 그림자를 드리우며, 위치나 방향, 색, 밝기, 감쇠, 반경 등 그 모든 프로퍼티를 변경할 수 있습니다. 여기서 나오는 라이트는 라이트 맵에 구워넣지 않으며, 현재 간접광을 받을 수 없습니다.
특징으로는
정적 오브젝트와 동적 오브젝트에 라이트를 비추고 그림자 투영 가능.
(단, 동적 오브젝트에 적용되는 그림자 효과는 해상도가 낮고 정적 오브젝트의 그림자와 같이 가장자리가 부드럽게 상쇄되어 보이는
효과를 얻을 수 없다는 단점이 있습니다.)
라이트 모빌리티 중 가장 성능을 저하시킴.
물체 표면의 정반사 효과에 직접 기여함으로, PBR Physically Based Rendering : 물리 기반 렌더링 표면을 강조할 수 있음.
라이팅 빌드에 영향을 받지않고 실시간으로 속성과 설정이 가능함.
이렇게 위와 같이 각 라이트 모빌리티마다 특징들이 존재하고 필요한 부분에 모빌리티를 선택해서 사용하면 됩니다.
블루프린트를 통해서 여닫이, 미닫이 문 등 효과를 준다면 동적 오브젝트이니 무버블을 사용하거나 스테이셔너리를 사용하는 것이 예로 들 수 있을 것 같습니다.
마지막으로 UnraelEngine5 부터는 루멘(Lumen) 이라는 시스템이 도입이 되었는데 루멘은 차세대 콘솔을 타깃으로 한 언리얼 엔진 5의 새로운 다이내믹 글로벌 일루미네이션 및 리플렉션 시스템입니다.
자세한 설명은 이전 블로그에서도 한번 다뤘기 때문에 링크를 달아 드리겠습니다.링크텍스트

Edit-> Project Settings 창으로 가셔서 아래 이미지와 같이 활성화 및 비활성 화 시켜줄수 있습니다.

루멘은 라이트 바운스를 실시간으로 계산 하기 때문에 사용하기 위해서는 Movable 라이트가 필요하며 Static 라이트에서는 사용할 수 가 없습니다.
예시를 들어보면

위 이미지에서 루멘이 켜져있는 상태에서는 창문의 노란색 텍스처 부분의 빛이 벽에 반사가 되면서 실제 빛의 작동 방식을 모방하는 기능이 활성화가 된 것을 확인 할 수 있는데요

반대로 루멘을 끄게 되면 이제 빛 반사가 사라졌기 때문에 빛이 하늘에서 들어와 바닥에서 반사되면서 바닥 색상을 그대로 벽에 가져와 튕기는 현상이 없어진 것을 확인 할 수가 있습니다.
루멘을 켜고 끄고에 따라서 보여지는 장면의 차이가 크지만 루멘은 퍼포먼스에 부담을 주기 때문에 플렛폼에 따라 퍼포먼스를 향항하려면 루멘을 끄거나 스태틱 라이팅을 잘 활용하면 된다고 생각합니다.
끝으로 언리얼 공식 사이트에서 보게된 루멘의 모든 기능과 작동 방식의 개요를 소개한 영상이 있어서 공유해 드리겠습니다.
링크텍스트