자바 에디션 모드의 애드온에 대한 내용은 마인크래프트/모드 문서
의
애드온 부분을
, 블록런처를 통한 비공식 커스터마이제이션에 대한 내용은
블록런처
문서
참고하십시오.
{{{#!wiki style="margin: -0px -10px -5px; min-height:calc(1.5em + 5px)" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px; word-break:keep-all" |
<colbgcolor=darkgreen><colcolor=#fff> 기본 플레이 | |
시스템 | 세계 ( 시드) · 게임 모드 · 난이도 · 게임 규칙 · 엔딩 · 죽음 메시지 · 스플래시 · 명령어 · NBT · 런처 | |
인게임 | 아이템 · 몹 ( 플레이어) · 개체 · 날씨 · 차원 · 생물군계 · 구조물 · 마법 부여 · 상태 효과 · 조작법 · 피해 · 업적 | |
도움말 | 튜토리얼 · 팁 ( 탐험 · 파밍 · 회로) · 재생 가능한 자원 · 브릿징 · PVP · 파쿠르 · 스피드런 · 건축 | |
시리즈 및 매체 | ||
출시 에디션 | 자바 에디션 ( 업데이트) · 베드락 에디션 ( 업데이트) · 포켓 에디션* · 콘솔 에디션* · 파이 에디션* | |
파생 게임 | 마인크래프트 던전스* · 마인크래프트 레전드* · 마인크래프트 에듀케이션 · 마인크래프트: 스토리 모드* · 마인크래프트 어스* | |
미디어 | OST · 관련 서적 · 레고 · 영화 · 애니메이션 · Minecraft Live · Minecraft Now · Minecraft Monthly | |
유저 콘텐츠 | ||
창작 요소 | 2차 창작 · 망토 · 맵 · 모드 ( 개발 · 팁 · 모드팩) · 애드온 · 팩 ( 리소스 팩 · 데이터 팩) · 외부 프로그램 · 핵 | |
멀티 콘텐츠 | 멀티플레이 · 서버 · 플러그인 · Realms · EULA | |
개발 | 개발 기초 · 모드 개발 · 플러그인 개발 | |
기타 | ||
이야깃거리 | 여담 · 커뮤니티 · 사건 사고 · 문제점 · 용어 · 지원 언어 · 머나먼 땅 · 이미테이션 게임 · 히로빈 | |
관련 문서 | 나무위키 마인크래프트 프로젝트 · 마인크래프트로 분류된 문서 · 마인크래프트의 하위 문서 | |
* 표시는 서비스가 종료되었거나 개발이 중단되었다는 표시이다. | }}}}}}}}} |
1. 개요
리소스 팩과 행동 팩으로 이루어져 있는, 마인크래프트 베드락 에디션의 공식 모딩 API이다. 행동 팩 내부에 있는 JSON 파일들을 수정하는 방식이다.자바 에디션의 모드는 비공식 API가 필요하지만, 베드락 에디션은 공식 API로 애드온을 제작할 수 있다. 자바 에디션의 데이터 팩의 원리와 비슷하나, 자바스크립트를 지원한다는 차이가 있다.
2024년 8월 14일, 1.21.20 업데이트로 홀리데이 크리에이터 기능이 삭제되고 대부분의 기능이 후술할 스크립트 API로 편입되었다. 홀리데이 크리에이터 기능은 행동 팩으로 추가한 커스텀 아이템, 엔티티, 블록에 이벤트를 직접 지정하여 명령어를 돌릴 수 있는 실험 기능이였는데, 아이템과 블록 이벤트는 스크립트 API의 커스텀 컴포넌트로 대체되었고, 엔티티 이벤트는 그대로 사용할 수 있게 되었다.
홀리데이 크리에이터 기능이 삭제되면서 이 기능을 사용하던 애드온은 사용할 수 없게 되었다. 이에 대해 반발하는 유저와 개발자도 있는 반면에, 이를 옹호하는 개발자도 적지 않다.[설명]
마인크래프트의 공식 사이트와 지원 센터에서는 애드온을 베드락 에디션에서 공식 지원하는 커스터마이제이션을 지칭하는 용어로 사용하고 있다. 자바 에디션 모드의 애드온에 대해서는 마인크래프트/모드 문서의 애드온 부분을, 비공식 커스터마이제이션에 대해서는 블록런처 문서를 참고할 것.
애드온 설명 페이지: 한국어 영어
2. 방법
Add-Ons 제작 준비 마이크로소프트 홈페이지 https://learn.microsoft.com/ko-kr/minecraft/creator/documents/gettingstarted리소스 팩 제작 마이크로소프트 홈페이지 https://learn.microsoft.com/ko-kr/minecraft/creator/documents/resourcepack
행동 팩 제작 마이크로소프트 홈페이지 https://learn.microsoft.com/ko-kr/minecraft/creator/documents/behaviorpack
이 홈페이지들은 모두 공식이다.
3. 장점
의외로 만질 수 있는 것들이 많다. 몹의 행동, 속성 등을 수정하거나 추가한다던지, 디버그 모드(개발자 모드)를 활성화 시킨다던지 등의 갖가지 것들을 만들 수 있다. 또한 모델링도 수정이 가능하다. 멀티 플레이도 가능하며 유료 서버 시스템인 Realms에서도 사용할 수 있다.사실, Add-Ons의 영역 중 상당 부분은 PTP 모드로도 제작이 가능하다. 하지만 난이도는 엄청 높아진다. 그리고 기존엔 없던 새로운 아이템, 몹들도 만들 수 있다!
최근에는 마켓플레이스에서도 애드온을 단독으로[2] 판매하기 시작하면서 콘솔에서도 애드온을 사용할 수 있게되었다.
4. 참고
4.1. 스크립트 API
19.01.05 패치 beta 1.9.0.3 버전부터 이용가능하다.4.1.1. 자바스크립트
행동 팩은 JSON 외에도 JavaScript를 지원한다. 작동 방식으로는 게임 내에 존재하는 모듈을 불러오고 코드를 작성하고 실행하여 엔티티, 블록, 세계 등을 조작한다. 또한 UI 모듈을 불러온다면 플레이어들에게 창을 띄울 수 있는 등 여러 기능들을 가지고 있다.게임에서 스크립트를 불러와 사용한다는 특성 상 대부분의 자바스크립트의 기능들은 스크립트에서 사용할 수 없다. 예를 들어 밀리초 단위 간격으로 코드를 실행하는 등...[3]
스크립트를 작성할 때 가장 흔히 쓰이는 건 '이벤트'이다. 게임 내의 세계나 엔티티가 상호작용을 할 때 코드를 호출하는 월드 이벤트와, 시스템적으로 상호작용이 발생했을 때 코드를 호출하는 시스템 이벤트가 있다.
이벤트는 AfterEvents와 BeforeEvents로 구분된다. 전자는 이벤트가 발생한 이후에 코드를 실행하며, 특정 상호작용이 일어난 후의 상황에만 접근할 수 있다. 후자는 이벤트가 발생하기 바로 직전에 코드를 실행하기 때문에 이벤트가 일어나기 직전의 상황에 접근할 수 있으며, 이벤트 발생을 취소할 수도 있다.
예를 들어 플레이어가 블록을 두는 이벤트가 발생했다고 하자. 플레이어는 블록을 두기 전에 32개의 블록이 있었다. 만약 AfterEvents를 사용한다면 이벤트는 31개의 블록을 가지고 있는 플레이어의 정보를 얻게 되지만, BeforeEvents는 32개의 블록을 가지고 있는 플레이어의 정보를 얻게 되며, 플레이어가 블록을 두는 것을 취소할 수도 있다.
또한 컴포넌트를 지정하거나 수정할 수 있다. 컴포넌트란 엔티티나 블록, 아이템에 지정된 속성을 말한다. 컴포넌트로 플레이어나 엔티티의 체력이나 이동속도를 변경할 수 있고, 인벤토리를 수정하는 등, 제한적이지만 여러 데이터에 접근 및 수정이 가능하다. 또한 홀리데이 크리에이터 기능으로부터 편입되어 새로 추가된 커스텀 컴포넌트로 커스텀 아이템과 블록에 기능을 주입할 수 있다.[4]
스크립트에서 데이터를 저장하는 방식에는 여러 방법이 있다. 자바스크립트 자체의 기능들, API에서 제공하는 다이나믹 프로퍼티, 게임 내의 스코어보드가 있다.
자바스크립트에서 지원하는 데이터 저장 기능들은 마인크래프트의 스크립트에서도 크게 다른 부분이 없지만, 스크립트의 메모리를 사용하며, 세계 또는 서버가 닫히거나 /reload 명령어를 사용하면 초기화된다.
다이나믹 프로퍼티는 세계 내에서 데이터를 직접 저장하기 때문에 세계가 다시 불러와져도 남게 된다.
스코어보드는 명령어로 사용하는 스코어보드와 동일하다.
스크립트 API 공식 문서는 여기를 참조할 것.
4.2. Inner Core
플레이스토어러시아 팀에서 구현중인 모드 엔진이다. 자체적인 플랫폼을 통해 IndustrialCraft, BuildCraft, Forestry, Ender IO등 유명 자바 에디션 모드를 사용 가능하며, 데이터베이스에 등록된 모드는 자체적인 검색과 설치도 지원한다. API도 제공한다.
다만 아직 베타 버전이므로 불안정한 편이다. 기종에 따라 튕김 현상이 자주 일어나기도 한다.
Inner Core는 마인크래프트와 별개로 데이터(맵 등)는 다른 폴더에 저장되며 마인크래프트가 설치되어 있어야 한다. 그리고 모드를 삭제하고 삭제한 모드를 쓰는 맵에 들어갔다가 그 맵이 손상될 수 있으니 주의할 것.
현재는 업데이트가 2018년 4월 10일 일자로 멈춰있는 상태이며, 이 때문에 최신버전과 호환되지 않고 오류가 많아졌다(...)
현재 Horizon 앱을 통해 최신버전의 Inner Core 를 사용할수 있다.
각각 다른 모드를 이용하는 맵을 번갈아 쓰고 싶다면 Inner Core 에서 재설치 해야한다는 점을 해결하기 위해 Horizon 앱을 사용하는 것으로 보인다.
[설명]
홀리데이 크리에이터 기능은 언젠가 삭제될 예정이였다. 애드온은 스케일이 클수록 성능과 최적화가 매우 중요한데, 홀리데이 크리에이터 기능의 이벤트는 커스텀 아이템과 블록을 이루는
JSON 파일에 직접 지정해야 해서 비유동적이였다. 또한, 베드락 에디션의 명령어는 한번에 여러번 동작한다면 성능을 크게 잡아먹으며, 자바 에디션에 비해 제한적인 부분이 많다. 이 때문에 홀리데이 크리에이터 기능은 장기적으로 애드온 제작에는 최악이였다.
[2]
기존에는 특정 맵에서만 사용할수 있는 형식으로 해당 맵과 함께 판매해서 커스텀맵이나 다름없었다.
[3]
Date.now()를 제외한 대부분의 시간 관련 기능들은 게임의 시간 단위인 틱 때문에 막혔다. 즉 한번에 여러 코드를 작동시킬 순 있어도, 코드를 작동시키고 난 후에 또 다시 작동하는 시간을 밀리초 단위로 둘 수 없다.
[4]
따지고 본다면 커스텀 컴포넌트는 월드 이벤트와 크게 다른 부분은 없지만, 커스텀 아이템과 블록 자체에 기능을 주입하는 것과 스크립트 면에서 이벤트를 감지만 하는 것에는 큰 차이가 있다.