“내 PC에서는 되는데?” — 협업 환경에서 가장 무서운 말
노트 PC에서만 크래시가 발생했다

문제는 내 PC에서는 아무런 이상이 없었다는 점이다.
같은 Git 저장소, 같은 브랜치, 같은 커밋. 그런데 왜 한쪽에서만 크래시가 발생하는 걸까?
이 글에서는 스켈레탈 메시의 LOD 설정 실수가 어떻게 특정 환경에서만 빌드 크래시를 유발했는지,
그리고 이를 어떻게 추적하고 해결했는지를 기록한다. 비슷한 상황에서 삽질하는 시간을 줄이는 데 도움이 되길 바란다.
1. 문제 정의
증상
SKM_Ares_Body_FullSet, SKM_Ares_Head 등 특정 스켈레탈 메시를 빌드하는 과정에서 에디터가 크래시된다.
오류 로그
[LogSkeletalMeshReduction] 1.46-percent of edges are shared by more than two triangles, these may cause problems.
[LogSkeletalMesh] Building Skeletal Mesh SKM_Ares_Body_FullSet...
[LogSlate] InvalidateAllWidgets triggered. All widgets were invalidated
예외 발생(UnrealEditor-Engine.dll): 0xC0000005: 0x0000000000000058 위치를 읽는 동안 액세스 위반이 발생했습니다.
재현 조건
| 메시 설정을 변경한 원본 PC | 정상 작동 |
| Git에서 Pull 받은 다른 PC | 크래시 발생 |
이 시점에서 문제는 단순한 버그가 아니라, 환경 차이에서 비롯된 숨겨진 오류였다.
2. 원인 분석: 왜 이런 일이 발생했는가
2.1 직접적 원인 — 과도한 LOD 삼각형 감소
LOD(Level of Detail)는 카메라와의 거리에 따라 메시의 복잡도를 조절하는 최적화 기법이다.
멀리 있는 오브젝트는 굳이 수만 개의 폴리곤으로 렌더링할 필요가 없기 때문이다.
문제는 LOD 설정 중 “최대 삼각형 개수”를 지나치게 낮게 설정한 것이었다. "
삼각형이 적으면 좋은 거 아닌가?"라는 단순한 생각이 화근이었다.
삼각형 수를 과도하게 줄이면 메시 단순화(Reduction) 알고리즘이 정상적인 지오메트리를 유지하지 못한다.
로그에 남은 경고가 이를 명확히 보여준다.
1.46-percent of edges are shared by more than two triangles
정상적인 3D 메시에서 하나의 엣지(모서리)는 최대 2개의 삼각형에만 공유되어야 한다.
이 규칙이 깨지면 메시의 토폴로지(Topology, 면과 점의 연결 구조)가 손상된 것이다.
2.2 간접적 원인 — 플랫폼별 LOD 오버라이드 불일치
추가로 발견된 문제가 있었다. 에셋 유효성 검사에서 다음과 같은 오류가 반복적으로 출력되고 있었다.
[AssetLog] SKM_Ares_Body_FullSet: HoloLens에 대한 최소 LOD 오버라이드 2은(는) 0..0 범위 밖입니다.
[AssetLog] SKM_Ares_Body_FullSet: Android에 대한 최소 LOD 오버라이드 2은(는) 0..0 범위 밖입니다.
[AssetLog] SKM_Ares_Body_FullSet: Mobile에 대한 최소 LOD 오버라이드 2은(는) 0..0 범위 밖입니다.
이 메시는 LOD가 1개(LOD 0만 존재)밖에 없는데, 플랫폼별 최소 LOD 설정이 2로 되어 있었다.
존재하지 않는 LOD를 참조하라는 설정인 셈이다.
2.3 PC별 차이의 실체 — Derived Data Cache
그렇다면 왜 원본 PC에서는 문제가 없었을까?
정답은 DDC(Derived Data Cache)에 있다.
DDC는 언리얼 엔진이 에셋을 처리할 때 생성하는 파생 데이터를 캐싱하는 저장소다.
셰이더 컴파일 결과, 메시 빌드 데이터 등이 여기에 저장된다.
| 원본 PC | 설정 변경 전 정상 빌드 데이터가 캐시됨 | 캐시된 데이터 사용 → 정상 |
| 다른 PC | DDC 없음 | 새로 빌드 시도 → 손상된 설정으로 크래시 |
원본 PC는 과거의 정상 데이터를 재활용하고 있었을 뿐, 문제가 없었던 게 아니었다.
DDC 뒤에 버그가 숨어 있었던 것이다.
3. 해결 과정
3.1 플랫폼별 LOD 오버라이드 수정
스켈레탈 메시 에디터에서 에셋 디테일 → LOD 설정 섹션을 열고 다음과 같이 수정했다.
설정 항목 변경 전 변경 후
| 최소 LOD | 2 | 0 |
| Mobile 오버라이드 | 2 | 체크 해제 |
| Android 오버라이드 | 2 | 체크 해제 |
| HoloLens 오버라이드 | 2 | 체크 해제 |
플랫폼별 오버라이드는 해당 플랫폼으로 빌드할 때만 적용되는 설정이다.
PC 개발 환경에서는 보이지 않던 문제가 모바일 빌드나 다른 PC에서 터지는 이유 중 하나가 바로 이것이다.
3.2 영향받은 에셋 전체 확인
/Player/Seeker/Ares/Mesh/ 폴더 내 모든 스켈레탈 메시에 동일한 문제가 있을 가능성이 높았다.
콘텐츠 브라우저에서 해당 폴더의 에셋을 전체 선택한 뒤 우클릭 → 에셋 액션 → 프로퍼티 매트릭스로 편집을 통해 일괄 수정했다.
(삼각형 갯수를 처음과 같이 최대로 올리고, LOD 설정한 값을 원상복구해도 된다.)
3.4 DDC 삭제 후 검증
문제의 본질은 DDC가 오류를 숨기고 있었다는 점이다.
원본 PC에서도 다음 폴더들을 삭제하고 재빌드하여 다른 PC와 동일한 조건에서 테스트했다.
프로젝트폴더/DerivedDataCache/
프로젝트폴더/Intermediate/
프로젝트폴더/Saved/
이 과정을 거치지 않으면, 내 PC에서는 계속 정상으로 보이지만 다른 PC에서 계속 크래시를 겪는 상황이 반복된다.
4. 결과 및 개선 효과
| 항목 | Before | After |
| 타 PC 빌드 | 크래시 | 정상 |
| 에셋 유효성 검사 | LOD 범위 오류 다수 | 오류 없음 |
| DDC 삭제 후 원본 PC | 미확인 | 정상 빌드 확인 |
제 해결 후 노트 PC에서도 동일하게 빌드가 성공했다!
5. 실무 팁 & 정리
✅ LOD 설정 시 체크리스트
- 삼각형 감소는 비율(%) 기준으로 설정했는가
- 최소 LOD 값이 실제 존재하는 LOD 범위 내인가
- 플랫폼별 오버라이드가 불필요하게 설정되어 있지 않은가
- 공유 LOD 세팅 에셋이 해당 메시와 호환되는가
💡 권장 LOD 삼각형 비율
| LOD 레벨 | 삼각형 비율 | 용도 |
| LOD 0 | 100% | 근거리 (원본) |
| LOD 1 | 50~70% | 중거리 |
| LOD 2 | 25~40% | 원거리 |
절대 개수를 직접 입력하는 것보다 비율로 설정하는 것이 안전하다. 메시마다 원본 폴리곤 수가 다르기 때문이다.
캐시가 숨긴 버그를 찾아서
원본 PC에서 문제없이 돌아갔던 것은 캐시 덕분이었을 뿐, 설정 자체는 이미 깨져 있었다.
DDC는 빌드 시간을 줄여주는 고마운 존재지만, 동시에 문제를 은폐하는 양날의 검이기도 하다.
협업 환경에서 "내 PC에서는 된다"는 말이 나오는 순간, 가장 먼저 의심해야 할 것은 캐시다.
그리고 그 캐시를 지우고 나서도 동작하는지 확인하는 것이 진짜 검증이다.
이 글이 비슷한 상황에서 헤매는 개발자에게 삽질을 줄이는 지름길이 되길 바란다.
'Dev. > UE 언리얼 엔진' 카테고리의 다른 글
| [GAS] Wwise 오디오 오클루전 시스템 구축 (0) | 2026.01.09 |
|---|---|
| [GAS] 나나이트(Nanite) 메시의 거리 컬링 최적화 (0) | 2026.01.07 |
| [GAS] 렌더링 최적화 : 30 FPS에서 60 FPS까지 (2) (2) | 2026.01.05 |
| [GAS] 이펙트가 프레임을 떨어뜨리는 이유, 오버드로 | 컷아웃 기법 (1) | 2026.01.03 |
| [GAS] 렌더링 최적화 : 30 FPS에서 60 FPS까지 (2) | 2025.12.30 |