Minecraftとは?
結構有名なので言うまでもないですが、知らない人のために。
Minecraftは小中高生や大人に人気のゲームです。
ブロックを使って建築をしたり武器を作って敵をやっつけたりするゲームです。
リンク
コマンドとは?
「コマンド」と聞くとターミナルやコマンドプロンプトなどが思いつくかもしれません。
実際Minecraftのコマンドも似ています。
ターミナルなどのようにディレクトリやファイルを作成することは出来ないですが、Minecraft内を操作することが出来ます。
うまく使えばコマンドでMinecraft内にOSを作ることも可能です。
レッドストーンとは?
コマンドをより高度に扱うために「レッドストーン」の知識が必要になってきます。
これがレッドストーンです。

レッドストーンにはONとOFFの2つの状態があります。

レッドストーンの状態を変更するためのアイテム3種類を紹介します。
Minecraftの環境
バージョン:1.12.2
MOD:なし
レッドストーントーチ
レッドストーントーチは自身の上下左右のブロックまたはレッドストーンに入力する。
また自分自身にレッドストーン信号が流れると入力が止まります。
ボタン

ボタンはクリックされると0.75秒隣接しているブロックまたはレッドストーンに入力する。
他にも種類はありますがここでの紹介は控えさせてもらいます。
代わりに参考になりそうなサイトのリンクを張っておきます。
レバー

レバーはクリックすることでONとOFFの状態を切り替えられてONの状態だと隣接しているブロックまたはレッドストーンに入力します。
出力装置
出力装置もありますがここでは1つだけ紹介します。
レッドストーンランプ
レッドストーンランプはレッドストーン信号を受けると光ります。
回路
レッドストーンは他のレッドストーンと隣接させることでつなげることが出来ます。

このようにレッドストーンと入力装置と出力装置で作った回路のことをレッドストーン回路と呼ぶことがあります。
AND OR NOT
もう気づいた人もいるかもしれませんがレッドストーン回路でAND OR NOTゲートを作ることが出来ます。
NOT
この画像だとレバーはOFFの状態です。
左上のランプは光っています。
これはレバーがOFFの状態ではレッドストーントーチはONの信号を発生させます。それでランプが光っています。
逆にレバーをONにすると以下のようになります。

レッドストーントーチが下のブロックからレッドストーン信号を受けているのでレッドストーントーチがレッドストーン信号を発しなくなりました。
OR
AND
コマンドの使い方
さて前置きが長くなりましたが本題のコマンドです。
まずチートオンのワールドに入ってください。
そしたら/キーを押してください。
そうすると以下のように画面下部にコマンドラインが表示されます。
コマンドを実行するにはここにコマンドを入力してエンターキーを押せば実行されます。
ターミナルやコマンドプロンプトのように上下キーを押せばコマンドの履歴を行き来できます。
初めてのコマンド
やっぱり最初は画面にHello worldを表示させたいですよね。
以下のコマンドを入力してください。
say Hello world
これはコマンドラインにHello worldを出力するコマンドです。
早速エンターキーで実行します。

ちゃんと表示されてますね。
ここで先程のコマンドを分析してみましょう。
say Hello world
最初のsayはコマンドラインに文字列を表示させるための関数のようなものです。
その後のHello worldは引数のようなものです。
つまりC++の形にするとsay("Hello world")という形になります。
え、味気ないだって?
title @p title {"text":"Hello world","color","yellow"}
このコマンドを実行すると

画面中央に黄色でHello world!の文字が表示されました!
このコマンドも解析していきます。
title @p title {"text":"Hello world","color","yellow"}
最初のtitleは画面中央に文字列を表示させるためのコマンドです。
次の@pはtitileコマンドの対象です。
@~はコマンドの対象を表すときによく使われます。
@p以外にも以下のようなものがあります。
| @ | 対象 |
|---|---|
| @p | コマンドが実行された最近のプレイヤー |
| @r | ランダムなプレイヤー |
| @a | 全てのプレイヤー |
| @e | 全てのエンティティ(モブなど) |
| @s | 実行されているエンティティ(モブなど) |
次のtitleはtitleとsubtitleと二種類あるうちのtitleです。
次の{"text":"Hello world","color","yellow"}は何処かで見たことがあるのではないでしょうか?
これは厚切りjson形式です。
このようにコマンドの引数としてjsonを使うものあります。
見やすいように整形しました。
{
"text":"Hello world",
"color","yellow"
}
textは表示する文字列でcolorは表示する文字列の色を表します。
色々なコマンド
マインクラフトには多数のコマンドが用意されています。なので 今回は少しだけ紹介します。
アイテムを取得
まず以下のコマンドを実行してください。
give @p stone
これは言うまでもなくコマンドを実行した場所から最近のプレイヤーに石ブロックを与えるコマンドです。
時間を設定
夜の時点で以下のコマンドを実行すると
time set 0
朝になります。
もう打つのは面倒だ。そうだコマンドブロックに任せよう!
と、言うことでコマンドブロックと言うものを紹介します。
コマンドブロックはレッドストーン信号を受けると予め設定されたコマンドを実行する出力装置です。
ではコマンドブロックを取得しましょう。
コマンドブロックは特殊でインベントリからは取得することが出来ません。
代わりにコマンドで取得してみます。
以下のコマンドを実行してください。
give @p command_block
以下のようにコマンドブロックを取得できます。
右クリックすると以下のようなGUIが開きます。
「コンソールコマンド」と書かれている下のテキストボックスにコマンドを入力します。
ではここに以下のコマンドを入れてください。
give @p command_block
これで左下の「完了」ボタンを押してください。
以下のように完了されたことを表すメッセージが出たら成功です。

そしたらコマンドブロックにボタンを取り付けてください。この時Shift+右クリックで設置できます。

ボタンを押すと

このようにコマンドブロックが与えられます。
夜がない世界
名の通り夜がない世界をコマンドで作っちゃいます。
新しくワールををチートオンで生成してください。
先程のようにコマンドブロックを取得して以下のコマンドを設定してください。
/time set 6000
そしたら「インパルス」と書いてあるボタンを2回クリックして「リピート」にしてください。

そして「完了」をクリックすると以下のようにコマンドブロックの色が紫色になります。

そしたらこのコマンドブロックにレバーをShift+右クリックで設置します。

このレバーを下げると夜なない世界ができます。
説明
先程の「リピート」はそのコマンドブロックにレッドストーン信号が入力されている間ずっと設定されたコマンドを実行するというものです。
レバーは下げている間ずっとレッドストーン信号を入力するので「リピート」と相性がいいわけです。
コマンドラインがうるさい
先程の作った夜のない世界ではコマンドラインに「[@: 時刻を 6000 に設定しました]」というログがずっと残ってしまいます。
これが嫌な人は以下のコマンドを実行してください。
gamerule commandBlockOutput falseを実行するとログが出てこなくなります。
最後に
今回紹介したコマンドはほんの一部です。
他にも便利で面白いコマンドがたくさんあります。
コマンドを組み合わせていくことで脱出ゲームや特殊な武器、敵などを出すことも出来ます。
以上Minecraftのコマンドで遊んでみる記事でした。















