한눈에 보기
- NPC(Non-Player Character)는 수업 안내, 힌트, 과제를 알려 주는 움직이지 않는 캐릭터입니다.
- 월드 빌더를 켜고 아이템 창에서 NPC 스폰알을 꺼내 소환합니다. 명령어로는
/summon npc - 월드 빌더 권한이 있어야 소환·삭제·편집할 수 있고, 없으면 대화만 할 수 있습니다.
- 그래서 학생이 만든 NPC를 다른 학생이 실수로 부수는 일을 막을 수 있습니다. 월드 빌더는
/wb로 켜고 끕니다.


NPC 편집하기: 이름·대화·스킨
- NPC를 오른쪽 클릭 → 이름·대화·스킨 정하기
- 고급 설정 → URL 추가 / 명령 추가
- 대화를 입력하지 않으면 NPC는 아무 말도 하지 않습니다.
- 팁: 대화창에는 활동 안내를, 버튼에는 아이템 지급·이동·자료 링크를 넣어 ‘안내 데스크’처럼 씁니다.


NPC 버튼으로 명령어와 링크 실행
| 버튼 | 만드는 방법 |
| 명령 | 줄을 바꾸면 여러 명령을 한 번에 실행. ‘버튼 모드’를 켜고 버튼 이름 입력 |
| URL | 연결할 주소와 버튼 이름 입력 → 파란색 링크 버튼으로 표시 |
| 확인 | `/wb`를 한 번 더 입력해 월드 빌더를 끄고 학생 시점으로 점검. 몰입형 리더도 지원 |
| 대화 잇기 | `/dialogue open |



명령 버튼: 대상과 실행 시점
- 버튼의 명령은 NPC가 실행합니다.
@s는 NPC 자신이라,/tp @s ~0 ~10 ~0을 넣으면 NPC가 위로 올라갑니다. - 말을 건 학생을 움직이려면
@initiator(대화한 사람)나@p(가장 가까운 플레이어)를 씁니다:/tp @p ~0 ~10 ~0 - 버튼 모드: 켜면 대화창에 버튼이 생기고, 누를 때 실행됩니다.
- 입장 시 / 퇴장 시: 버튼 없이 대화창을 열 때·닫을 때 바로 실행됩니다.
- URL은
http또는https로 시작하는 주소만 됩니다.

NPC 활용: 버튼 하나로 아이템·효과 주기
- 예: 게시판 관리자 NPC — 카메라·포트폴리오·책 받기, 비행 능력 추가
| 버튼 이름 | 명령어 |
| 투명 | `effect @p invisibility 30 1` |
| 신속 | `effect @p speed 40 5` |
| 점프 강화 | `effect @p jump_boost 40 15` |
| 활·화살 | `give @p bow` / `give @p arrow 30` |
| 갑옷 | `give @p diamond_chestplate` |
| 텔레포트 | `tp @initiator 0 0 0` |
| 말하기 | `say 말할 내용` |
| 좀비 소환 | `summon zombie 0 0 0` |


장면이 이어지는 대화: dialogue 파일
- 여러 장면으로 이어지는 대화는 행동팩의
dialogue폴더에 있는 JSON 파일에 저장합니다(리소스팩에는 없음). - 장면 하나 =
scene_tag(장면 이름) ·npc_name(말하는 NPC) ·text(대사) ·buttons(버튼 이름name과 명령commands) - 버튼 명령으로 다른 장면을 열면 대화가 갈라집니다(예: ‘네! 좋아해요’ → s2, ‘아니요...’ → s3).
"scene_tag": "s1",
"npc_name": "스티브코딩",
"text": "게임을 좋아합니까?",
"buttons": [
{ "name": "네! 좋아해요", "commands": ["/dialogue open @e[name=스티브코딩] @initiator s2"] },
{ "name": "아니요...", "commands": ["/dialogue open @e[name=스티브코딩] @initiator s3"] }
]

dialogue 파일에 장면 더하고 월드에서 열기
- 마지막 장면 끝에 쉼표를 찍고 새 장면을 붙입니다(예:
"scene_tag": "s6", 버튼 명령"/give @initiator apple"). bridge.에서는 Ctrl+Space로 항목을 추천받고, 형식이 틀리면 빨간 줄이 생깁니다. - 대화 파일의 NPC 이름(예: 스티브코딩)으로 NPC를 소환합니다. NPC를 꺼내 이름만 바꾸면 연결되지 않습니다.
- 고급 설정 버튼에 첫 장면을 여는 명령을 넣습니다:
/dialogue open @s @initiator s1 - 에듀케이션 에디션으로 옮길 때: bridge.의 ‘…’ → ‘Export as .mcaddon’ →
builds폴더의 파일을 열어 가져오기


NPC메이커: 긴 NPC 대화를 프로그램으로 만들기
- NPC메이커는 스티브코딩이 만든 PC 프로그램으로, 행동팩의 NPC 대화(dialogue) 파일을 화면(GUI)에서 만들고 고칩니다. 장면이 많은 퀘스트·방탈출 NPC를 게임 안 편집 창 대신 한 번에 작성할 때 씁니다.
- 흐름: NPC메이커(장면·대사·버튼을 화면에서 입력하고 저장) → 행동팩(dialogue 폴더에 대화 파일
.json생성·수정) → 월드의 NPC(장면 태그로 대화를 열고 버튼으로 명령 실행) 할 수 있는 일 - 새로 만들기: 새 행동팩을 만들고 NPC 대화 추가
- 추가: 기존 행동팩을 불러와 대화 파일 추가
- 수정: 기존 대화 파일을 불러와 고치기
- 바로 확인: 고친 대화는 저장 후
/reload all로 반영
NPC메이커로 퀴즈 NPC 만들기
- GitHub에서 내려받아 실행 → 브라우저 창에서 에디션(베드락·에듀케이션) 고르기 → 기존 팩 불러오기 또는 새 팩 만들기 → ‘편집 시작’
- NPC 추가: 보이는 이름과 고유 아이디(영어)를 정하면 시작 장면이 생김 → 대사 쓰기
- ‘+ 버튼 추가’ → 버튼 끝의 점을 끌어 빈 곳에 놓으면 새 장면이 이어짐(장면 이름:
testnpc_s2처럼 자동) - 정답 버튼 ‘스티브코딩’의 실행 방식을 명령어로 바꾸고
/say·/give @initiator …입력, 오답 버튼 ‘싹’은 비워 둠 - MC 저장 → 마인크래프트를 다시 켜고 팩 활성화 →
/function summon_testnpc로 소환



NPC메이커: 고친 대화 반영과 월드에 팩 넣기
- 고친 뒤에는 MC 저장 → 게임에서
/reload all./reload만으로는 다 적용되지 않습니다(/reload all은 자동으로 나갔다 다시 들어옴). - 팩은
development_behavior_packs·development_resource_packs에만 생기므로, 그대로 월드를 내보내면 대화가 빠집니다. - 공유 전: 월드에서 나간 뒤 첫 화면 월드에 팩 적용에서 팩과 월드를 고르고 ‘월드에 적용’ → 내보낸
.mcworld에서도 작동 - 함수는
summon_<아이디>(소환)와update_<아이디>(갱신)가 함께 생깁니다. 갱신 함수는 이미 소환한 NPC를 다시 소환하지 않고 최신 장면으로 다시 물려 줍니다(/reload all뒤/function update_<아이디>, 팩 전체는update_all) — NPC메이커 README 기준. - 사용법은 프로그램 아래 ‘가이드 보기’, 최신판은 ‘다운로드’

NPC메이커 쓸 때 주의할 점
- 새로 만든 팩은 마인크래프트를 다시 시작해야 적용됩니다.
- 월드를 내보내기 전에 팩을 월드에 적용해 둡니다.
- 첫 대사를 바꾸면 NPC를 다시 소환합니다.
- 한 행동팩 안에서 장면 태그는 겹치면 안 됩니다.
- 첫 장면 이름을 바꾸면 소환할 때 첫 장면을 못 불러옵니다.
- 장면 이름(장면 태그)은
dialogue open/change명령에서 그대로 쓰므로 짧고 분명하게 짓습니다(예:q1_0,q1_1).
교사용 메모 · NPC메이커 예전 버전 메모
- 예전 버전(2023,
npc.exe)은 창에서 1 에디션(교육용에디션·베드락에디션) → 2 행동팩 고르기·새 이름 → 3 NPC 이름 → 4 소환 명령어 이름 → 5 첫 장면 이름 → 6 다이얼로그 파일 이름을 차례로 입력하고 ‘대화 편집창 열기’를 누릅니다. - 장면은 10개, 버튼은 6개까지. 버튼 실행 방식은 장면연결·명령어·URL 세 가지. 여러 명령어는 쉼표로 구분하고 쉼표 뒤에 띄어 쓰지 않습니다. URL은 교육용 에디션에서만 됩니다.
- 예: ‘사과 받기’ 버튼 = 명령어
give @initiator apple. 소환은/function a(4번에 쓴 이름). - 고친 대화는 월드를 껐다 다시 켜고, 기존 NPC를 없앤 뒤 다시 소환해야 반영됩니다. 다시 열 때는 같은 행동팩을 고르고 6-a에서
a.json을 골라 엽니다. - 2026년 새 버전(브라우저 화면, 장면 도식)이 나왔으므로 수업에는 새 버전을 씁니다.
NPC Expansion 애드온: 따라오는 NPC
- 무료 애드온 NPC Expansion(mcpedl)을 넣으면 사람·주민·동물·몬스터 모양 NPC가 생깁니다. 교육용·베드락 모두 가능, 행동팩·리소스팩을 함께 켭니다.
- 왼쪽 클릭으로 없어지지 않으므로 이름을 붙여 소환하고 이름으로 없앱니다:
/summon npc:npc_animals a→/kill @e[name=a] - 함수:
follow(가장 가까운 플레이어를 따라옴) ·stop(멈춤) ·tall·medium·small·xtra_small(이름표 높이) - 채팅창에서는
/execute @e[name=a] ~~~ function small(영상의 옛 문법), NPC 버튼에는function follow·function stop만 넣으면 됩니다(NPC가 실행).


나만의 NPC 스킨 넣기
- NPC Expansion 애드온을 월드에 적용(영상은 버전 9)
- 마인크래프트를 끄고
com.mojang→resource_packs→ NPC 팩 → 텍스처 →custom폴더 열기 - 바꿀 그림(
custom0.png등)을 지우고, 내가 만든 스킨 그림을 같은 이름으로 넣기 - 다시 켜서 ‘커스텀 NPC’로 소환하면 새 스킨이 보임. 스킨 그림은 마인크래프트 스킨 에디터 사이트(minecraftskins.com/skin-editor, 03:15)에서 만들기


교사용 메모 · NPC 애드온·스킨 메모
/summon자동 완성에 보이는 애드온 NPC:npc:attacker,npc:follow,npc:npc_animals,npc:npc_custom,npc:npc_custom_slim,npc:npc_humans,npc:npc_monsters,npc:npc_villagers(2025 영상에는npc:npc_myentity도 보임).- NPC 설정에서 보이는 이름(예: 늑대)을 바꿔도 명령어에서 쓰는 이름(a)은 그대로입니다.
/execute @e[name=a] ~~~ function small은 2022 영상의 옛 문법입니다. 지금 문법으로는execute as @e[name=a] at @s run function small로 씁니다(2026-10 공식 execute 문서 기준).- 스킨 그림은
custom0.png~`custom20.png`처럼 번호가 붙어 있고, 번호가 ‘커스텀 NPC 생성 알’의 스킨 순서에 대응합니다. NPC 스킨은 플레이어 스킨과 달라 처음부터 만들기 어려워 애드온 그림만 바꾸는 방법을 씁니다. - mcpedl에는 지금 버전 9가 없고, 기본 애드온과 확장을 합친 NPC + Expansion V11(2026-02, 1.19·1.21·26.0 지원)만 올라와 있습니다(2026-10 확인). 영상(버전 9)과 폴더 구성이 다를 수 있으니
custom폴더 위치는 받은 팩에서 확인합니다.