3D·공간편집 예시

3D 에셋을 연결해 작은 게임 마을 만들기

건물 세 개와 길·광장으로 작은 마을을 구성합니다. 모델의 크기와 앞 방향을 맞추고, 사람이 조정한 배치를 저장한 뒤 다시 확인하는 제작 레시피입니다.

GPT-6 Astra · Three.js · GLB

작성 AI Tools Lab 운영자오류 제보·정정 요청
건물 세 개와 길·광장·배치 좌표를 표현한 단색 3D 마을 콘셉트 이미지
AI 생성 콘셉트 이미지 · 실제 실행 캡처가 아닙니다. 내 자료와 목적에 맞춰 새로 만들어 보세요.

01준비할 자료

  • 마을의 간단한 위에서 본 배치도: 건물 3개, 길, 광장, 시작점과 이동 가능한 동선을 표시합니다.
  • 직접 제작했거나 사용 조건을 확인한 GLB 파일과 파일명·출처·사용 범위. 원작 게임의 에셋 파일이 제공된다고 가정하지 않습니다.
  • 좌표 기준: 바닥은 XZ 평면, 위쪽은 Y, 건물의 출입구 방향과 기준 크기를 기록합니다.
  • 배치 자료의 저장 대상: 모델 ID, 위치, 회전, 크기, 시작점. 파일 이름이 달라지거나 로딩이 실패했을 때의 처리를 정합니다.

아래 도구는 이 예시의 구현 방향입니다. 선택한 AI 도구에서 코드·파일을 다룰 수 있는지 먼저 확인하고, 설치 버전과 실행 방법을 기록하세요.

02시작 프롬프트

대괄호 안을 내 정보로 바꿔서 사용하세요.

GPT-6 Astra로 [배치도]에 맞는 작은 Three.js 마을 장면과 최소 배치 도구를 만들어 주세요.
입력 모델은 [직접 준비한 GLB 파일 목록]입니다. PicoBerry API 호출이나 원작 에셋 다운로드는 하지 마세요. 처음에는 큐브와 단순 도형으로 길·광장·건물 위치를 잡고 모델을 하나씩 교체하세요.
바닥은 XZ, 위쪽은 Y로 고정하고 [기준 크기]에 맞추세요. 각 파일의 모델 ID·기본 크기·앞 방향을 분리한 목록을 두세요.
한 건물을 선택해 위치·Y축 회전·비례 크기를 숫자로 조정하고 복제·삭제할 수 있게 하세요. 선택 표시와 UI는 단색으로 만들고 배경·SVG·재질에 그라디언트를 넣지 마세요.
회전·크기는 모델의 원본 안쪽 객체에 직접 누적하지 말고 건물별 배치 그룹에서 관리하세요. 변환을 바꿔도 아이디와 모델 파일 연결은 유지되어야 합니다.
모델 ID·위치·회전·크기·시작점·형식 버전을 JSON 파일로 내보내고 다시 불러오게 하세요. 잘못된 버전·없는 모델 ID·잘못된 숫자가 있으면 현재 배치를 보존하고 오류를 알리세요.
GLB 로딩 실패에는 해당 건물의 이름과 임시 도형을 보여 주세요. UI를 멈추거나 전체 장면을 빈 화면으로 만들지 마세요.
완성 확인은 입구 방향·크기·위에서 본 동선, 저장 JSON과 다시 읽은 배치의 일치입니다. 전체 RPG·전투·리깅·NPC 행동은 범위에서 제외합니다.

03만들고 다듬는 순서

  1. 마을의 모양을 단순 도형으로 정합니다

    건물 파일을 모두 불러오기 전에 큐브 세 개와 길·광장으로 배치를 만듭니다. 시작점에서 광장까지 막히지 않는지 위에서 보고, 좁아지는 길이 있으면 먼저 넓힙니다. 정교한 모델을 사용해도 기본 배치가 불편하면 해결되지 않으므로 에셋의 장식보다 동선을 먼저 결정합니다.

  2. 모델 하나로 크기와 앞 방향을 맞춥니다

    첫 GLB를 불러와 정한 기준 크기와 비교합니다. 건물 입구가 어디를 향하는지 확인하고, 파일마다 방향이 다르면 모델 목록에 보정 값을 기록합니다. 배치도에 맞춰 위치만 지정했는데 건물이 90도 돌아가 있다면 좌표보다 모델 앞 방향을 먼저 확인합니다.

  3. 파일의 원형과 배치 변환을 분리합니다

    같은 건물 파일을 두 번 쓴다고 두 건물이 항상 같은 위치에 있어야 하는 것은 아닙니다. 건물마다 별도 배치 그룹을 두고 위치·회전·크기를 조절하도록 요청합니다. 모델 ID는 어떤 파일을 쓰는지, 배치 ID는 장면 속 어느 건물인지를 구별하는 값입니다. 원본 안쪽 객체를 고친 상태로 재사용하면 다른 복제본까지 바뀌거나 불러올 때 변환이 다시 적용될 수 있으니 따로 관리합니다.

  4. 사람이 고친 배치를 저장합니다

    건물 하나를 직접 옮기고 돌린 뒤 그 배치를 JSON으로 저장해 보세요. 같은 모델로 만든 건물이 두 개라면 각각 다른 배치 ID가 있어야 합니다. 다시 불러왔을 때 위치·회전·크기가 그대로인지 화면의 값과 저장된 값을 대조합니다. 처음 배치로 돌아가 버린다면 저장한 값이 언제 적용되는지부터 확인합니다.

  5. 잘못된 파일과 누락 모델을 나누어 처리합니다

    잘못된 JSON을 읽었을 때 현재 마을을 먼저 지우지 않도록 요청합니다. 데이터 검증을 끝낸 뒤 배치를 적용하고, 모델 파일이 없으면 이름과 임시 도형으로 누락 위치를 보여 줍니다. 빈 화면은 무엇이 실패했는지 알기 어려우므로 배치 파일 오류와 GLB 로딩 오류를 구별합니다.

  6. 저장 전후 같은 시점에서 배치를 비교합니다

    위에서 보는 카메라 위치를 고정하고 저장 전과 다시 읽은 뒤의 입구·길·건물 수를 비교합니다. 원작 Deller 제작 과정에는 배포 때 배치가 빠져 개발자가 복구한 사례가 있습니다. 이 레시피에서는 그 경험을 참고해 저장된 좌표와 초기화 순서를 확인하며, 원작의 비공개 편집기를 사용했다고 설명하지 않습니다.

04완성 전 체크

직접 확인한 항목만 체크하세요. 체크 상태는 저장되거나 서버로 전송되지 않습니다.

05막힐 때 확인할 것

모델을 바꾸니 입구가 뒤를 향하거나 크기가 갑자기 커집니다

배치 좌표와 파일별 기본 방향·단위를 나누어 확인합니다. 모델 목록에 크기와 앞 방향 보정을 기록하고, 새 파일 하나를 먼저 기준 장면에서 확인한 뒤 전체 배치에 적용합니다.

저장했다 다시 읽으면 복제한 건물이 같은 자리에 겹칩니다

모델 파일 ID만 저장했는지 확인하고 각 배치의 고유 ID와 변환을 함께 저장하도록 요청합니다. 같은 파일을 사용하는 건물도 별도 배치 그룹으로 만들어 내보낸 값대로 생성하게 합니다.

깨진 JSON을 불러오자 지금 작업한 마을이 사라집니다

현재 배치를 지우기 전에 새 데이터의 형식·버전·ID·숫자 범위를 검증하도록 요청합니다. 검증 실패 시 기존 배치를 유지하고, 유효한 파일을 다시 선택할 수 있는 오류 안내를 제공합니다.

06출처와 참고 자료

아래 공개 사례는 주제의 참고 자료입니다. 이 글의 도구 선택·절차·프롬프트는 AI Tools Lab의 독립적인 편집 예시이며, 원 제작자의 실제 입력이나 실행 재현 기록이 아닙니다.

참고 사례에서 GPT-6 Astra는 게임 코드와 제작용 편집기를, PicoBerry는 모델·일부 리깅·기본 애니메이션을 맡았고 개발자는 배치를 조정했습니다. 이 가이드는 직접 준비한 모델로 작은 마을의 배치·저장을 구성하는 방향이며, 유료 생성 API나 원작의 미공개 편집기가 필요하지 않습니다.