명령어 블록은 Minecraft: Bedrock Edition 월드에 등장하는 특별한 종류의 블록으로 게임 내에서 명령어 창을 사용할 수 있습니다. 채팅으로 사용할 수 있던 명령어들을 레드스톤의 파워로 명령어 블록을 사용해 자동으로 작동시킬 수 있습니다.
이 튜토리얼에서는 다음과 같은 사항을 안내해 드립니다.
- 명령어 블록이 무엇인지 그리고 게임에서 사용하는 방법을 알아봅니다.
- 명령어 블록으로 명령어를 사용하는 방법을 알아봅니다.
- 여러 명령어 블록을 연결하여 연쇄형 명령어 블록를 만드는 방법을 알아봅니다.
- 게임플레이 중 어떤 행동을 한 플레이어에게 보상을 줄 수 있는 순환을 만들어봅니다.
이 튜토리얼에서 지정된 지역에서 특정 종류의 블록을 찾아내고 정확한 위치에 블록을 위치시킨 플레이어에게 보상을 지급하는 연쇄형 명령어 블록을 만들어봅니다.
요구 사항
- 명령어 소개
- 치트가 활성화된 Minecraft 월드.
지도 설정하기
명령어 블록은 모든 Minecraft 월드에서 쓸 수 있지만 쉽고 단순한 환경인 평면 월드에서 진행하겠습니다.
- Minecraft: Bedrock Edition을 실행하세요.
- 플레이에서 새로 만들기를 선택하고 새로운 월드 만들기를 실행합니다.
- 월드 설정에서 월드 유형을 평면으로 선택합니다.
- 월드 설정에서 좌표 보기를 활성화합니다.
- 월드 설정에서 치트키 활성화를 선택합니다.
- 만들기를 실행합니다.
명령어 블록 얻기
명령어 블록은 명령어를 실행해야 얻을 수 있습니다.
- 채팅을 여세요.
- 다음 명령어를 입력하세요.
/give @p command_block
.
소지품에 명령어 블록 하나가 추가됩니다.
명령어 블록 사용하기
먼저 명령어 블록을 다른 블록처럼 바닥에 내려놓습니다. 명령어 블록의 옆면을 보면 화살표를 볼 수 있습니다.
이 화살표는 블록을 내려놓았을 때 언제나 플레이어 방향을 가리킵니다. 화살표는 실행 방향을 나타냅니다. 이미지에서 본 것처럼 왼쪽에 있는 블록이 먼저 실행되며 다음으로 중앙의 명령어 블록이 실행되고 마지막으로 오른쪽 블록이 실행됩니다.
사용 버튼을 클릭(PC 버전에서 오른쪽 클릭)하여 명령어 블록 인터페이스를 엽니다.
명령어 블록 사용자 인터페이스
- 블록 유형은 명령어 블록의 종류를 정의합니다. 3가지 종류가 있습니다.
- 반응형 명령어 블록은 레드스톤 신호를 받으면 활성화됩니다.
- 연쇄 명령어 블록은 해당 명령어 블록을 가리키는 다른 명령어 블록이 활성화될 때 활성화됩니다.
- 반복형 명령어 블록은 레드스톤 신호를 받는 동안 매 틱마다 활성화됩니다. Minecraft는 1초에 20틱이 흐릅니다.
- 조건은 명령어 블록이 실행되는 상황을 정의합니다. 2가지 종류가 있습니다.
- 조건부는 연쇄의 이전 블록이 성공적으로 실행됐을 때 활성화됩니다.
- 무조건부는 연쇄의 이전 블록의 성공적인 실행과 관계 없이 활성화됩니다.
- 레드스톤은 명령어 블록의 실행에 레드스톤이 필요한지 결정합니다. 2가지 종류가 있습니다.
- 레드스톤 필요는 명령어 블록이 레드스톤 파워를 받았을 때만 활성화되게 합니다.
- 항상 사용은 명령어 블록이 레드스톤 파워와 관계 없이 활성화되게 합니다. 이 경우 반응형 명령어 블록은 한 번만 실행되므로 유용하지 않습니다. 연쇄 명령어 블록은 이 경우가 기본 설정입니다.
- 첫 틱에 실행은 지연 시간이 있는 반복형 명령어 블록에만 사용할 수 있습니다. 활성화될 경우 블록이 파워를 얻은 순간 명령어가 실행되며 다시 작동할 때까지 지연 시간이 생깁니다. 비활성화된 경우 지연 시간이 끝나고 명령어가 처음 실행됩니다.
- 틱 지연 시간은 명령어 블록이 레드스톤 파워를 받고 명령어 블록이 실행될 때까지 지연되는 시간을 정하는 값입니다.
게임플레이 순환 설계
명령어 블록의 활용 방법으로 크리에이터들이 Minecraft에서 게임플레이 순환을 만들 수 있습니다. 간단한 게임플레이 순환으로 어떤 행동을 한 플레이어에게 보상을 줄 수 있습니다. 게임플레이 순환으로 다이아몬드 블록을 특정한 자리에 위치시킨 플레이어에게 에메랄드를 지급하려면 다음과 같은 단계를 거치면 됩니다.
- 지정된 장소에 다이아몬드 블록이 있는지 확인합니다.
- 있을 경우 플레이어가 보상을 받았는지 확인합니다.
- 플레이어가 보상을 받지 않았을 경우 플레이어에게 에메랄드를 지급합니다.
- 플레이어에게 에메랄드를 지급했다면 보상을 받은 것을 표시합니다.
첫 명령어 블록 설정하기
명령어 블록의 설정을 살펴봤으니 지정한 장소에 특정 종류의 블록이 있는지 탐색하는 블록을 만들어보겠습니다.
- 여러분의 플레이어 캐릭터 주변 바닥에 명령어 블록을 내려놓습니다.
- 명령어 블록 인터페이스를 엽니다.
- 블록 유형을 반복형으로 설정합니다.
- 레드스톤을 항상 사용으로 설정합니다.
/testforblock
명령어
/testforblock
명령어는 월드의 일정 지역에서 특정 블록을 탐색합니다.
/testforblock <position: x y z> <tileName: Block> [dataValue: int]
- 위치는 명령어로 특정 블록을 탐색할 월드의 좌표를 의미합니다. 예시:
0 4 0
. - tileName은 찾아야 하는 블록의 종류입니다. 예시:
diamond_block
. - dataValue는 같은 유형의 블록의 다양한 종류를 나타내는 선택형 인수입니다. 이번 튜토리얼에서는 사용하지 않습니다.
튜토리얼을 잘 따라오셨다면 지금 평면 월드에 있을 것입니다. 주변을 살펴보면 플레이어의 위치는 현재 화면의 상단 왼쪽에 있는 것을 알 수 있습니다. 오리진 주변의 블록을 확인해보겠습니다.
- 명령어 입력 섹션에서 다음을 입력하세요.
/testforblock 0 4 0 diamond_block
. - 인터페이스를 닫으세요.
연쇄형 명령어 블록
다음 단계로 연쇄형 명령어 명령어 블록을 만들어보겠습니다. 이전에 설명한 것처럼 연쇄 명령어 블록은 해당 명령어 블록을 가리키는 다른 명령어 블록이 활성화될 때 활성화됩니다. 이미지에 나타난 화살표 방향에 맞춰 블록을 내려놓으세요.
/testforblock
명령어 블록 설정하기
- 새 명령어 블록을 이전 블록 옆에 내려놓으세요. 새로 내려놓는 블록은 반드시 이전 블록의 화살표가 가리키는 방향 앞에 내려놓아야 합니다.
- 명령어 블록 인터페이스를 여세요.
- 블록 유형을 연쇄로 설정합니다.
- 조건을 조건부로 설정합니다.
- 레드스톤을 항상 사용으로 설정합니다.
- 명령어 입력 설정
/testfor @p[tag=!placed_block]
두 번째 블록이 조건부로 설정되었기 때문에 첫 명령어 블록이 성공적으로 실행되어 다이아몬드 블록을 찾았을 경우에만 두 번째 블록이 실행됩니다. 이 명령어는 플레이어가 보상을 받았는지 확인합니다.
보상 명령어 블록 설정하기
블록을 알맞는 장소에 위치시킨 플레이어에게 보상을 지급하는 세 번째 블록을 만들어보겠습니다.
- 새 명령어 블록을 이전 블록 옆에 내려놓으세요. 새로 내려놓는 블록은 반드시 이전 블록의 화살표가 가리키는 방향 앞에 내려놓아야 합니다.
- 명령어 블록 인터페이스를 여세요.
- 블록 유형을 연쇄로 설정합니다.
- 조건을 조건부로 설정합니다.
- 레드스톤을 항상 사용으로 설정합니다.
- 명령어 입력을
/give @p emerald
으로 설정합니다.
다시 말하자면 이 명령어는 이전 명령어가 성공적으로 실행됐을 때만 실행됩니다. 따라서 다이아몬드 블록이 존재하며 블록을 위치시킨 플레이어가 보상을 받지 않았어야 합니다.
순환 끝내기
만약 이대로 두면 다이아몬드 블록을 0 4 0
에 둔 플레이어가 에메랄드를 1초에 20개 받게 됩니다! 따라서 한 단계를 더 만들어야 하는데 바로 보상을 받은 플레이어를 표시하는 단계입니다.
- 새 명령어 블록을 이전 블록 옆에 내려놓으세요. 새로 내려놓는 블록은 반드시 이전 블록의 화살표가 가리키는 방향 앞에 내려놓아야 합니다.
- 명령어 블록 인터페이스를 여세요.
- 블록 유형을 연쇄로 설정합니다.
- 조건을 조건부로 설정합니다.
- 레드스톤을 항상 사용으로 설정합니다.
- 명령어 입력 설정
/tag @p add placed_block
순환 테스트하기
모든 요소가 제대로 설정됐다면 0, 4, 0
에 다이아몬드 블록을 위치시켰을 때 에메랄드 하나가 플레이어 소지품에 추가될 것입니다.