명령 블록
1. 개요
명령 블록은 활성화 상태에서 조건을 만족할 때 사용자가 콘솔 명령어 부분에 미리 입력해 놓은 명령어를 실행한다. 채팅창으로 명령어를 입력할 때에는 앞에
/
를 반드시 붙여야 하지만, 명령 블록의 경우에는 /
가 없어도 무관하다. 예를 들어서 돌을 얻으려면 대화창에는 /give @p stone
이라고 입력해야 하지만, 명령 블록을 사용하면 give @p stone
과 같이 이용할 수 있다. (물론 /
가 있어도 실행) 단, 서버 관련 명령어 및 일부 명령어는 명령 블록에서 실행할 수 없다.마인크래프트/명령어 문서를 참고하면 된다.이 블록을 이용해 다양한 맵, 게임, 특수한 도구 등 마인크래프트의 명령어가 지원하는 모든 걸 만들 수 있다. 서바이벌은 물론 크리에이티브 보관함에서도 없기 때문에, /give <플레이어> command_block 명령어를 입력해 받거나, /setblock 으로 설치해서 얻을 수 있다. 참고로 명령 블록은 크리에이티브 모드이면서 관리자 권한이 있어야만 부수거나 명령어를 바꿀 수 있다.
명령 블록은 크리에이티브가 아닌 플레이어가 파괴할 수가 없으며 폭발 저항도 3,600,000로 기반암이랑 똑같아서 크리퍼 및 TNT 폭발로도 파괴될 수 없다.
명령 블록의 종류에는 반응형과 연쇄, 반복 명령 블록이 있으며, 세부 종류에는 무조건적 및 조건적, 레드스톤 필요 및 항상 활성화가 있다. 또한 명령 블록은 방향이 있으며, 이는 이후 나올 연쇄 명령 블록을 사용함에 있어서 매우 중요하다.
2. 출력
명령 블록은 다양한 방법으로 명령어의 실행 상태를 출력한다.
- 명령 블록에서 뻗어나온 레드스톤 비교기
- 성공했을 경우 레드스톤 비교기를 통해 신호를 출력한다. 일부 명령어는 명령어의 반환값에 따라 신호 강도가 달라지는 경우도 있다.
- 한 번 실행에 성공해 신호를 출력할 경우 다음 실패까지 계속 레드스톤 신호를 출력한다.
- 채팅창, 명령 블록 UI
- 명령어가 어떻게 실행되어 어떻게 적용되었는지에 관한 내용을 채팅창과 명령 블록 UI 내에 출력한다.
- 반복 명령 블록이 사용될 경우 명령이 여러 번 실행되어 채팅창을 사용할 수 없게 되고 정상적인 게임 플레이를 할 수 없게 되는 경우가 있다. 이를 방지하려면 사전에
를 이용하여 채팅창으로는 명령어 실행 결과를 출력할 수 없게 해야 한다.gamerule commandBlockOutput false
- execute store
- 결과값을 다양한 곳에 저장한 후 불러와 쓸 수 있다. 해당 문서 참고.
3. 반응형/연쇄/반복
3.1. 반응형 (Impulse)
3.2. 연쇄 (Chain)
레드스톤 노가다를 줄여주는 명령 블록.
참고로 연쇄형 명령 블록의 경우 "이 명령 블록을 가리키는"이 전제 조건이므로 중간에 방향이 꺾여도 이전 명령 블록이 후속 명령 블록을 잘 가리키기만 하면 연이어 동작한다.
3.3. 반복 (Repeat)
4. 조건적/무조건적
조건적은 아래 커맨드가 실행되었을때 연결(화살표가 향함)이 돼 있을 경우에 커맨드를 실행한다. 반면 무조건적은 커맨드를 연결하지 않아도 사용할 수 있다. 조건적 커맨드는 커맨드 사이에 리피터를 당겨 사용할 수 있으며,긴 커맨드의 경우 그 크기를 최소화할 수 있다. 조건적 실행을 활성화할 경우 커맨드 모양이 세모가 아닌 화살표 모양으로 변경된다.
4.1. 무조건적 (Unconditional)
4.2. 조건적 (Conditional)
5. 레드스톤 필요/항상 활성화
레드스톤 필요가 활성화되어 있다면 커맨드는 레드스톤 신호를 받음과 동시에 이하 조건이 충족될 시 작동한다. 이는 파쿠르맵과 드로퍼 맵에 많이 사용되며, 순차적 조건 처리에 이용된다. 반면 항상 활성화를 활성화할 경우에는 이하 조건이 충족될 시 작동하며, 모드 없이 만들기와 같이 기능이 있는 무기, 장치 등에 많이 이용된다.
5.1. 레드스톤 필요 (Needs Redstone)
말 그대로 레드스톤 신호를 받는 상태에서만 활성화된다. 단 레드스톤 신호를 받지 않는 연쇄 명령 블록 뒤로 연쇄 명령 블록이 쭉 이어져 있다면 레드스톤신호를 받지 않는 연쇄 명령 블록은 건너뛴다.
이 설정을 이용할 때 많은 사람들이 실수하는 것이 있다. 바로 비교기인데, 비교기가 켜졌을 때 레드스톤 필요 명령 블록에 들어오던 신호를 끊으면 '''비교기가 저절로 꺼지지 않고, 다음 시행 때까지 계속 켜져 있다.''' 비교기의 이 특성은
particle
명령어와 같이 연쇄 명령 블록을 이어서 처리할 수 있는 명령이 아닐 경우 여러개의 조건문을 넣어야 할 때 매우 중요하다.5.2. 항상 활성화 (Always Active)
6. 지연 시간
모든 명령 블록의 지연 시간은 기본적으로 1틱(1/20초)이다. 반복 명령 블록도 1틱을 주기로 실행되고, 연쇄 명령 블록도 1틱마다 한 명령 블록을 처리한다.
베드락 에디션의 경우 이 지연 시간을 명령 블록 내 설정에서 조작할 수 있다. 이를 이용하면 지연 시간을 20틱으로 설정해 1초마다 명령어가 실행되도록 하는 등 다양한 응용이 가능하다.
[1] 1틱마다 1번, 즉 1초에 20번.