icon
6장 : 날씨와 시간 시스템

날씨 및 시간 효과 적용


이전 절들에서 언리얼 엔진의 핵심 요소를 활용하여 기본적인 날씨 시스템과 낮/밤 시간 시스템을 구축하는 방법을 배웠습니다. 이제 여러분의 레벨에 이 동적인 변화를 실제로 적용하고, 시각적, 청각적, 그리고 잠재적으로는 게임 플레이적인 측면에서 레벨의 몰입도를 극대화하는 방법을 알아볼 차례입니다. 날씨와 시간은 단순히 아름다운 배경 효과를 넘어, 플레이어의 감각을 자극하고 게임 세계와의 상호작용을 풍부하게 만드는 강력한 도구입니다. '나 혼자 언리얼 기본' 교재를 통해 여러분이 이 효과들을 효율적으로 통합하고 관리하여, 더욱 생생하고 반응적인 가상 세계를 창조할 수 있도록 안내해 드리겠습니다.


날씨 및 시간 시스템 통합의 중요성

개별적으로 날씨와 시간 시스템을 구축하는 것도 중요하지만, 이 둘을 유기적으로 통합하고 게임 플레이와 연동시키는 것이 레벨의 완성도를 높이는 핵심입니다.

  • 시각적 일관성: 날씨(예: 비)와 시간(예: 밤)이 함께 작용할 때, 조명, 안개, 구름, 그리고 강수량 효과 등이 서로 조화롭게 변화해야 합니다. 예를 들어, 비 오는 밤은 낮의 비와는 다른 어둡고 축축한 분위기를 연출해야 합니다.
  • 청각적 몰입: 시각적 변화에 맞춰 적절한 환경 사운드를 추가하여 몰입감을 극대화합니다. 빗소리, 천둥소리, 밤벌레 소리 등이 대표적입니다.
  • 게임 플레이 영향: 날씨와 시간의 변화가 단순히 시각적인 것에 그치지 않고, 플레이어 캐릭터의 이동 속도, 시야, NPC의 행동 등 게임 플레이에 실질적인 영향을 미치도록 설계합니다.
  • 최적화 관리: 복잡한 동적 시스템은 성능에 큰 영향을 미치므로, 통합된 관리 시스템을 통해 효율적인 최적화 전략을 적용해야 합니다.

시각적 효과 적용 및 미세 조정

이전 절에서 만든 BP_WeatherSystemBP_TimeOfDaySystem 블루프린트 내에서 각 시간/날씨 상태에 따라 관련 액터들의 속성을 조절하는 것을 다시 한번 강조합니다.

조명 (Lighting)

  • Directional Light
    • Intensity: 낮에는 높게, 밤에는 낮게. 흐린 날에는 낮의 강도를 약간 낮춥니다.
    • Light Color: 해 뜨고 질 때 주황/붉은색, 낮에는 백색광, 밤에는 푸른색으로 변화시킵니다. 비/눈 올 때는 회색조를 추가하여 흐린 분위기를 냅니다.
  • Sky Light
    • Intensity Scale: Directional Light와 유사하게 낮/밤에 따라 조절합니다.
    • Real Time Capture: 항상 활성화하여 하늘의 변화를 실시간으로 반영합니다.
  • Ambient Cubemap (Lumen / Ray Tracing 미사용 시): Post Process Volume에서 Reflection > Global IlluminationAmbient Cubemap 옵션을 통해 특정 시간/날씨에 맞는 큐브맵을 사용하여 간접광을 보강할 수 있습니다.

안개 (Fog)

  • Exponential Height Fog
    • Fog Density: 안개 낀 날이나 밤에 밀도를 높여 시야를 제한하고 분위기를 어둡게 합니다.
    • Fog Height Falloff: 안개가 지표면에 깔리게 할지(낮은 값), 상공까지 퍼지게 할지(높은 값) 조절하여 다양한 형태의 안개를 만듭니다.
    • Fog Inscattering Color: 안개에 색상을 부여하여 분위기를 연출합니다 (예: 푸른 새벽 안개, 오렌지색 스모그).
  • Volumetric Fog (활성화 시): 밤이나 짙은 안개 시 Extinction (소멸 계수)을 높여 밀도를 높이고, Albedo (반사율)와 Emissive (방출) 색상을 조절하여 빛과의 상호작용을 강화합니다 (God Rays 등).

구름 (Clouds)

  • Volumetric Cloud
    • Coverage: 맑은 날에는 낮게, 흐린 날에는 높게 조절하여 구름의 양을 제어합니다.
    • Layer Height / Bottom Altitude: 구름 층의 높이와 두께를 조절하여 다양한 종류의 구름을 표현합니다.
    • Ground Shadow Strength: 구름이 지면에 드리우는 그림자의 강도를 조절하여 흐린 날의 분위기를 강화합니다.
    • Material Parameters: 구름 재질의 파라미터(예: Cloud Density, Phase Function)를 블루프린트에서 조절하여 구름의 형태와 밀도를 동적으로 변화시킵니다.

후처리 (Post Processing)

  • Post Process Volume
    • Exposure (노출): 낮에는 밝게, 밤에는 어둡게 자동 노출 범위를 조절하거나 수동 노출로 설정합니다. 비 오는 날이나 흐린 날에는 전반적인 노출을 약간 낮춥니다.
    • Color Grading (색상 보정):
      • Global Gain / Gamma / Offset: 레벨 전체의 밝기, 대비, 색조를 조절하여 시간/날씨에 맞는 색감을 만듭니다. (예: 일몰 시 붉은색, 밤에는 푸른색)
      • Saturation / Contrast: 날씨에 따라 채도와 대비를 조절합니다. (예: 비 오는 날 채도 낮춤)
    • Bloom (블룸): 밝은 광원이 있는 장면에서 빛이 번지는 효과를 조절합니다. 밤이나 안개 낀 날에 약간 높여 빛의 확산 효과를 강조할 수 있습니다.
    • Vignette (비네트): 화면 가장자리를 어둡게 하여 시선을 중앙으로 집중시킵니다. 특정 날씨나 시간대에 연출적 요소로 활용할 수 있습니다.
    • Screen Space Reflections (SSR): 비 오는 날 젖은 노면의 반사 효과를 강화하기 위해 강도를 높일 수 있습니다.

청각적 효과 적용 (Audio System)

시각적 변화만큼이나 중요한 것이 오디오(Audio) 입니다. 적절한 사운드는 레벨의 몰입감을 극대화합니다.

앰비언트 사운드 액터 활용

사운드 큐 생성: 빗소리, 천둥소리, 바람 소리, 밤벌레 소리 등 각 날씨/시간대에 맞는 오디오 파일을 가져와 사운드 큐(Sound Cue) 를 만듭니다. 사운드 큐 내에서 무작위성, 볼륨 조절 등을 설정할 수 있습니다.

앰비언트 사운드 액터 배치: '추가(Add) > 오디오(Audio) > 앰비언트 사운드(Ambient Sound)' 액터를 레벨에 배치합니다.

사운드 큐 할당: 앰비언트 사운드 액터의 디테일 패널에서 생성된 사운드 큐를 할당합니다.

블루프린트에서 제어: BP_WeatherSystemBP_TimeOfDaySystem 블루프린트에서 각 앰비언트 사운드 액터에 대한 참조를 만들고, Set Volume Multiplier 또는 Play / Stop 노드를 사용하여 날씨/시간 상태에 따라 사운드의 볼륨을 조절하거나 재생/정지시킵니다.

  • 예: 비 오는 날 상태일 때 빗소리 사운드 큐 볼륨을 높이고, 맑은 날에는 볼륨을 0으로 만듭니다. 천둥소리는 특정 비 오는 날씨 상태에서 랜덤하게 재생되도록 합니다.

지면 타입별 사운드 (선택 사항)

  • 비 오는 날에는 플레이어 캐릭터가 걷는 발자국 소리가 젖은 지면(웅덩이 등)에서 나는 소리로 바뀌도록 구현할 수 있습니다. (물리 재질과 서피스 타입(Surface Type) 설정 활용)

게임 플레이 효과 연동

날씨와 시간 시스템이 게임 플레이에 영향을 미치도록 설계하여 상호작용성을 높일 수 있습니다.

플레이어 캐릭터 영향

  • 이동 속도: 비나 눈이 올 때 Character Movement ComponentMax Walk Speed를 낮춰 플레이어의 이동 속도를 감소시킵니다.
  • 시야 감소: 안개나 밤에는 Post Process Volume의 노출을 낮추고, 짙은 안개 효과를 적용하여 플레이어의 시야를 제한합니다.
  • HUD/UI 변화: 시야가 좋지 않은 날씨에서는 HUD에 습기 찬 화면 효과를 추가하거나, 특정 경고 UI를 표시할 수 있습니다.

NPC 및 AI 행동 변화

  • NPC 스폰/제거: 밤에만 등장하는 적, 특정 날씨에만 활동하는 동물 등을 구현합니다.
  • AI 행동 패턴 변화: 비나 눈이 올 때 NPC가 우산을 쓰거나, 실내로 대피하거나, 순찰 경로를 변경하는 등의 행동을 추가합니다.
  • 시야/청각 영향: 밤이나 안개 낀 날에는 AI의 시야 범위가 줄어들고, 빗소리로 인해 플레이어의 발자국 소리가 묻히는 등의 효과를 적용하여 잠입 플레이에 영향을 줍니다.

환경 상호작용

  • 물리적 변화: 비가 올 때 지면에 웅덩이가 생기거나(머티리얼 변화), 눈이 쌓이는(스태틱 메시 추가) 등의 효과를 구현합니다.
  • 아이템/자원: 특정 날씨(예: 비 온 후)에만 얻을 수 있는 자원이나 아이템을 배치합니다.

통합 관리 및 최적화

복잡한 날씨 및 시간 시스템은 효율적인 통합 관리와 최적화가 필수적입니다.

  • 단일 마스터 블루프린트: 모든 날씨 및 시간 관련 액터의 참조와 로직을 하나의 마스터 블루프린트(BP_WeatherTimeSystem 등)에서 관리합니다.
  • 데이터 테이블 / 커브 에셋: 시간이나 날씨 상태에 따른 조명 강도, 색상, 안개 밀도 등의 변화 값을 데이터 테이블(Data Table) 이나 커브 에셋(Curve Asset) 에 저장하여 관리하면 블루프린트 로직을 간소화하고 수정이 용이합니다.
  • LOD 및 컬링: 강수량 파티클 시스템, 볼류메트릭 클라우드 등 고성능을 요구하는 요소들은 플레이어 시야 밖에서 컬링되거나 낮은 LOD로 렌더링되도록 설정합니다.
  • 모바일/저사양 플랫폼 고려: Volumetric FogVolumetric Cloud 대신 Exponential Height Fog와 간단한 2D 구름 텍스처를 활용하거나, 실시간 그림자를 줄이는 등 최적화된 대안을 고려합니다.
  • 성능 프로파일링: 주기적으로 Stat FPS, Stat Unit, ProfileGPU 등의 콘솔 명령어를 사용하여 성능 병목 현상을 파악하고 개선합니다.

날씨 및 시간 효과 적용은 레벨 디자이너의 창의성과 기술력을 가장 잘 발휘할 수 있는 부분 중 하나입니다. 이 절에서 배운 시각적, 청각적, 게임 플레이적 연동 방법들을 바탕으로 여러분의 레벨에 생동감과 깊이를 더해 보세요. 복합적인 효과를 통합하고 관리하는 능력을 키움으로써, 더욱 풍부하고 몰입감 있는 게임 세계를 창조할 수 있을 것입니다.