본문 바로가기
나도 공부한다/삽질

Three.js "Could not load /파일.gltf: Invalid typed array length: 126" 에러

by 꾸빵이 2024. 3. 16.

문제 상황

갑자기 Could not load /파일.gltf: Invalid typed array length: 126 에러와 함께 gltf 파일 로드가 안됐다.

 

 

 

해결 과정

다른 gltf 파일을 사용했을 땐 잘되어서 코드의 문제는 아니었다. gltf 파일 역시 다른 프로젝트에서 잘 쓰였기 때문에 문제가 없었다. 처음엔 gltf loader 경로를 잘못 써준줄알고 상대 경로로 바꿨다가 다시 절대 경로로 바꿔보기도 했다. 혹시 이전 프로젝트와 라이브러리 버전이 다른가 체크했는데 그것도 아니었다. 

 

결론

몇시간을 날리고, 이 파일을 가져올 때 달라진 점(저장 위치 등)이 뭐가 있을까 생각하다가 에러를 찾아냈다.

gltf 파일을 읽어보면 함께 쓰이는 이미지 파일과 .bin 파일 경로가 uri로 나타나있다. 

 

나의 경우, 처음에 undefined.gltf, undefined.bin으로 되어있던 파일 이름을 scene으로 바꿨다. 그리고 나서 당연히 gltf 파일 안에 써있는 bin 파일 이름도 바꿔줘야하는데 그대로 둬서 gltf가 bin 파일을 읽지 못한게 원인이었다.

 

gltf 맨 아래에서 같이 쓰이는 bin 파일 이름을 확인할 수 있다. 실제 파일 이름과 일치시켜주니 정상적으로 불러와졌다.