개요
마법 부여는 마인크래프트마법 부여대와 마인크래프트청금석을 사용하여 아이템에 마법을 부여하는 시스템이다. 마법 부여대를 우클릭하면 GUI가 열리며, 왼쪽 슬롯에 대상 아이템과 청금석을 넣으면 오른쪽 세 개의 슬롯에 표준 은하계 알파벳으로 된 문구와 소비될 경험치 레벨이 표시된다. 원하는 슬롯을 선택하면 해당 레벨만큼 플레이어의 경험치 레벨이 감소하며 마법 부여가 완료된다.[1]
제공되는 마법 레벨은 주변 마인크래프트책장의 개수(최대 15개)에 따라 결정된다. 기본 마법 레벨(base)은 1~8 + floor(b/2) + 0~b 공식으로 산출되며(b는 책장 수), 이 값에 따라 위쪽 슬롯은 max(base/3, 1), 중간 슬롯은 (base×2)/3 + 1, 아래쪽 슬롯은 max(base, b×2) 레벨이 제시된다. 책장은 마법 부여대로부터 수평 2블록, 높이 동일 또는 1블록 위에 설치해야 하며 중간에 공기 블록이 있어야 효과가 적용된다.[1][2]
마법 부여 알고리즘은 1단계 마법 부여 레벨 보정, 2단계 가능 마법 검색, 3단계 마법 선택 순으로 진행된다. 1단계에서는 아이템의 마법 가능성(enchantability)에 따른 무작위 보정과 0.85~1.15 사이의 삼각 분포 보정이 적용되어 최종 레벨(L)이 결정된다. 2단계에서는 보정된 레벨을 기준으로 아이템에 적용 가능한 마법 후보와 파워 레벨을 추린다. 3단계에서는 가중치 기반으로 첫 마법을 선택한 뒤, ((보정 레벨÷2)+1)÷50 확률로 최대 3개까지 추가 마법을 부여하며, 서로 상충하는 마법(날카로움/강타/살충, 보호 계열, 섬세한 손길/행운 등)은 제외된다.[1][2]
크리에이티브 모드에서는 경험치 레벨이 소모되지 않으며, 마법 부여 시드는 플레이어 데이터(XpSeed)에 저장되어 마법을 부여할 때마다 재생성된다. 동일한 책장 수와 아이템 조건에서는 시드가 갱신되기 전까지 같은 마법이 제시된다.[2]
이름
- 다른 언어 공식 이름: Enchanting table mechanics (English) · エンチャントの仕組み (日本語) · Mecánicas de encantamiento (Español) · Mecânica de encantamento (Português) [3]
수치·정보
- 기본 마법 레벨(base) 공식: (1..8 + floor(b / 2) + 0..b) [1]
- b: 인근 책장 개수(최대 15) [1]
- 책장 15개일 때 base 최소 8, 최대 30 [1]
- 위쪽 슬롯 마법 레벨: max(base / 3, 1) [1]
- 중간 슬롯 마법 레벨: (base × 2) / 3 + 1 [1]
- 아래쪽 슬롯 마법 레벨: max(base, b × 2) [1]
- 책장 10개 설치 시 마법 레벨 범위 2~23, 위쪽 슬롯 2~7 [1]
- 책장 배치 조건: 마법 부여대로부터 수평 2블록, 높이 같거나 1블록 높음, 사이 2블록 공기 블록 필수 [1]
- 책장 최대 활성 개수 15개 [1][2]
- Java Edition: 책장과 테이블 사이 수평 블록이 #enchantment_power_transmitter 태그(공기, 눈, 짧은 풀 등)여야 함 [2]
- Bedrock Edition: 테이블 높이와 그 위 블록이 수평으로 책장까지 공기여야 함 [2]
- 15 책장 배치 예: 테이블 높이 또는 1블록 위에 1블록 높이 정사각형 배치, 한 변에 1블록 틈 [2]
- 도서관 구석 배치: 두 변에 2블록 높이로 쌓아 16개 사용, 1개 여유 [1][2]
- 책장 비활성화: 책장과 테이블 사이 블록(횃불 등) 설치 [1]
- 활성 책장 수 0~15 제어용 양탄자/횃불 배치표 존재 [1]
- 마법 부여 레벨 보정 공식: L = B + R1 + R2 + 1 [1]
- B: 기본 마법 부여 레벨 [1]
- R1 = randomInteger(0, E / 4), R2 = randomInteger(0, E / 4) [1]
- E: 마법 가능성(엔첸터빌리티) [1]
- 활, 책, 낚싯대 마법 가능성 1 [1]
- 다이아몬드 검 마법 가능성 10 [1]
- 0.85~1.15 사이 임의 수(삼각 분포) 곱 후 반올림 [1]
- 가상 코드: enchantability_2 = enchantability / 2; rand_enchantability = 1 + randomInt(enchantability_2 / 2 + 1) + randomInt(enchantability_2 / 2 + 1) [1]
- k = chosen_enchantment_level + rand_enchantability [1]
- rand_bonus_percent = 1 + (randomFloat() + randomFloat() - 1) * 0.15 [1]
- final_level = round(k * rand_bonus_percent); if final_level < 1 then 1 [1]
- 경험치 비용(xpBase) 공식: 1 + randInt(7) + floor(min(15, bookshelves) / 2) + randInt(min(15, bookshelves)) [2]
- 위쪽 슬롯 비용: floor(max(1, xpBase / 3)) [2]
- 중간 슬롯 비용: floor(2 * xpBase / 3) + 1 [2]
- 아래쪽 슬롯 비용: floor(max(xpBase, 2 * bookshelves)) [2]
- 마법 비용(eCost) 공식: round((xpCost + 1 + randInt(floor(enchantability/4)) + randInt(floor(enchantability/4))) * (1 + randTri(0.15))) [2]
- randTri(0.15) = (randomFloat() + randomFloat() - 1) * 0.15 [2]
- 추가 마법 부여 확률: ((보정 마법 부여 레벨 ÷ 2) + 1) ÷ 50 [1]
- 최대 3개 마법까지 부여 가능 [1]
- 서로 배타적인 마법: 날카로움/강타/살충(검), 모든 보호 마법(방어구), 섬세한 손길/행운 [1]
- 마법 부여 시드(XpSeed)로 제안 마법 결정, 마법 부여 후 재생성 [2]
- 초기 시드 0, 최초 진입 시 재생성 [2]
- Java Edition: #in_enchanting_table 태그 마법이 기본 후보, enchant_with_levels로 덮어쓰기 가능 [2]
- 책이 아닌 아이템: 해당 아이템이 주 아이템(primary)이 아닌 마법 제거 [2]
- 책은 모든 마법의 주 아이템(하드코딩) [2]
- 선택 가중치: 후보 마법 가중치 합 대비 개별 가중치 비율 [2]
- 선택 후 배타 마법 제거, eCost+1/50 확률로 반복, eCost 절반으로 줄여 재시도 [2]
- 책에서 다중 마법 선택 시 마지막에 무작위 1개 제거 [2]
공략
마법 부여대 주변에 책장을 배치하여 최대 마법 레벨을 높일 수 있다. 책장은 마법 부여대로부터 수평으로 2블록 떨어진 위치에, 높이는 마법 부여대와 같거나 한 블록 높게 설치해야 한다. 이때 마법 부여대와 책장 사이 수직 2칸 공간은 반드시 공기 블록이어야 하며, 횃불·양탄자·눈이 있으면 효과가 차단된다[1].
책장 15개를 모두 활성화하면 아래쪽 슬롯에서 최대 30레벨 마법이 나온다. 낮은 레벨 마법을 노릴 때는 책장과 마법 부여대 사이에 횃불 등을 놓아 책장을 비활성화하면 된다. 활성화된 책장 수를 0~15개로 세밀하게 조절하려면 바닥의 특정 위치(검은색·하얀색·파란색·빨간색 양탄자 자리)에 횃불을 설치하거나 제거하면 된다[1].
가장 간단한 최대 레벨 배치는 마법 부여대에서 1블록 띄워 1층으로 책장을 두르고 한 변에서만 책장을 하나 빼는 방식이다. "도서관 구석" 방식은 두 변에 2블록 높이로 책장을 쌓아 16개를 쓰되, 보이지 않는 구석 책장 하나를 빼서 15개 효과를 내는 방법이다[1].
마법 부여대가 제시하는 마법 조합은 플레이어 데이터의 XpSeed(마법 부여 시드)에 따라 결정된다. 같은 시드·같은 책장 수·같은 마법 가능성 아이템이면 제시되는 마법이 동일하다. 아이템에 마법을 부여하면 시드가 재생성되어 다음 제시 마법이 바뀐다[2].
월드 최초 진입 시 시드는 0으로 초기화되지만, 시드가 0인 상태로 다시 접속하면 자동으로 재생성된다. 따라서 처음 접속 후 나갔다 다시 들어가면 마법을 부여하지 않고도 제시 마법을 바꿀 수 있다. 한 번도 나가지 않은 월드에서 첫 마법 부여는 아이템·책장 조합마다 항상 동일한 결과를 준다(예: 네더라이트 검+책장 15개 → 약탈 III·내구성 III)[2].
마법 부여 레벨 보정 1단계에서 아이템의 마법 가능성 값이 무작위 보너스(R1, R2) 범위를 결정한다. 다이아몬드 검은 마법 가능성 10, 활·책·낚싯대는 1이다. 마법 가능성 E일 때 0~E/4 사이 정수를 두 번 뽑아 더하므로, E/4 지점 값이 가장 자주 나온다(삼각 분포)[1].
마법 가능성이 높은 아이템일수록 보정 레벨 상승 폭이 커져 고레벨 마법이 붙을 확률이 높아진다. 원하는 고레벨 마법을 노릴 때는 마법 가능성이 높은 재료(다이아몬드·네더라이트 등)를 쓰는 것이 유리하다[1].
첫 마법이 붙은 뒤 추가 마법이 붙을 확률은 ((보정 레벨 ÷ 2) + 1) ÷ 50이다. 두 번째 마법이 붙으면 다시 레벨을 반으로 나눠 세 번째 마법 확률을 계산하므로, 고레벨일수록 다중 마법 부여 기대값이 올라간다[1].
한 아이템에 동시에 붙을 수 없는 마법 조합은 다음과 같다[1].
첫 마법이 정해지면 호환되지 않는 마법은 후보에서 자동 제외되므로, 원하는 마법이 배타 그룹에 속한다면 첫 슬롯 선택 단계에서 신중히 골라야 한다[1].
수선·서리 걸음·소멸 저주·묶임 저주 등 "보물" 마법은 마법 부여대에서 생성되지 않는다. 이들은 상자 전리품·낚시·주민 거래·마법 부여된 책에서만 얻을 수 있다[1].
크리에이티브 모드에서는 경험치 레벨이 소모되지 않고, 레벨 부족으로 슬롯이 비활성화되지도 않는다. 테스트용으로 빠르게 마법을 붙여보고 싶을 때 유용하다[1].
공식 위키 외부 링크에 있는 확률 시뮬레이터(github.com/SeeYou-Man/Minecraft-Enchantment-Probabilities)나 시드 크래커(github.com/Earthcomputer/EnchantmentCracker)를 쓰면 원하는 마법이 나올 확률을 미리 계산하거나, 시드를 역추적해 정확한 마법을 노릴 수 있다[2].
기타
- 마법 부여 시뮬레이터 사이트에서 마법 부여를 시뮬레이션해 볼 수 있다[1]
- GitHub 프로젝트(SeeYou-Man/Minecraft-Enchantment-Probabilities)에서 1.21 버전 기준 특정 마법을 얻을 확률을 시뮬레이션할 수 있다[2]
- 마인크래프트 마법 부여 계산기(아카이브)에서 레벨과 '단서'를 기반으로 특정 마법이 도구에 붙을 확률을 테스트할 수 있다[2]
- minecraft.tools/en/enchant.php에서 마법 부여를 테스트할 수 있으나 인터페이스가 덜 상세하다[2]
- GitHub 프로젝트(Earthcomputer/EnchantmentCracker)에서 XP 시드를 크랙하여 원하는 정확한 마법을 선택할 수 있으나 과정이 매우 번거롭고 오류가 잦으며, clientcommands로 대체되어 더 이상 사용되지 않는다[2]
- 크리에이티브 모드에서는 경험치와 레벨이 존재하지 않으므로 마법 부여를 해도 레벨이 소모되지 않으며, 레벨이 모자라 슬롯이 비활성화되지도 않는다[1]
- 마법 부여대의 씨드(XpSeed)는 플레이어 데이터에 저장되며, 아이템을 마법 부여한 후 재생성되어 다른 마법을 제공한다[2]
- 같은 수의 책장이 있는 마법 부여대는 같은 마법 가능성과 가능한 마법을 가진 모든 아이템(같은 아이템 유형 또는 곡괭이·삽·괭이 중 하나)에 대해 동일한 마법을 제공한다[2]
- 월드에 처음 진입할 때 씨드는 0으로 초기화되나, 이미 씨드 0이 있는 월드에 진입하면 재생성된다[2]
- 따라서 처음 월드를 나갔다 다시 들어가면 마법 부여 없이도 새로운 마법이 제공되며, 한 번도 월드를 나가지 않은 상태에서의 첫 마법 부여는 같은 아이템·책장 조합에 대해 항상 동일한 마법을 준다(예: 15책장 네더라이트 검에 약탈 III·내구성 III)[2]
- 자바 에디션에서는 #enchantment_power_provider 태그에 속한 모든 블록을 책장 대신 사용할 수 있다[2]
- 자바 에디션에서 글리프 입자는 책장이 마법 부여대 레벨을 높이는 데 기여하지 않아도 마법 부여대로 날아온다[2]
- 책장이 효과를 내려면 마법 부여대로부터 수평 2블록, 높이 같거나 1블록 위에 설치해야 하며, 사이 2블록은 반드시 공기 블록이어야 한다(횃불·양탄자·눈 등도 방해)[1]
- 책장 배치는 1블록 간격의 정사각형 한 변에 틈 하나 두는 방식이나, 모서리에 2블록 높이로 쌓는 '도서관 구석' 방식(16개 소요, 1개 여유) 등이 있다[1][2]
- 책장을 비활성화하려면 책장과 마법 부여대 사이에 횃불 등 블록을 설치하면 되며, 횃불을 깨면 효과가 복구된다[1]
- 양탄자 색상별 위치에 횃불을 놓아 활성화된 책장 수를 0~15개로 제어할 수 있다[1]
- 마법 부여 알고리즘은 1단계(레벨 보정), 2단계(가능 마법 검색), 3단계(마법 선택)로 이루어진다[1]
- 1단계에서 기본 레벨에 마법 가능성 기반 보정(R1, R2)과 0.85~1.15 무작위 배수 보정을 적용한다[1]
- 2단계에서 보정 레벨 기준으로 아이템에 적용 가능한 모든 마법 유형과 파워 레벨 목록을 작성하며, 보물 마법(저주·수선·빙결 걸음 등)은 마법 부여대에서 생성되지 않고 상자 전리품·낚시·주민 거래 등에서만 얻는다[1][2]
- 3단계에서 가중치 기반으로 첫 마법을 선택한 뒤, ((보정 레벨÷2)+1)÷50 확률로 추가 마법을 최대 3개까지 부여하며, 서로 배타적인 마법(날카로움/강타/살충, 보호 계열, 섬세한 손길/행운 등)은 제외된다[1]
- 자바 에디션에서 마법 부여대 후보 마법은 #in_enchanting_table 태그에 저장되며, 아이템 수정자 enchant_with_levels로 덮어쓸 수 있다(기본값: #on_random_loot, #on_traded_equipment)[2]
- 마법 부여 제공자(enchantment providers)는 #on_mob_spawn_equipment 태그를 기본으로 사용한다[2]
- 바닐라 기준 모든 비보물 마법이 초기 후보이며, 생성 전리품·낚시에서는 속박의 저주·소멸의 저주·빙결 걸음·수선도 초기 후보에 포함된다[2]
- 책이 아닌 아이템의 경우 해당 아이템이 주 아이템이 아닌 마법은 후보에서 제거된다[2]
- 각 마법의 최고 레벨 중 마법 비용이 비용 범위 내에 드는 것이 후보 레벨이 되며, 범위 밖이면 후보에서 제외된다[2]
- 선택 단계에서 후보 마법을 가중치 비율로 뽑고, 선택된 마법과 배타적인 마법을 후보에서 뺀 뒤, eCost+1/50 확률로 루프를 종료한다[2]
- 루프마다 마법 비용을 절반으로 줄여 반복하며, 최종적으로 책에 마법 부여대에서 여러 마법이 붙었다면 무작위 하나를 제거한다[2]
- 마법 비용(eCost) 계산식: round((xpCost+1+randInt(⌊enchantability/4⌋)+randInt(⌊enchantability/4⌋))⋅(1+randTri(0.15)))[2]
- 경험치 비용(xpCost) 계산식: xpBase=1+randInt(7)+⌊min(15,bookshelves)/2⌋+randInt(min(15,bookshelves)), 위 슬롯=⌊max(1,xpBase/3)⌋, 중간=⌊2·xpBase/3⌋+1, 아래=⌊max(xpBase,2·bookshelves)⌋[2]
- 아이템이 마법 부여 가능하려면 마법 부여 가능 컴포넌트(enchantable, enchantments)를 가지고 있고 기존 마법이 없어야 한다(자바 에디션)[2]
- 조건을 충족해도 사용 가능한 마법이 없으면 슬롯은 선택 가능하지만 아무 일도 일어나지 않는다[2]
이 문서는 공식 공개 자료 3개를 AI가 문단별로 새로 정리하고, 문단마다 별도의 AI 검수를 거친 초안입니다. 자료에 확인되지 않는 내용은 적지 않았습니다. 패치 내역과 관련 문서는 아래에 따로 모아 보여 줍니다. 세부 설정과 최신 수치는 출처를 확인하세요. 일부 내용은 CC BY-NC-SA 3.0 라이선스 자료를 바탕으로 새로 썼으며, 같은 조건이 이 문서의 해당 부분에 적용됩니다. [1]