· 마을· 레포트 #144
마을 낮·밤 시간대와 밝은 달밤
숙박·이벤트에서 페이드로 바꾸는 낮/밤 2단계 시간대를 만들었다. 밤은 밝은 달밤(V1)으로 달빛·별·달·가로등 27개·창문 불빛을 넣었고, 기존 낮 화면은 픽셀 단위로 바뀌지 않게 했다.
배경
- 사용자는 낮 마을 풍경에 만족했다. 날씨 시스템은 고민 중이지만, 밤 이벤트가 있을 수 있어 낮/밤은 필요하다고 했다.
- 밤 배경(V0 낮 / V1 밝은 달밤 / V2 어두운 밤)과 캐릭터 밝기를 Play 중 임시 값으로 같은 위치에서 찍어 비교한 뒤 사용자가 골랐다.
목적
- 낮 화면은 그대로 두고, 숙박·스토리·이벤트에서 바꿀 수 있는 밤 환경을 추가한다.
결과

- 밤 빛: 달빛 (0.62, 0.72, 1.0) 세기 0.5(방향은 낮과 같음), 어두운 남색 환경광과 안개. 반사는 0.25로 낮춰 낮 하늘이 구워진 반사가 번쩍이지 않게 했다.
- 하늘: 하늘 셰이더에 별(두 크기, 반짝임, 수평선·구름에 가려짐)과 달 원반을 넣었다. 새 속성 기본값이 0이라 낮 하늘은 그대로다.
- 가로등: 등불 27개마다 점광원(세기 3, 범위 9m, 그림자 없음)을 하나씩 두고 등불 재질 발광을 주황빛으로 올렸다. 낮에는 꺼진다.
- 창문·연기: 창문 재질 슬롯 158개 중 117개(약 70%)를 주황빛으로 켜고, 연기는 어두운 청회색으로 바꿨다.
- 후처리: 마을 기본 볼륨은 두고, 밤 덧씌움 볼륨(채도 −15, 블룸 0.8)의 가중치를 0→1로 올린다.

- 캐릭터(C3): 씬 빛 비율을 0.6으로 두어 달빛 색을 일부 받는다. 0은 기존처럼 씬 빛을 끊고, 1은 달빛 그대로다. 빛 방향 고정과 가로등 차단은 그대로다.
- 전환:
TimeOfDayManager의SetPhase·Toggle로 바꾸고, 기본 1.5초 페이드가 끝나면PhaseChanged를 한 번 알린다. 씬을 옮겨도 시간대가 유지되고, 개발 중에는 F8로 바꾼다.
결정과 이유
- 단계 전환형, 낮/밤 2단계: 실시간 시계가 아니라 숙박·이벤트에서 페이드로 넘긴다. 노을은 나중에 더할 수 있다.
- 밤 배경 V1 밝은 달밤, 캐릭터 C3: 사용자 선택이다. 캐릭터는 달빛 그대로(C2)를 바탕으로 더 밝게 했다.
- 날씨는 넣지 않음: 넣게 되면 시간대 프리셋 위에 덧씌우는 층으로 붙인다.
- 낮 프리셋 = 설치 시점의 씬 값: 그래서 낮 화면이 바뀌지 않는다. 창문·연기·하늘은 Play 중 재질 복사본만 바꾸고 원본과 팩 에셋은 건드리지 않는다.
고친 문제
- 밤에 풀·나무가 형광 초록으로 뜸
- 원인: 식생 셰이더가 투과광을 색에 더해 어두운 달빛에서도 초록이 강하게 남았다.
- 해결: 밤 후처리에서 채도를 낮췄다.
- 연기가 하얗게 빛나고 달 주변 구름이 검은 얼룩: 연기는 조명을 받지 않는 파티클이라 밤 색을 따로 어둡게 했고, 밤 구름은 달빛을 받은 옅은 회청색으로 바꿨다.
- 창문을 모두 켜면 하얗게 날아감: 주황빛으로 발광을 낮추고 약 70%만 켰다.
- 캐릭터가 검게 나옴
- 원인: 마을 방향광의 렌더링 레이어에 Character가 없어, 비율을 올리면 빛 색이 0이 됐다.
- 해결: Character를 넣고, 그림자 레이어는 기존 Default로 따로 고정해 낮에 캐릭터 그림자가 새로 생기지 않게 했다.
검증
- 같은 시점의 적용 전·후 낮 화면을 픽셀로 비교했다. 차이는 구름 그림자·풀·연기처럼 움직이는 요소에만 있고, 건물 벽·지붕은 0이다.
- 밤 전환 시 가로등 27/27, 창문 117/158 슬롯이 켜진다.
SetPhase(Night)1초 뒤 밤 정도 0.86, 약 1.5초에 1이 된다. - F8 직접 입력과 성능(프레임 시간)은 확인하지 못했다.
남은 일
- 세이브에 시간대 저장, 실내 씬의 밤 반영, 밤 NPC 배치·BGM
- 가로등 빛이 그림자가 없어 벽 너머로 조금 샐 수 있다. 문제가 보이면 가까운 몇 개만 그림자를 켠다.
- 집이 비워진 채로 시간대가 바뀌면 그 집 창문 빛이 이전 값으로 남는다(불투명해지면 원래대로).