무료 에셋, 정말 제대로 부서지나

2026-09-20 · v0.6.1 · github.com/choisam4u-creator/blender-fx-mcp

결론

지금은 됩니다. 그런데 물어보시기 전까지는 안 됐습니다. 흔한 결함을 그대로 심은 시험용 GLB 7개로 재 봤더니 조각이 통째로 사라지고 있었습니다. 원인 네 가지를 찾아 고쳤고, 지금은 7개 모두 요청한 40조각 그대로, 부피 보존 1.00, 깨진 조각 0개입니다. 조각 500개까지 유지됩니다.

다만 karchive 사이트의 실제 파일은 한 개도 내려받지 않았습니다. 파일 다운로드는 허락을 받아야 해서입니다. 아래 7번을 봐 주세요.

1. 먼저, 처음엔 실패했습니다

무료 에셋을 흉내 낸 모델 7개를 만들어 도구에 그대로 넣었더니 이렇게 나왔습니다. 부피 보존은 조각 부피의 합을 원본 부피로 나눈 값이고, 1.00 이어야 물질이 사라지지도 불어나지도 않은 것입니다.

시험 모델처음무엇이 잘못됐나
면 20,480개짜리 무거운 모델15.24부피가 15배로 부풀었다. 조각끼리 서로 겹쳤다.
벽 5cm 통 + 바닥에 붙은 내용물0.69물질의 31%가 사라졌다.
부품 6개가 서로 박힌 수레0.93바퀴와 손잡이 쪽 조각이 안 생겼다.
5cm 짜리 아주 작은 물건오류조각을 하나도 못 만들었다.

화면으로 보면 그냥 "부서졌네" 싶지만, 무게가 틀리면 낙하와 튕김이 전부 틀립니다. 그래서 부피를 숫자로 재는 것입니다.

2. 원인 네 가지

  1. GLB 는 꼭짓점을 쪼개 놓습니다. 이 형식은 저장할 때 면마다 꼭짓점을 따로 복사합니다. 그대로 가져오면 모든 면이 서로 떨어져 있어 "닫히지 않은 자루"가 되고, 부피 계산과 조각내기가 동시에 망가집니다. → 가져올 때 겹친 꼭짓점을 다시 붙입니다. 또 수리를 먼저 하고 면 줄이기를 나중에 하도록 순서를 바꿨습니다(반대로 하면 수리할 대상이 이미 뭉개져 있습니다).
  2. 덩어리끼리 겹치거나 맞닿아 있습니다. 무료 모델은 바퀴가 몸통에 박혀 있고, 내용물이 통 바닥에 딱 붙어 있습니다. 이런 모델에 조각 칼을 대면 불리언 계산이 아무것도 못 만들고 빈 결과를 냅니다. → 조각내기 전에 한 번, 겹친 덩어리들을 하나의 깨끗한 덩어리로 정리합니다. 이 한 단계로 0.69 → 1.00, 0.93 → 1.00 이 됐습니다.
  3. 씨앗 좌표를 두 번 변환하고 있었습니다. 조각의 씨앗 점이 물체 안에 있는지 판정할 때 좌표를 한 번 더 변환해서, 물체가 원점에서 떨어져 있으면 거의 전부 "바깥"으로 판정됐습니다. 40개를 요청해도 3~4개만 놓였습니다. 가져온 모델은 항상 바닥에 세우느라 위치가 0이 아니므로 전부 이 버그를 맞고 있었습니다.
  4. 셀 자르는 횟수에 상한이 있었습니다. 조각이 많아지면 셀이 덜 잘려 서로 겹치고 부피가 1.17까지 부풀었습니다. 언제 멈춰도 되는지는 이미 정확히 계산하고 있었으므로, 상한을 없앴습니다. 쓸모없어진 neighbors 인자도 지웠습니다.

3. 고친 뒤 측정

시험 모델조각 수부피 보존깨진 조각
부품 6개가 서로 박힌 수레40 / 401.000
뚜껑 없는 그릇 (껍데기뿐)40 / 401.000
법선이 뒤집힌 모델40 / 401.000
벽 5cm 통 + 바닥에 붙은 내용물40 / 401.000
5cm 짜리 아주 작은 물건40 / 401.000
면 20,480개짜리 무거운 모델40 / 401.000
재질 3개가 섞인 모델40 / 401.000

조각 수를 올려도 유지됩니다.

모델요청 조각나온 조각부피 보존걸린 시간
벽 5cm 통1201201.002초
벽 5cm 통3003001.007초
벽 5cm 통5005001.0015초
면 20,480개 모델3003001.0012초

시간은 가져오기 + 조각내기 + 짧은 물리 굽기를 합친 값입니다.

4. 원래 있던 건물도 그대로

고치면서 기존 기능이 망가지지 않았는지 확인했습니다. 데모 건물 80조각·200조각 모두 부피 보존 1.00, 깨진 조각 0개입니다. 자동 테스트는 32개에서 36개로 늘렸고 전부 통과합니다. 새로 넣은 4개는 이번에 발견한 결함(겹침·맞닿음·분리·조각 과다)을 그대로 재현해, 같은 버그가 되살아나면 즉시 걸립니다.

5. 쓰는 법

블렌더를 몰라도 되게 만든 것이니, 말로 시키면 됩니다.

karchive에서 받은 barrel.glb 가져와서 3미터 크기로 세워줘
어떤 상태인지 먼저 봐줘
나무 재질로 오른쪽에서 세게 때려서 80조각으로 부숴줘
먼지도 조금 날리고, 카메라는 낮게

도구는 순서대로 import_model → inspect_mesh → destroy → camera 가 불립니다. inspect_mesh 는 부수기 전에 한 번 보는 습관으로 추천합니다. 닫히지 않은 껍데기면 두께를 주라고 알려 줍니다.

6. 아직 안 되는 것

7. 확인 못 한 것 — 실제 파일

보내주신 사이트의 진짜 GLB 는 한 개도 내려받지 않았습니다. 파일 다운로드는 먼저 허락을 받게 되어 있어서입니다. 위 숫자는 전부 제가 결함을 일부러 심어 만든 모델로 잰 값입니다.

해도 된다고 말씀해 주시면, 그 사이트에서 몇 개(예: 3~5개, 각 수 MB)를 내려받아 똑같이 재서 표를 채우겠습니다. 파일 이름과 용량을 먼저 알려 드리고 진행합니다.

8. 반영 위치

깃허브 main 에 올렸습니다. 커밋 da4b5d9, 버전 0.6.1. 깃허브에서 바로 설치해 실행되는 것까지 확인했습니다. 이미 등록해 두신 MCP 설정은 그대로 두면 다음 실행 때 새 버전을 받습니다.