Help us understand the problem. What is going on with this article?

コマンドで遊ぶ Minecraft JE 1.13

明治大学アドベントカレンダー20日目、2回目の@jabelic です。バイトでゼロから学んだマイクラのコマンドについて書きます。込み入った内容は書いてませんので、気軽に読んでいただきたいです。よろしくお願いします。

準備

マイクラとは

マイクラは正式名称「Minecraft」で、Mojangという会社が開発したサンドボックスゲームです。マイクラにはsurvivalモード、creativeモード、adventureモード、spectatorモードの4種類のゲームモードが存在します。

ゲームモード 特徴
creative  アイテムが枯渇しない。ライフがないので攻撃されても死なない。
survival  殺されちゃう。一番ロールプレイングゲームに近い
adventure  見学コース
spectator  ワールド観察モード

また、マイクラでは自ら動くものをエンティティと呼び、自ら動かないものはブロックと呼びます。
エンティティの中で、自分で勝手に行動するエンティティをMobといい、そのMobには友好的Mob、中立的Mob、敵対的Mobが存在します。

コマンドとは

コマンドとは

コマンドとは、チートモード・マルチプレイ時にチャットウィンドウに入力し実行することによって、
ゲームモードを変更したり、アイテムを取り出したりすることができるものです。

だそうです。設定でチートをONにしておくと使えます。

コマンド入力の仕方

コマンドはチャット欄に記述したりコマンドブロックに記述して遊びます。
チャット欄はTを押すか/を押すと画面の下に現れます。
チャット欄を使う際は必ずコマンドの頭に/を記述しなければなりませんので大抵の場合は/を押してチャット欄を開きます。
つまり T+/と打つ場合は/だけで良いということです。

コマンドブロックに入力する際は、コマンドブロックを手に入れて右クリックで開いてその中に記述します。
見た方が早い
Screenshot from Gyazo

座標

マイクラにはもう一つ遊ぶ上で重要な要素があります。コマンドを入力する上でも必要になってくる、座標というものです。マイクラでは相対座標と絶対座標の2つを使い分けます。それぞれ記法が違うので記しておきます。(本当は向き相対というものもありますが、挙動がよくわからないのでここでは割愛)

 相対座標は座標の前にチルダをつけて~x ~y ~z
 絶対座標はそのままx y z

セレクター

コマンドを入力する際、エンティティを指定する際に用いる記法です。

セレクター 指定先
@e 全てのエンティティ
@p 最も近いプレイヤー
@s executeで指定したプレイヤー、指定していない場合は自分
@a 全てのプレイヤー
@r ランダムなプレイヤー

このセレクターの後にスペースを空けずに引数を追加すると詳細な指定ができます。
@e[type=zombie] ゾンビのみ
@p[distance=..3] 半径3ブロック以内の最寄りのプレイヤー

他にもたくさんありますが、ここではこのくらいの留めておきます。

本編

giveコマンド

アイテムを手に入れるコマンドです。アイテムのIDはminecraft wikiに載っています。
記法は
/summon <エンティティ> x y z

例えばコマンドブロックを手に入れる時は
/give @p command_block
と記述します。
これでアイテムスロットかインベントリに入ってるはずです。(満タンだと取得できません。)

コマンドブロックとは→CommandBlock-wiki

summonコマンド

mobを召喚するコマンドです。mobのIDはMinecraft wikiに載っています。
記法は
/summon <mobID> <召喚場所>

代表的な敵対mobのゾンビを召喚するときは
/summon zombie ~4 ~1 ~4(具体例)
のように記述します。

killコマンド

死亡、消滅させるコマンドです。プレイヤー、エンティティ、ブロックを引数で指定します。
記法は
/kill <引数>
例えばゾンビのみ消滅させたいときは
/kill @e[type=zombie]
と書きます。

titleコマンド

画面中央にタイトルを表示するコマンドです。
記法は
/title <セレクター>[引数] {title|subtitle|actionbar|etc...} {“text”:”hogehoge"}

具体的には
title @p title {"text":"clear!"} と書くとclear!と表示されます。

executeコマンド

検出コマンドです。アイテムを検知したり、mobを検知したりします。アイデアとしては

  • ゾンビを検知して自分の家に入ってくると自動的にkillする
  • 迷路のゴールにコマンドブロックを仕込んでおいて、プレイヤーが近づいたらclear!!とタイトルを表示する

など、結構手の込んだものも可能です。

記法は
/execute < サブコマンド> [サブコマンド] run <コマンド>

<サブコマンド> [サブコマンド]の部分は

at @pコマンドの実行座標、向き、ディメンションが@pに移る
if entity @p@pを検出
as @pコマンドの実行者が@pに移る

などと書きます。

具体例としては

/execute if entity @e[type=zombie,distance=..5] run kill @e[type=zombie,distance=..5] 半径5ブロック以内のゾンビがkillされます。
/execute if entity @p[distance=..2] run title @p title {“text”:”clear!!”} clear!!と表示されます。

scoreboardコマンド

変数のコマンドです。マイクラの変数は基本的にはその変数自体に機能が付きます。
記法は
/scoreboard objectives {add|remove|setdisplay|etc...} <スコア名> スコア機能

例えば、プレイヤーやエンティティを倒した数を記録したいときはスコア機能にtotalKillCount(大文字に注意)と指定します。その他にもプログラミング言語のようにただの変数を用意したいときはdummy、他のプレイヤーを殺した回数を指定したいときはplayerKillCountと指定します。
このコマンドは機能がたくさんあるので全ては解説できませんが、よく使うものだけここに記しておきます。

/scoreboard objectives add totalkill totalKillCount
/scoreboard players set @p totalkill 0
/scoreboard objectives setdisplay sidebar totalkill
これでモンスターを倒すとカウントされ、画面の右側にスコアが表示されるようになりました。

終わりに

今回書いた内容はほんの一部の機能です。nbtタグを指定したり、スコアを指定したり、タイマー機能を作ったりと、いろいろなことができます。コマンドの他にも回路を組み立てて、NOT回路などを再現することもできるので、ゲームの中ではかなり自由度が高く、プログラムに近い面を持ち合わせていると思います。興味を持たれた方はぜひプレイしてみてください。JavaEditionは3000円です。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away