command
minecraft

Minecraftのコマンドで遊んでみる

Minecraftとは?

結構有名なので言うまでもないですが、知らない人のために。
Minecraftは小中高生や大人に人気のゲームです。
ブロックを使って建築をしたり武器を作って敵をやっつけたりするゲームです。

リンク

Minecraftの公式サイト
wiki

コマンドとは?

「コマンド」と聞くとターミナルやコマンドプロンプトなどが思いつくかもしれません。
実際Minecraftのコマンドも似ています。
ターミナルなどのようにディレクトリやファイルを作成することは出来ないですが、Minecraft内を操作することが出来ます。
うまく使えばコマンドでMinecraft内にOSを作ることも可能です。

レッドストーンとは?

コマンドをより高度に扱うために「レッドストーン」の知識が必要になってきます。
これがレッドストーンです。
2017-09-29_15.09.26.png
レッドストーンにはONとOFFの2つの状態があります。
2017-09-29_15.13.56のコピー.png
レッドストーンの状態を変更するためのアイテム3種類を紹介します。

Minecraftの環境

バージョン:1.12.2
MOD:なし

レッドストーントーチ

2017-09-29_15.18.44のコピー.png

レッドストーントーチは自身の上下左右のブロックまたはレッドストーンに入力する。
また自分自身にレッドストーン信号が流れると入力が止まります。

ボタン

2017-09-29_15.22.07のコピー.png
ボタンはクリックされると0.75秒隣接しているブロックまたはレッドストーンに入力する。

他にも種類はありますがここでの紹介は控えさせてもらいます。
代わりに参考になりそうなサイトのリンクを張っておきます。

入力装置一覧

レバー

2017-09-29_15.43.21のコピー.png
レバーはクリックすることでONとOFFの状態を切り替えられてONの状態だと隣接しているブロックまたはレッドストーンに入力します。

出力装置

出力装置もありますがここでは1つだけ紹介します。

レッドストーンランプ

2017-09-29_15.36.57のコピー.png

レッドストーンランプはレッドストーン信号を受けると光ります。

回路

レッドストーンは他のレッドストーンと隣接させることでつなげることが出来ます。
2017-09-29_15.40.17のコピー.png
このようにレッドストーンと入力装置と出力装置で作った回路のことをレッドストーン回路と呼ぶことがあります。

AND OR NOT

もう気づいた人もいるかもしれませんがレッドストーン回路でAND OR NOTゲートを作ることが出来ます。

NOT

NOT回路は一番簡単に作れます。
2017-09-29_15.48.42のコピー.png

この画像だとレバーはOFFの状態です。
左上のランプは光っています。
これはレバーがOFFの状態ではレッドストーントーチはONの信号を発生させます。それでランプが光っています。
逆にレバーをONにすると以下のようになります。
2017-09-29_15.48.48のコピー.png
レッドストーントーチが下のブロックからレッドストーン信号を受けているのでレッドストーントーチがレッドストーン信号を発しなくなりました。

OR

2017-09-29_16.00.17のコピー.png

2017-09-29_16.00.36のコピー.png

2017-09-29_16.00.42のコピー.png

AND

2017-09-29_15.54.28のコピー.png

2017-09-29_15.57.15のコピー.png

2017-09-29_15.58.38のコピー.png

コマンドの使い方

さて前置きが長くなりましたが本題のコマンドです。

まずチートオンのワールドに入ってください。

そしたら/キーを押してください。
そうすると以下のように画面下部にコマンドラインが表示されます。

2017-09-29_16.06.23のコピー.png

コマンドを実行するにはここにコマンドを入力してエンターキーを押せば実行されます。
ターミナルやコマンドプロンプトのように上下キーを押せばコマンドの履歴を行き来できます。

初めてのコマンド

やっぱり最初は画面にHello worldを表示させたいですよね。
以下のコマンドを入力してください。
say Hello world
これはコマンドラインにHello worldを出力するコマンドです。
早速エンターキーで実行します。
2017-09-29_16.13.09のコピー.png
ちゃんと表示されてますね。

ここで先程のコマンドを分析してみましょう。
say Hello world
最初のsayはコマンドラインに文字列を表示させるための関数のようなものです。
その後のHello worldは引数のようなものです。
つまりC++の形にするとsay("Hello world")という形になります。

え、味気ないだって?
title @p title {"text":"Hello world","color","yellow"}
このコマンドを実行すると
2017-09-29_16.23.12.png
画面中央に黄色でHello world!の文字が表示されました!

このコマンドも解析していきます。

title @p title {"text":"Hello world","color","yellow"}

最初のtitleは画面中央に文字列を表示させるためのコマンドです。
次の@ptitileコマンドの対象です。
@~はコマンドの対象を表すときによく使われます。
@p以外にも以下のようなものがあります。

@ 対象
@p コマンドが実行された最近のプレイヤー
@r ランダムなプレイヤー
@a 全てのプレイヤー
@e 全てのエンティティ(モブなど)
@s 実行されているエンティティ(モブなど)

次のtitletitlesubtitleと二種類あるうちのtitleです。

次の{"text":"Hello world","color","yellow"}は何処かで見たことがあるのではないでしょうか?
これは厚切りjson形式です。
このようにコマンドの引数としてjsonを使うものあります。

見やすいように整形しました。

{
    "text":"Hello world",
    "color","yellow"
}

textは表示する文字列でcolorは表示する文字列の色を表します。

色々なコマンド

マインクラフトには多数のコマンドが用意されています。なので 今回は少しだけ紹介します。

アイテムを取得

まず以下のコマンドを実行してください。
give @p stone

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3135343239392f32393564396364372d356636312d316530632d643537332d3031333561326336613537632e706e67.png

これは言うまでもなくコマンドを実行した場所から最近のプレイヤーに石ブロックを与えるコマンドです。

時間を設定

2017-09-29_16.45.38のコピー.png

夜の時点で以下のコマンドを実行すると
time set 0
朝になります。

2017-09-29_16.47.15のコピー.png

もう打つのは面倒だ。そうだコマンドブロックに任せよう!

と、言うことでコマンドブロックと言うものを紹介します。

コマンドブロックはレッドストーン信号を受けると予め設定されたコマンドを実行する出力装置です。

ではコマンドブロックを取得しましょう。

コマンドブロックは特殊でインベントリからは取得することが出来ません。

代わりにコマンドで取得してみます。
以下のコマンドを実行してください。

give @p command_block

以下のようにコマンドブロックを取得できます。

2017-09-29_16.49.09のコピー.png

2017-09-29_16.52.33のコピー.png

右クリックすると以下のようなGUIが開きます。

2017-09-29_16.54.06.png

「コンソールコマンド」と書かれている下のテキストボックスにコマンドを入力します。

ではここに以下のコマンドを入れてください。
give @p command_block
これで左下の「完了」ボタンを押してください。
以下のように完了されたことを表すメッセージが出たら成功です。
2017-09-29_17.01.01のコピー.png
そしたらコマンドブロックにボタンを取り付けてください。この時Shift+右クリックで設置できます。
2017-09-29_17.04.12のコピー.png
ボタンを押すと
2017-09-29_17.04.58のコピー.png
このようにコマンドブロックが与えられます。

 夜がない世界

名の通り夜がない世界をコマンドで作っちゃいます。
新しくワールををチートオンで生成してください。

先程のようにコマンドブロックを取得して以下のコマンドを設定してください。
/time set 6000
そしたら「インパルス」と書いてあるボタンを2回クリックして「リピート」にしてください。
2017-09-29_17.16.44.png
そして「完了」をクリックすると以下のようにコマンドブロックの色が紫色になります。
2017-09-29_17.18.07のコピー.png
そしたらこのコマンドブロックにレバーをShift+右クリックで設置します。
2017-09-29_17.19.08のコピー.png
このレバーを下げると夜なない世界ができます。

説明

先程の「リピート」はそのコマンドブロックにレッドストーン信号が入力されている間ずっと設定されたコマンドを実行するというものです。
レバーは下げている間ずっとレッドストーン信号を入力するので「リピート」と相性がいいわけです。

コマンドラインがうるさい

先程の作った夜のない世界ではコマンドラインに「[@: 時刻を 6000 に設定しました]」というログがずっと残ってしまいます。
これが嫌な人は以下のコマンドを実行してください。
gamerule commandBlockOutput falseを実行するとログが出てこなくなります。

最後に

今回紹介したコマンドはほんの一部です。
他にも便利で面白いコマンドがたくさんあります。

コマンドを組み合わせていくことで脱出ゲームや特殊な武器、敵などを出すことも出来ます。

以上Minecraftのコマンドで遊んでみる記事でした。