· 마을· 레포트 #137
SUNTAIL 집 외관만 남기기와 가리는 집 투명 처리
1인칭 데모용으로 가구·조명이 차 있던 집 실내를 지워 외관 껍데기만 남겨 렌더러·조명 수를 크게 줄였다. 카메라가 집 안에 들어가거나 집이 캐릭터를 가리면 그 집을 디더로 비우게 했다.
배경
- SUNTAIL 집 프리팹은 1인칭 데모용이라 층마다 가구·촛불·벽난로 같은
Interior, 실내 점광원 12개, 실내 오디오 존을 품고 있다. 135까지는 더미 집만 조명·오디오를 끄기만 했고, 역할 집 5채는 실내 조명까지 켜져 있었다. - 사용자는 집 실내를 집마다 별도 씬으로 만들 예정이니 마을 집은 외부 껍데기만 남기고, 메모리를 낭비하지 말라고 했다.
- 또 캐릭터를 집 가까이 두고 카메라를 돌리면 집 내부가 보였다.
목적
- 실내를 지워 메모리 낭비를 줄이고, 카메라가 집을 뚫을 때는 그 집을 투명하게 처리한다.
결과

VillageOccluderFader: 카메라가 집 범위(여유 0.3m) 안에 들어가면 그 집을 즉시 완전히 비운다. 캐릭터와 카메라 사이를 가리는 집은 0.15초 디더로 비운다.- 벗어나면 0.35초에 다시 채우고, 다 채워지면 원래 공유 재질로 되돌려 평소 배칭·성능은 그대로다.
- 오프닝 연출 중에는 동작하지 않아 투어 중 집이 사라지지 않는다. 집 그림자는 남는다.

- 집 19채에서
Interior·Lighting·Indoor Volume을 삭제했다. Unity 6.6은 이를 삭제 오버라이드로 저장해 프리팹 연결(지붕 색·곁채)은 유지된다. - GameObject 14,665 → 11,142, Renderer 12,155 → 8,869, Collider 3,012 → 1,694, Light 161 → 2
- 씬 파일은 14.52 → 14.54MB로 거의 같다. 프리팹 내용은 원래 씬 파일에 없고 삭제 기록만 늘었기 때문이다. 줄어드는 것은 실행 중 메모리다.
- 굴뚝 연기, 외벽 덩굴·화분, House_7C의 바깥 계단·발코니는 실내가 아니라 남겼다.

- 반투명 0.3으로 시험하면 디더 격자무늬가 그대로 보였다. 실제 거리(뒤 8.06m)에서는 집 깊이(9~15m)가 더 커서 가리는 순간 대부분 카메라가 이미 집 안이라, 완전히 비우는 쪽으로 통일했다.
결정과 이유
- 카메라를 당기지 않고 집을 비움: 133에서 확정한 카메라 거리·각도를 바꾸지 않으려는 것이다.
- 알파 블렌딩 대신 화면 디더: 집 메시가 자기끼리 겹쳐 정렬이 깨지고 깊이·SSAO가 어긋난다.
- 팩 셰이더는 그대로, 복사본 2개: 표면·잎 셰이더 복사본에
_OccluderFade와 4×4 디더 컷을 넣었다. 깊이 프리패스와 일치해야 구멍이 안 생겨 깊이 관련 패스에도 넣고, 그림자 패스는 그대로 두었다.
검증
- 여관 벽 앞 360° 회전(6초) 동안 카메라가 집 안에 있던 389틱 모두 그 집이 보이지 않았고, 회전 뒤 모든 집이 원래 재질로 돌아왔다.
- 컴파일 오류 0, 스크립트 오류 없음
남은 일
- NPC 이름표가 벽 너머로도 보인다(가림 판정 없음).
- 노점·우물 지붕 같은 소품, 옹벽, 숲 나무에 카메라가 들어가는 경우는 처리하지 않았다.
- NavMesh는 다시 굽지 않았다. 남은 실내 바닥 조각은 문이 닫혀 닿을 수 없고, 다음 생성기 재실행 때 정리된다.