
GPT-5.6과 Blender MCP로 조금 더 나은 3D 모델링을 시키기까지
요약
GPT-5.6과 Blender MCP를 활용하여 이미지 한 장으로부터 3D 모델을 생성하는 멀티 에이전트 시스템 구축 과정을 다룹니다. 단순한 프리미티브 배치를 넘어 계획, 조형, 시각 평가, 메쉬 검사를 분담하는 에이전트 구조를 통해 모델링 완성도를 높이는 시도를 기술합니다.
핵심 포인트
- Blender MCP를 활용한 멀티 에이전트 기반 3D 모델링 워크플로우 설계
- 단순 도형 배치를 넘어 정점, 모서리, 면을 편집하는 복잡한 조작의 한계 극복 시도
- 계획, 조형, 시각 평가, 메쉬 검사로 역할을 분담하는 에이전트 구성
- 인간의 개입 없는 원샷(One-shot) 실행을 목표로 한 자동화 프로세스 구축
Vtuber 「ぷらむらいす」입니다.
GPT-5.6과 Blender MCP를 사용하여, 샘플 이미지 한 장으로부터 「은 장식이 있는 검은색 앤티크 열쇠」를 3D 모델링하게 했습니다.
단순히 「이 이미지를 참고해서 만들어 주세요」라고 부탁하기만 하면, 큐브(Cube), 원기둥(Cylinder), 구(Sphere) 등을 나열한 쌓기 놀이 블록 같은 모델이 됩니다. 그래서 이번에는 Blender용 AGENTS.md와 Skill을 만들고, 나아가 계획·조형·시각 평가·메쉬 검사를 분담하는 멀티 에이전트(Multi-agent) 구성을 구축했습니다.
첫 지시부터 최종 출력까지는 4시간 26분. 인간의 중간 승인을 거치지 않는, 거의 원샷(One-shot) 실행입니다.
최종적으로 완성된 모델은 다음과 같습니다.

샘플과 똑같냐고 묻는다면, 전혀 그렇지 않습니다. 게다가 나중에 확인해보니 열쇠의 주축이 원기둥이 아니라 사각기둥인 채로 남아 있었습니다.
하지만 단순한 일회성 생성보다 전체적인 완성도는 개선되었으며, 체크포인트, 수정 전후 비교, FBX 재임포트 검증까지 자동으로 진행되었습니다.
이 기사에서는 완성품을 자랑하는 것이 아니라, GPT-5.6에게 Blender를 다루게 하기 위해 무엇을 설계했고, 어디까지 개선했으며, 무엇을 놓쳤는지를 기술합니다.
이번에 만들게 한 것
샘플로 사용한 것은 다음과 같은 앤티크 스타일의 시계형 키(Key)입니다.

용도는 VRM 모델의 머리에 떠 있는 것처럼 부착하는 액세서리입니다. 최종적으로는 단독 FBX로 출력하여 다음과 같은 요소를 갖추는 것을 목표로 했습니다.
- 검정, 흰색, 은색을 기본으로 한 기계 장치풍의 외관
- 푸른 유리 느낌의 시계판
- 시계, 연결 금구, 긴 열쇠 축, 열쇠 톱니로 구성된 세로형 실루엣
- 60단계 초침과 12단계 시침을 표현하는 UV
- 머리 장식으로서 흔들리기 위한 본(Bone) 구조
- Blender에서 출력한 FBX를 재임포트해도 깨지지 않을 것
색상이나 재질도 만들고 있지만, 본 기사의 주제는 형상과 제어 방법입니다.
첫 번째 문제는 「모델링」이 아니라 「쌓기 놀이」였다
Blender MCP를 사용할 수 있게 했다고 해서 AI가 갑자기 숙련된 모델러가 되는 것은 아닙니다.
큐브나 원기둥을 추가하고, 이동하고, 확대/축소하는 조작은 간단합니다. 반면 정점(Vertex), 모서리(Edge), 면(Face)을 편집하고, 연속된 곡면을 만들며, 여러 방향에서 참조 이미지와 비교하는 작업은 복잡합니다.
그렇기 때문에 특히 제약을 주지 않을 경우, AI는 확실히 실행할 수 있는 프리미티브(Primitive) 배치로 도망칩니다. 그리고 화면상에 그럴듯한 윤곽이 나타난 시점에서 「완성했습니다」라고 보고합니다.
조작에 성공한 것과 형상이 적절한 것이 혼동되고 있었습니다.
긴 수정 프롬프트만으로는 부족했다
첫 번째 출력에서 특히 신경 쓰였던 것은 시계에서 열쇠 톱니로 뻗어 나가는 주축이었습니다. 샘플에서는 둥근 금속 막대이지만, 출력물은 사각기둥입니다.
그래서 단일 에이전트에게 다음과 같은 조건을 세세하게 지정했습니다.
- 주축을 사각기둥이 아닌 원형 단면으로 할 것
- 사각기둥에 베벨(Bevel)을 준 것으로 끝내지 말 것
- 필요하다면 원기둥으로 다시 만들 것
- 시계 하단의 연결부를 상자 모양 그대로 남기지 말 것
- 정면, 측면, 대각선에서 확인할 것
- 수정 대상 이외의 형태는 유지할 것
- 색상이나 반사로 형상의 문제를 속이지 말 것
결과적으로 축을 둥글게 만드는 방향으로는 진행되었습니다. 하지만 이번에는 시계 아래에 샘플에는 없는 경단 모양의 연결부가 생겨났습니다.
하나의 문제를 고친 대신 다른 문제를 만든 셈입니다. 게다가 작업한 에이전트 자신이 그 결과를 평가하기 때문에 판정도 느슨해집니다.
여기서 단순히 프롬프트를 더 길게 만드는 것이 아니라, 만드는 역할과 평가하는 역할을 나눌 필요가 있다고 생각했습니다.
이번에 설계한 것
준비한 것은 단순한 장문 프롬프트가 아닙니다. 다음의 3개 층으로 나누었습니다.
AGENTS.md: 항상 지켜야 할 규약
AGENTS.md에는 Blender 작업 시 항상 지켜야 할 원칙만을 적었습니다.
- 프리미티브를 가공하지 않은 채 완성품으로 만들지 말 것
- Blender MCP를 실행과 관측의 인터페이스로 취급할 것
- 복잡한 가공에서는 Blender Python이나
bmesh를 사용할 것 - 파괴적인 변경을 하기 전에 다른 이름의
.blend파일을 저장할 것 - 렌더링 이미지를 보지 않고 시각적 성공을 주장하지 말 것
- 메쉬 검사 없이 형상 품질을 주장하지 말 것
- 한 번에 하나의 한정적인 변경만을 가할 것
세세한 절차를 모두 AGENTS.md에 채워 넣으면 불필요한 상황에서도 방대한 규칙을 짊어지게 됩니다. 그래서 전문적인 공정은 Skill로 분리했습니다.
blender-modeling Skill: 모델링 공정
Skill에는 다음과 같은 흐름을 정의했습니다.
- Blender MCP에서 이용 가능한 조작 및 관측 수단을 확인한다
- 참조 이미지, 현재 씬, 용도, 스케일을 조사한다
- 작업 전에 관측 가능한 완료 조건을 결정한다
- 큰 실루엣부터 블록아웃 (Blockout) 한다
- 정면, 측면, 대각선에서 차이를 확인한다
- Blender Python이나
bmesh로 형상을 가공한다 - 수정 전후를 비교한다 - 비다양체 (Non-manifold), 중복 정점, 노멀 (Normal) 등을 검사한다
- 체크포인트, 스크립트, 검증 이미지를 저장한다
최종 확인용으로는 quality-checklist.md도 준비했습니다. 실루엣, Transform, 메쉬 (Mesh) 정합성, 모디파이어 (Modifier), UV, 리그 (Rig), 마테리얼 (Material), 익스포트 (Export) 등을 검사합니다.
다만, 블록아웃 단계부터 모든 항목을 매번 확인하면, 정점을 조금 움직일 때마다 감사가 시작됩니다. 상세 체크리스트는 최종 검사 시에만 사용하는 구성입니다.
6개의 역할: 만드는 자와 심사하는 자를 분리
멀티 에이전트 (Multi-agent)는 다음 6개의 역할로 나누었습니다.
| 역할 | 담당 | Blender 변경 |
|---|---|---|
| Coordinator | 진행, 채택, 재시도, 롤백 (Rollback) 판단 | 불가 |
| ... |
Blender를 수정할 수 있는 것은 Modeler뿐입니다. Reviewer나 Inspector가 문제를 발견하더라도, 그 자리에서 마음대로 수정하게 하지 않습니다. 여러 담당자가 동시에 만지면 누가 무엇을 망가뜨렸는지 알 수 없게 되기 때문입니다.
흐름은 다음과 같이 설정했습니다.
인간은 「뭔가 이상해」라고 말하기만 하면 된다
당초에는 시계의 외경을 1.0으로 두고, 축의 두께나 연결부의 높이를 인간이 수치로 지정하는 안도 고려했습니다.
하지만 이미지를 보고 "이 막대의 직경은 시계 외경의 0.08배입니다"라고 즉답할 수 있는 사람은 많지 않습니다. 저에게도 어려운 일입니다.
인간이 평소 사용하는 것은 좀 더 감각적인 언어입니다.
- 너무 굵다
- 뭉툭하다
- 투박하다
- 각져 있다
- 연결이 갑작스럽다
- 뭔가 옆에서 돋아나 있다
그래서 인간은 위화감만을 전달하고, Visual Analyst가 상대적인 수정안으로 변환하도록 했습니다.
예를 들어 "연결부가 뭉툭하다"라는 지적을 다음과 같이 번역합니다.
human_feedback: "연결부가 뭉툭하다"
observations:
- "연결부의 최대 폭이 견본보다 크다"
...
여기서의 수치는 설계값이 아니라, 수정 방향을 안정시키기 위한 잠정 가이드입니다. 인간의 역할은 정확한 치수를 내는 것이 아니라, 차이를 찾아내는 것으로 정했습니다.
반복이 폭주하지 않게 하기 위한 규칙
각 반복에서는 주요 변경을 원칙적으로 1건으로 제한했습니다.
수정 후, Visual Reviewer가 외관을, Geometry Inspector가 내부 형상을 독립적으로 검사합니다. Coordinator는 결과를 다음 3단계로 처리합니다.
IMPROVED: 견본에 가까워졌으며, 새로운 중대한 문제도 없음NEUTRAL: 변화는 있었으나, 개선되었다고 말할 수 없음REGRESSED: 견본에서 멀어졌거나, 다른 파손이 발생함
NEUTRAL 또는 REGRESSED라면 후보를 채택하지 않고 직전의 체크포인트로 되돌립니다. 같은 문제로 3번 실패할 경우에는 미세 조정을 계속하지 않고, 인간에게 정지 이유를 보고하는 규칙입니다.
또한, 각 반복의 상태는 YAML로 기록했습니다.
- 인간의 지적
- 이번 수정 대상
- 변경 금지 영역
- Visual Analyst의 관측
- Planner의 작업 계획
- Modeler가 변경한 오브젝트
- Reviewer와 Inspector의 판정
- 채택, 재시도, 롤백의 이유
자연어만으로 에이전트 간에 내용을 인계하면, 이전 담당자가 결정한 보호 영역이나 실패 이유가 사라집니다. 상태를 구조화하여 남김으로써, 적어도 「무엇을 고치고 있었는지」는 추적하기 쉬워졌습니다.
4시간 26분, 19반복의 원샷 실행
이 구성에 첫 지시를 한 번 전달하고, 도중에 제가 승인을 끼어들지 않고 실행하게 했습니다.
초기 블록아웃은 다음과 같은 상태입니다.

여기서부터 시계 틀, 문자판, 연결 금구, 축의 장식, 열쇠 톱니, 마테리얼, 시계 바늘, 흔들림용 본 (Bone), FBX 출력으로 진행했습니다.
최종적인 상태 파일에는 19회분의 판단이 남아 있습니다. 모든 것이 한 번에 성공한 것은 아닙니다.
- 시계 테두리 추가로 인해 교차(Intersection) 및 Z-fighting가 발생하여 롤백 (Rollback)
- 유리 표현에서 입자감이 강해져서 롤백 (Rollback)
- 시계 바늘을 스프라이트(Sprite)화했더니 픽셀 느낌이 나서 롤백 (Rollback)
- FBX 재임포트 시 72개 상태의 시계 바늘이 모두 표시되어 별 모양으로 파손되었기 때문에 롤백 (Rollback)
- Alpha에 직접 연결되는 단순한 머티리얼 (Material)로 변경하여 재임포트 검증 통과
최종 FBX를 재임포트한 측면 이미지는 다음과 같습니다.

FBX 재임포트 검증 시의 와이어프레임 (Wireframe)도 저장되어 있습니다. 이미지는 Iteration 18의 것이지만, Iteration 19는 형태를 유지한 채 시계 바늘의 머티리얼 (Material)만 수정했습니다.

최종 검증에서는 다음 정보가 기록되었습니다.
| 항목 | 결과 |
|---|---|
| 외측 치수 | 약 65.6 × 48.6 × 250 mm |
| ... | |
최종 상태는 PASS_WITH_WARNINGS입니다. |
Unity / UniVRM 측에서는 MToon Cutout, UV 송출용 컴포넌트 (Component), Spring Bone 설정이 별도로 필요하다고 기록되어 있습니다.
그럼에도 사각기둥을 놓쳤다
이 정도로 검사하고 있다면 꽤 잘 보일지도 모릅니다.
하지만 앞서 본 최종 FBX의 측면 렌더링 (Render)을 보면, 열쇠의 주축에는 평평한 면과 모서리가 있습니다. 견본인 원형 막대가 아니라, 사각기둥인 상태입니다.
이는 멀티 에이전트 (Multi-agent)가 사각기둥으로 악화시켰다기보다, 이번 보조 에이전트에게 "주축의 단면이 정말로 원형인가"를 필수 검사 항목으로 전달하지 않았기 때문입니다.
Visual Reviewer에게는 실루엣, 부품의 비율, 연결의 자연스러움 등을 보여주었습니다. Geometry Inspector에게는 비다양체 (Non-manifold), 중복 정점, 루즈 지오메트리 (Loose geometry), 법선 (Normal), 중심 위치 등을 검사하게 했습니다.
하지만 다음 조건은 명시하지 않았습니다.
- 대각선 아래나 정면 아래에서 주축을 확인한다
- 주축에 직교하는 단면을 취득한다
- 단면 정점과 중심축 사이의 거리를 비교한다
- X 방향과 깊이 방향의 직경을 비교한다
- 네 개의 큰 평면과 모서리가 없는 것을 FAIL 조건으로 한다
일반적인 메쉬 (Mesh) 검사에서 이상이 없더라도, 사각기둥은 정상적인 메쉬입니다. "망가지지 않았는가"와 "의도한 형태인가"는 별개의 검사입니다.
그리고 Reviewer를 늘려도 모두가 정면 근처에서만 바라본다면, 모두가 똑같은 문제를 놓치게 됩니다.
멀티 에이전트화로 좋아진 점
이번 결과를 "정확한 모델이 완성되었다"라고 표현할 수는 없습니다. 그럼에도 단일 에이전트에게 모든 것을 맡겼을 때보다 좋아진 점은 있습니다.
- 만드는 담당과 채점하는 담당을 분리할 수 있었다
- 변경할 수 있는 담당을 Modeler로만 한정할 수 있었다
- 수정 대상과 보호 영역을 반복마다 남길 수 있었다
- 외관의 악화와 메쉬 파손을 별도로 판정할 수 있었다
- 실패한 후보를 체크포인트 (Checkpoint)에서 되돌릴 수 있었다
- 19회 반복의 채택·기각 이유를 추적할 수 있었다
- 최종 FBX를 재임포트하여 출력 후의 파손까지 발견할 수 있었다
- 인간이 4시간 26분 동안 계속 Blender를 조작하지 않아도 되었다
특히 Iteration 18에서 한 번 PASS로 보였던 FBX를 재임포트하여, 시계 바늘의 별 모양 파손을 발견하고 기각할 수 있었던 점은 이 구성이 기능했다는 사례입니다.
반면, 검사 항목에 들어있지 않은 사각기둥은 마지막까지 남았습니다. 역할 분담은 관측 누락을 자동으로 메워주는 마법이 아닙니다.
다음에 추가할 검사
이번 실패를 바탕으로 Visual Reviewer에는 다음 조건을 추가합니다.
주축을 정면, 측면, 대각선 45도, 대각선 아래, 정면 아래에서 확인한다.
- 평평한 면이 보이지 않는가
- 명확한 모서리가 존재하는가
...
Geometry Inspector에는 외관이 아닌 실제 단면을 검사하게 합니다.
주축에 직교하는 여러 높이에서 단면을 취득한다.
- 각 단면 정점과 중심축 사이의 거리를 비교한다
- 반지름의 편차를 확인한다
...
앞으로는 모델마다 의미적인 요구 사항을 검사에 추가할 필요가 있습니다. 이번 경우라면 "주축은 원형 단면", "시계 테두리는 동심원", "상부 링은 닫혀 있음"과 같은 조건입니다.
4시간 26분은 빠른 것인가
처리 시간만 보면 4시간 26분은 깁니다. 숙련된 인간이 같은 시간을 사용한다면 이번보다 더 좋은 형태를 만들 가능성이 높을 것입니다.
한편, 저는 그동안 내내 Blender를 조작하고 있었던 것이 아닙니다. 처음에 지시와 역할을 준비한 이후에는 AI가 체크포인트 생성, Blender Python 실행, 렌더링 (Render), 비교, 롤백 (Rollback), FBX 재임포트를 진행하고 있습니다.
따라서 현시점에서의 평가는 다음과 같습니다.
- 최단 시간 내에 고품질 완성품을 얻는 방법으로는 아직 어렵다
- 인간의 구속 시간 (Human constraint time)을 줄이는 실험으로서는 가능성이 있다
- 야간 실행이나 대량의 후보 검증과는 궁합이 좋다
- 완전 자율보다는 공정마다 인간이 승인하는 방식이 현실적이다
- 실패를 다음 검사 규칙으로 축적하는 운용이 필요하다
다음에 시도한다면, 블록아웃 (Blockout), 주요 비율, 연결부, 세부 사항, 최종 출력의 각 단계에서 인간의 승인을 거치도록 합니다. 원샷 (One-shot) 성은 떨어지겠지만, 사각기둥 상태로 4시간 동안 진행되는 사고는 방지할 수 있습니다.
요약
GPT-5.6에 Blender MCP를 전달하면 3D 모델을 만드는 것 자체는 가능합니다. 하지만 그대로 두면 다음과 같은 문제가 발생합니다.
- 프리미티브 (Primitive)를 나열했을 뿐인데 완성된 것으로 간주함
- 국소 수정 (Local modification) 과정에서 다른 부분을 망가뜨림
- 샘플에 없는 형상을 발명함
- Blender의 처리 성공을 조형의 성공과 혼동함
- 정면에서 보이지 않는 문제를 놓침
조금이라도 개선하기 위해, 이번에는 AGENTS.md,
모델링 스킬 (Modeling Skill), 품질 체크리스트, 6개의 역할, 구조화된 반복 상태, 체크포인트 및 롤백 (Rollback)을 준비했습니다.
결과적으로, 첫 블록아웃보다 전체적인 통일감은 개선되었으며, FBX 재임포트까지 포함하여 19회의 반복을 자율적으로 진행할 수 있었습니다.
하지만 4시간 26분을 들인 최종 모델에서도 열쇠의 주축은 사각기둥이었습니다. 보조 에이전트 (Auxiliary Agent)에게 원형 단면 검사를 명시적으로 지시하지 않았기 때문입니다.
현시점에서의 결론은 다음과 같습니다.
GPT-5.6의 Blender 모델링은 멀티 에이전트 (Multi-agent)화한다고 해서 자동으로 정확해지는 것은 아니다. 다만, 만드는 역할과 검사하는 역할을 분리하고, 실패를 다음 검사 항목으로 변환하면, 쌓아 올린 블록 상태에서 어느 정도 나은 수준까지는 나아갈 수 있다.
아직 내버려 두면 완성품을 만들어 주는 장인은 아닙니다.
장시간 작업시키면 일단 그럴싸한 물체를 제출하기는 하지만, 밑에서 들여다보면 사각기둥이 당당하게 남아 있는 신입 사원입니다.
그리고 현재로서는, 인간에게 마지막에 그것을 발견하고,
"너, 이거 사각기둥 아니냐?"
라고 지적하는 역할이 남아 있습니다.
이번 작업으로 작성한 리포지토리 (Repository)
원샷으로 생성시키기 위해 사용한 설정이 포함된 리포지토리입니다.
관심이 있으시다면 확인해 보시기 바랍니다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기