스티브코딩

NPC

NPC 소환·편집, 버튼 명령·링크, 장면 대화, NPC메이커·스킨 애드온

도구·명령어2026-10-20 갱신

한눈에 보기

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

NPC 편집하기: 이름·대화·스킨

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

NPC 버튼으로 명령어와 링크 실행

버튼 만드는 방법
명령 줄을 바꾸면 여러 명령을 한 번에 실행. ‘버튼 모드’를 켜고 버튼 이름 입력
URL 연결할 주소와 버튼 이름 입력 → 파란색 링크 버튼으로 표시
확인 `/wb`를 한 번 더 입력해 월드 빌더를 끄고 학생 시점으로 점검. 몰입형 리더도 지원
대화 잇기 `/dialogue open @initiator <장면 태그>`로 다른 NPC·장면 대화 열기 (`change`는 기본 대화 바꾸기)
명령 버튼 (say·give)
명령 버튼 (say·give)
URL 버튼
URL 버튼
학생에게 보이는 화면
학생에게 보이는 화면

명령 버튼: 대상과 실행 시점

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

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`
- NPC 버튼의 명령은 `/` 없이 적습니다. 누른 사람에게만 주려면 `@initiator`를 씁니다.
게시판 관리자 NPC의 버튼
게시판 관리자 NPC의 버튼
갑옷 지급 명령
갑옷 지급 명령

장면이 이어지는 대화: 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 파일의 첫 장면과 버튼 (01:11)
dialogue 파일의 첫 장면과 버튼 (01:11)

dialogue 파일에 장면 더하고 월드에서 열기

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

NPC메이커: 긴 NPC 대화를 프로그램으로 만들기

  • NPC메이커는 스티브코딩이 만든 PC 프로그램으로, 행동팩의 NPC 대화(dialogue) 파일을 화면(GUI)에서 만들고 고칩니다. 장면이 많은 퀘스트·방탈출 NPC를 게임 안 편집 창 대신 한 번에 작성할 때 씁니다.
  • 흐름: NPC메이커(장면·대사·버튼을 화면에서 입력하고 저장) → 행동팩(dialogue 폴더에 대화 파일 .json 생성·수정) → 월드의 NPC(장면 태그로 대화를 열고 버튼으로 명령 실행) 할 수 있는 일
  • 새로 만들기: 새 행동팩을 만들고 NPC 대화 추가
  • 추가: 기존 행동팩을 불러와 대화 파일 추가
  • 수정: 기존 대화 파일을 불러와 고치기
  • 바로 확인: 고친 대화는 저장 후 /reload all로 반영

NPC메이커로 퀴즈 NPC 만들기

  1. GitHub에서 내려받아 실행 → 브라우저 창에서 에디션(베드락·에듀케이션) 고르기 → 기존 팩 불러오기 또는 새 팩 만들기 → ‘편집 시작’
  2. NPC 추가: 보이는 이름과 고유 아이디(영어)를 정하면 시작 장면이 생김 → 대사 쓰기
  3. ‘+ 버튼 추가’ → 버튼 끝의 점을 끌어 빈 곳에 놓으면 새 장면이 이어짐(장면 이름: testnpc_s2처럼 자동)
  4. 정답 버튼 ‘스티브코딩’의 실행 방식을 명령어로 바꾸고 /say·/give @initiator … 입력, 오답 버튼 ‘싹’은 비워 둠
  5. MC 저장 → 마인크래프트를 다시 켜고 팩 활성화 → /function summon_testnpc로 소환
① 장면이 버튼으로 이어진 도식 (01:02)
① 장면이 버튼으로 이어진 도식 (01:02)
② 정답 버튼에 명령어 넣기 (04:40)
② 정답 버튼에 명령어 넣기 (04:40)
③ function으로 NPC 소환 (06:02)
③ function으로 NPC 소환 (06:02)

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 기준.
  • 사용법은 프로그램 아래 ‘가이드 보기’, 최신판은 ‘다운로드’
월드에 팩 적용 화면 (07:51)
월드에 팩 적용 화면 (07:51)

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 종류 (02:14)
① 애드온 NPC 종류 (02:14)
② ‘그만’ 버튼에 function stop (04:52)
② ‘그만’ 버튼에 function stop (04:52)

나만의 NPC 스킨 넣기

  1. NPC Expansion 애드온을 월드에 적용(영상은 버전 9)
  2. 마인크래프트를 끄고 com.mojang → resource_packs → NPC 팩 → 텍스처 → custom 폴더 열기
  3. 바꿀 그림(custom0.png 등)을 지우고, 내가 만든 스킨 그림을 같은 이름으로 넣기
  4. 다시 켜서 ‘커스텀 NPC’로 소환하면 새 스킨이 보임. 스킨 그림은 마인크래프트 스킨 에디터 사이트(minecraftskins.com/skin-editor, 03:15)에서 만들기
① 편집 창의 커스텀 스킨 (02:48)
① 편집 창의 커스텀 스킨 (02:48)
② 내 스킨을 입은 NPC (03:36)
② 내 스킨을 입은 NPC (03:36)
교사용 메모 · 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 폴더 위치는 받은 팩에서 확인합니다.

관련 영상

관련 공식 자료

함께 보기

출처

  • 유튜브 「저 주민 아닌데요... / NPC 활용법 / 마인크래프트 에듀케이션 에디션」(2019-07-22)