스티브코딩

NPC와 AI 확장

NPC 버튼으로 퀴즈·대화·코드 실행, 에이전트 인공지능 확장으로 감지·분석

활동2026-10-20 갱신

한눈에 보기

  • 무엇: NPC 대화 버튼에 명령을 넣어 안내·퀴즈·보상·이어지는 이야기를 만들고, 에이전트 인공지능 확장 블록으로 주변을 감지·분석하기
  • 누구: 코드작성기 기초(채팅 명령어·에이전트)를 익힌 학생, 월드를 꾸미는 교사
  • 몇 분: 교과 단원에 맞는 활동만 골라 1~2차시
  • 결과물: 퀴즈 NPC, 코드를 실행하는 NPC 버튼, 몹을 찾아 공격하는 에이전트, 캔 블록을 세어 확률을 짐작하는 에이전트

NPC 만들고 꾸미기

  1. /summon npc 이름 → NPC 소환 (처음에는 대화가 없음)
  2. /wb → 월드 빌더 권한을 얻고 NPC 클릭
  3. 이름·대화(대화 편집)·외형(스킨) 바꾸기
  4. 고급 설정 → URL 추가: 버튼 이름과 연결할 주소 (예: 스티브코딩 채널)
  5. 다시 /wb 로 권한을 끄고 NPC에게 말을 걸어 확인
  • 소환할 때 쓴 이름이 NPC의 진짜 이름입니다. 화면에 보이는 이름은 나중에 얼마든지 바꿔도 됩니다.
① NPC 창: 이름·대화 편집·외형·고급 설정 (00:15)
① NPC 창: 이름·대화 편집·외형·고급 설정 (00:15)
② 고급 NPC 설정: URL 추가 · 명령 추가 (00:50)
② 고급 NPC 설정: URL 추가 · 명령 추가 (00:50)

퀴즈 NPC: 정답이면 보상 주기

  • 대화에 문제를 씁니다. 예: “빨리 수확하려면 무엇이 필요할까?”(자막 기준)
  • 고급 설정 → 명령 추가 → 버튼 이름(보기)과 명령을 넣습니다. 버튼 하나에 명령을 여러 개 넣을 수 있습니다.
버튼(보기) 넣은 명령 결과
물을 더 준다 `/say 틀렸습니다` 오답 안내
뼛가루를 뿌린다 `/say 정답입니다` + `/give @initiator apple` 정답 안내 + 사과 1개
- `@initiator` = NPC 버튼을 누른 플레이어. 그래서 정답을 고른 학생에게만 보상이 갑니다.

이어지는 대화와 보상 주고 떠나는 NPC

  • 이야기꾼 NPC: 버튼에 /dialogue open … 을 넣어 다음 장면(장면 2) 대화로 이어 갑니다. 장면 2의 NPC는 바닥 아래에 숨겨 둡니다. 명령 형식은 /dialogue open <NPC 대상> <플레이어 대상> [장면 이름]이고, 숨긴 NPC도 플레이어 가까이 불러와진(로드된) 곳에 있어야 열립니다(2026-10 공식 문서 기준, NPC Dialogue 문서). 영상 속 실제 명령은 3:28 장면에서 /wb로 엽니다.
  • 몰입형 리더: NPC 대화의 읽어 주기 버튼 → 대사를 소리로 읽어 줌. 설정에서 번역 언어(예: 영어(영국))를 고르고 ‘문서’를 켜면 대사가 번역됩니다.
  • 보상 주고 떠나는 NPC: 퀴즈를 맞히면 “보상을 고르세요” → 보상 버튼(예: 활, 구운 닭고기)을 누르는 순간 /spreadplayers 47 0 <거리> <최대 범위> @s 로 NPC 자신이 무작위 위치로 떠납니다(거리·범위 값은 영상 7:58 장면에서 확인).
  • 퀴즈 예: “예수의 탄생을 기리는 축제는?” → 성탄절 / “조선시대 왜의 침략을 막아낸 영웅은?” → 이순신
  • 램프의 요정: 요술 램프를 휘두르면 요정 NPC가 내 곁에 나타납니다. 멀리 가도, 물속에서도 오지만 높은 곳까지는 오지 못합니다(만드는 코드는 책 『마인크래프트 에듀케이션 프로젝트 40』 참고).
몰입형 리더 설정: 번역 언어·단어 단위·문서 (04:08)
몰입형 리더 설정: 번역 언어·단어 단위·문서 (04:08)

NPC로 코드 실행하기: /tell @initiator

  • NPC 고급 설정 → 명령 추가 / 코드작성기: 다른 플레이어가 (a)라고 하면 실행
  1. NPC 명령 버튼에 입력: /tell @initiator a
  2. 뜻: NPC와 대화한 플레이어에게 ‘a’를 전달
  3. 결과: 그 플레이어의 ‘다른 플레이어가 a라고 하면’ 코드가 실행
  • 좋은 점: NPC 버튼만 누르면 학생이 코드를 몰라도 실행됨
NPC 고급 설정 → 명령 추가
NPC 고급 설정 → 명령 추가
다른 플레이어가 a라고 하면 실행
다른 플레이어가 a라고 하면 실행

NPC 버튼 하나로 바꿀 수 있는 것

월드 좌표로 텔레포트
월드 좌표로 텔레포트

특정 위치로 이동 월드 좌표로 순간이동 → 활동 장소 안내

정해진 위치에 동물 소환
정해진 위치에 동물 소환

몹 소환 정해진 위치에 동물 소환 → 관찰·미션

월드 좌표에 공기 블록 놓기
월드 좌표에 공기 블록 놓기

특정 위치 블록 없애기 문·벽을 공기 블록으로 → 미션 통과 시 길 열기

시간 설정: 밤
시간 설정: 밤

시간 바꾸기 밤으로 바꾸기 → 장면 연출

에이전트 인공지능 확장 불러오기 ①②

  • ① 확장에서 직접 추가: 코드작성기 새 프로젝트 → 확장 → 검색창에 https://github.com/ssakspirit/AI-extension → ‘ai’ 확장 선택 → 블록 목록에 ‘인공지능’ 범주가 생김
  • ①은 가장 쉽지만 프로젝트마다 주소를 복사·붙여넣기 해야 합니다.
  • ② education.json (영상 권장): GitHub 페이지에서 education.json 내려받기 → 에듀케이션 월드 폴더 중 가장 최근 월드 폴더에 넣기 → 월드에 들어가 C 키 → 튜토리얼이 열림 → 확인 → 완료
  • 튜토리얼 이름은 ‘인공지능 확장 활용 아이디어’, 소개는 “인공지능 확장의 세 가지 핵심 기능을 어떻게 활용할 수 있는지 알아봅시다!”
① 확장 검색 결과 ‘ai’: 엔티티 감지·주변 탐색 (00:34)
① 확장 검색 결과 ‘ai’: 엔티티 감지·주변 탐색 (00:34)
② GitHub의 방법 2: education.json 파일 사용(권장) (00:59)
② GitHub의 방법 2: education.json 파일 사용(권장) (00:59)
③ C 키로 열린 튜토리얼 (01:20)
③ C 키로 열린 튜토리얼 (01:20)

에이전트 인공지능 확장 불러오기 ③: 커맨드 블록·NPC 버튼

  • 학생 모두에게 같은 튜토리얼을 한 번에 나눠 줄 때 씁니다.
  • NPC: /wb 로 권한을 얻고 NPC 고급 설정 → 명령 추가 → 버튼 모드로 아래 명령 → 버튼을 누른 사람(@initiator)에게 튜토리얼이 불러와짐
codebuilder navigate @initiator false https://minecraft.makecode.com/#tutorial:github:ssakspirit/AI-extension-tutorial/tutorial-examples
  • 커맨드 블록: 아래 명령을 커맨드 블록에 넣고 버튼으로 실행 → 가장 가까운 플레이어(@p)에게 불러옴(GitHub README 기준)
codebuilder navigate @p false https://minecraft.makecode.com/#tutorial:github:ssakspirit/AI-extension-tutorial/tutorial-examples
  • 실행해도 겉으로는 아무 일도 없어 보이지만, C 키를 누르면 튜토리얼이 새로 열립니다.
NPC 명령 버튼에 넣은 codebuilder navigate 명령 (02:05)
NPC 명령 버튼에 넣은 codebuilder navigate 명령 (02:05)

에이전트 인공지능 확장: 감지하고 분석하는 에이전트

기능 하는 일 AI 요소
주변 감지 에이전트 반경 ○칸 안의 몹·NPC를 찾아 개수 알리기 감지
대상 골라 공격 반경 10칸의 몹 하나를 대상으로 → 에이전트가 공격 판단·행동
플레이어 아이템 확인 핫바·손에 삽이 있는지 확인 → 있으면 신속 효과 조건
블록 분석 아래로 파며 부순 블록 기록 → 석탄·철광석 개수 보고 데이터·확률
인벤토리 정리 종류별로 정렬, 필요한 아이템만 내려놓기 분류
영상: 에이전트 인공지능 확장 명령블록
영상: 에이전트 인공지능 확장 명령블록

감지 블록: 몹 찾기·공격·아이템 확인

실행 블록 구성(화면 기준)
채팅 명령 1 채팅창에 말하기: [에이전트 주변 반경 30칸에서 몹 최대 10개 감지]
삽 사용(오른쪽 클릭) 텔레포트: 타겟 대상 내 에이전트(@c), 목적타겟 [플레이어 주변 반경 10칸에서 몹 최대 1개 감지] → 에이전트가 공격 앞으로
채팅 명령 2 채팅창에 말하기 + 다음 효과 부여하기: 대상 [에이전트 주변 반경 10칸에서 플레이어 최대 1개 감지 이(가) 핫바에 아이템(삽) 소지], 지속 시간 10, 배수 1
- 감지 결과가 **대상 선택자**처럼 쓰여서, 말하기·텔레포트·효과 블록의 대상 칸에 그대로 끼울 수 있습니다. - 영상: 처음 반경 10칸에서는 NPC만 찾음 → 반경을 늘리자 양·스켈레톤·크리퍼·박쥐·돼지·좀비까지 말해 줌
① 채팅 명령 1 결과: 감지한 몹 목록 (02:37)
① 채팅 명령 1 결과: 감지한 몹 목록 (02:37)
② 채팅 명령 2: 삽을 가진 플레이어 감지 + 효과 (03:12)
② 채팅 명령 2: 삽을 가진 플레이어 감지 + 효과 (03:12)

블록 분석으로 확률 짐작하기·인벤토리 정리

다음 채팅명령어를 입력하면: "3"
    블록 분석 초기화
    추적 블록 추가 (석탄 광석)   추적 블록 추가 (철광석)
    에이전트 아래 방향 블록 분석 → 에이전트가 이동 방향 아래로 거리 1
    100 번 반복
        10 번 반복: 에이전트 앞 방향 블록 분석 → 앞으로 1 → 모든 블록 수집하기
        에이전트가 회전 왼쪽 ×2 → 아래 방향 블록 분석 → 아래로 1
    채팅창에 말하기: 연결 "전체:" 전체 추적 개수 "석탄:" 추적 개수 "철광석:" 추적 개수
    에이전트가 플레이어에게 텔레포트
다음 채팅명령어를 입력하면: "4"  → 에이전트 인벤토리 정렬
다음 채팅명령어를 입력하면: "5"  → 에이전트가 앞 방향으로 아이템(석탄으로 보임) 내려놓기
  • ‘블록 분석’ = 부수면서 그 블록을 기록하는 동작. 영상 결과: 전체 1099개 중 석탄 4개, 철광석 3개 → “어느 정도 확률로 나올까?”
① 채팅 명령 1–5 전체 코드 (03:46)
① 채팅 명령 1–5 전체 코드 (03:46)
② 채팅 명령 4로 종류별 정렬된 에이전트 인벤토리 (05:00)
② 채팅 명령 4로 종류별 정렬된 에이전트 인벤토리 (05:00)
교사용 메모 · 에이전트 인공지능 확장 더 알기
  • 스티브코딩이 만든 확장 블록 + 튜토리얼 묶음입니다. 영상은 채팅명령어 1~5로 기능을 하나씩 시연합니다.
  • 불러오기: ① 코드작성기 → 확장 → GitHub 주소 붙여넣기 ② education.json 파일을 최신 월드 폴더에 넣고 월드에서 C키 → 튜토리얼이 바로 열림(영상 권장) ③ 커맨드 블록·NPC 명령 버튼에 튜토리얼 불러오기 명령 입력(커맨드 블록은 가장 가까운 플레이어, NPC는 @initiator).
  • GitHub 화면의 education.json 내용(월드에 들어가면 코드작성기에서 튜토리얼이 자동으로 열리게 함):
{
    "codebuilder": {
        "canResize": true,
        "defaulturi": "https://minecraft.makecode.com/#tutorial:github:ssakspirit/AI-extension-tutorial/tutorial-examples"
    },
    "commands": {
        "hiddenFromPlayer": [""]
    }
}
  • 커맨드 블록에 넣는 명령어는 GitHub README의 codebuilder navigate @p false …입니다(영상 화면에는 빈 커맨드 블록만 보임). NPC용과 다른 점은 대상이 @initiator 대신 @p라는 것뿐입니다.
  • 블록 분석은 에이전트가 아래로 파 내려가며 부순 블록을 기록 → 전체 중 석탄·철광석이 몇 개였는지 채팅으로 → “어느 정도 확률로 나오는가” 토의(데이터·확률 연계). 영상에서는 전체 1099개 중 석탄 4개·철광석 3개였습니다(자막 기준, 채팅 화면은 4:28 장면).
  • 영상 속 안내: 시연 영상에서 아이템 아이디가 없는 블록이 사라지던 현상은 수정되었습니다.
  • 추적 블록 두 개는 석탄 광석·철광석입니다(자막 4:31 “석탄 4개, 철광석 3개”, 4:40 인벤토리 “석탄과 철광석”). 채팅 명령 5로 내려놓는 아이템은 검은 덩어리 그림이며 5:06 장면에서 확인합니다.
  • 「5. AI와 마인크래프트」의 감지-사고-행동 설계 활동과 이어서 쓰면 좋습니다.

프로젝트 40: 짧은 프로젝트로 차시 아이디어 찾기

주제 프로젝트 예 수업 포인트
NPC 링크 NPC · 퀴즈 NPC · 보상 주고 떠나는 NPC · 이어지는 대화 · 부르면 나타나는 램프의 요정 정답 보상, 장면 연결
수학 약수를 블록 넓이로 · 넓이와 둘레(실행 4 5) · 몇 마리인지 블록 숫자로 표시 곱셈식, 단위 넓이, 세기
과학 · 지리 화산 · 홍수 · 지진 · 융기 · 등고선 · 적도와 본초자오선 · 방향 확인 현상 재현, 지도 읽기
게임 활쏘기 연습(점수) · 파쿠르 계단(시간) · 모래벽 점프맵 · 동물 점수 · 몹 탐지기 점수·시간 측정
에이전트 레드스톤 따라가기 · 동굴 찾아 사다리 · 채굴 도우미 · 같은 높이에 블록 놓기 감지·조건·반복
- **이렇게 쓰기**: 1분 안팎 장면을 도입 영상으로 / “어떻게 만들었을까?” 추측 → 직접 만들기 / 교과 단원에 맞는 것만 골라 1~2차시
영상: 프로젝트 40 한번에 몰아보기
영상: 프로젝트 40 한번에 몰아보기
교사용 메모 · 프로젝트 40 더 알기
  • 책 「마인크래프트 에듀케이션 프로젝트 40」(이상민)의 프로젝트를 영상 하나로 모아 본 것입니다. 건축·게임 제작·탐험·수학·과학·지리 주제, 코드작성기와 명령어·교육용 아이템을 함께 씁니다. 프로젝트별 코드는 영상에 거의 나오지 않으므로 책을 참고합니다.
  • 영상 시각(초): 링크 NPC 0 · 퀴즈 NPC 36 · 딱지날개 비행 궤적 83 · 지구 기준선 105 · 초식/육식 무작위 소환 166 · 이어지는 대화 NPC 187 · 레드스톤 따라가는 에이전트 264 · 우민 습격 332 · 넓이·둘레 394 · 보상 NPC 457 · 동물 점수 499 · 방향 확인 543 · 홍수 586 · 화산 633 · 레일 691 · 채굴 에이전트 740 · 모래벽 점프맵 852 · 지진 904 · 달팽이 길 945 · 마법 아이템 1002 · 램프의 요정 1056 · 활쏘기 1105 · 약수 1159 · 융기 1203 · 등고선 1230 · 실명 지팡이 1277 · 양 몇 마리 1372 · 파쿠르 계단 1419 · 몹 탐지기 1456 · 선 그리기 1499 · 건축물 복사 1550 · 동굴 찾기 에이전트 1589
  • 퀴즈 NPC 정답 버튼 명령 예: /give @initiator apple. 보상 NPC는 버튼을 누르면 spreadplayers로 자기 자신(@s)을 무작위 위치로 보내 사라지는 방식입니다(자막: 중심 x 47, z 0. 거리·범위는 영상 7:58 장면에서 확인).
  • 이야기꾼 NPC의 대사를 몰입형 리더로 번역해 보여 주면 외국어 수업·다문화 학생 지원에도 쓸 수 있습니다(제안).
  • 몹 탐지기는 밤에 걸을 때 반경 20칸 안의 몬스터 수를 액션바에 “감지된 몬스터: 3 마리”처럼 보여 줍니다. 에이전트 인공지능 확장의 ‘감지’와 비교해 보기 좋습니다.
  • 활쏘기 연습은 과녁을 맞히면 과녁이 사라지고 아래 커맨드 블록이 다시 붙여 넣어 다른 곳에 나타나는 구조이며, 점수가 화면 왼쪽에 표시됩니다.
  • 같은 시리즈 숏츠 중 램프의 요정·동물 점수는 '자료 링크'에 따로 넣었고, 나머지는 몰아보기 영상의 장면 링크로 대신했습니다.

관련 영상

관련 공식 자료

함께 보기

출처

  • 유튜브 「에이전트 인공지능 확장 명령블록 만들어봤습니다.」(2026-04-22)