コマンド解説-コマンドブロック編-
投稿日:2021/01/23
最終更新日:2021/05/02
どうも、ユキミ大福です。
今回はMinecraft統合版のコマンドにおいて、非常に重要で便利なコマンドブロックの解説をしていきます。
ここで解説するコマンド等は、解説する注意事項等をよく読み、個人でより詳しく調べた上で、個人の責任において使用して下さい。コマンド等の使用によって如何なる損害が発生しても、筆者であり当ブログの管理者でもあるわたくしユキミ大福は一切の責任を負いかねますので、ご了承下さい。
ちょっとだけ振り返り
以前の記事ではコマンドブロックについて軽く触れました。
まずは『コマンドブロック』の基本的な部分から振り返りつつ、詳しく解説していきましょう。
コマンドブロックの基礎
以前のいくつかの記事でもチラチラ登場していましたが、コマンドブロックは内部に1つコマンドを保存することができ、実行条件を満たすことで保存したコマンドを実行してくれるブロックです。
また、1度コマンドを実行しても、内部に保存したコマンドは消えないため、実行条件を満たす度に保存したコマンドを繰り返し実行できる優れものです。
注意!コマンドブロックは「設定」→「世界」→「ゲーム」→「チート」の中の「コマンドブロックが有効」がONでないと動作しません。
そんなコマンドブロックには以下の3種類が存在します。
なお、コマンドブロックは通常のクリエイティブタブには存在せず、コマンドによってのみ入手できます。
以下はそれぞれのアイテム・ブロックIDです。
インパルスコマンドブロック
command_block
チェーンコマンドブロック
chain_command_block
リピートコマンドブロック
repeating_command_block
↑ を入手するコマンド
/give @p <アイテムID>
なお、これらのコマンドブロックを右クリックすると設定画面が開くのですが、設定画面の左側の『ブロックの種類』の項目によってコマンドブロックの種類が変化するので、インパルスコマンドブロックさえ手に入れば問題ありません。
ちなみに、コマンドブロックはクリエイティブモード以外でその中身を覗くことはできません。さらにその耐久・耐爆力は岩盤と同様(クリエ破壊以外で破壊不可・完全爆破耐性)だったりします。
コマンドブロックが設定できること
コマンドブロックを右クリックすると、上の画像の様な設定画面が開きます。ここで設定・確認できる項目と、今後の解説で使用する表記をここにまとめます。
- ポイントした時の注意
- ブロックの種類
- 条件
- レッドストーン
- 最初のティックで実行
- ティックの遅延
- コマンド入力
- 前回の実行結果(ON/OFF)
- 前回の実行結果(実行結果表示)
- ポイントした時の注意
この項目はカーソルでターゲッティングした時(要はコマンドブロックにセンターカーソルを向けた時)に、プレイヤーの上のゲーマータグ表示のように表示される際の表示名として使われます。また、コマンドを実行した際にはその実行結果表示にも、ここで設定した表示名が出て来ます。
なお、入力できる文字数は16文字までです(半角・全角問わず)。
-
ブロックの種類
この項目でインパルス、チェーン、リピートコマンドブロックを区別しています。上の方でも書きましたが、コマンドブロックの種類はこの項目を設定することでどのコマンドブロックも変化するため、通常はインパルスコマンドブロックさえ手に入れられれば問題ありません。
設定できるのは以下の3種類です。
●衝撃(インパルス):
「レッドストーン」の項目が「レッドストーンが必要」の場合にはレッドストーン動力の入力によって、「常にアクティブ」の場合には設定画面を閉じた瞬間にコマンドを実行するモードです。
●チェーン:
「レッドストーン」の項目が「レッドストーンが必要」の場合にはレッドストーン動力が入力されている時に、別のコマンドブロックから実行信号を受け取ることで、「レッドストーン」の項目が「常にアクティブ」の場合にはレッドストーン動力不要で、別のコマンドブロックから実行信号を受け取ることでコマンドを実行するモードです。
●反復(リピート):
「レッドストーン」の項目が「レッドストーンが必要」の場合にはレッドストーン動力が入力されている間、「常にアクティブ」の場合には設定画面を閉じた瞬間からもう一度設定画面を開いて閉じるまでコマンドを実行するモードです。 - 条件
この項目はそのコマンドブロックがtrue信号で動くか、実行信号(または実行信号無し)で動くかを設定します。
…さて、これまでの解説でちょくちょく出てきた『true信号』と『実行信号』をここできちんと解説します。
このブログでは以下の様に定義します。
●実行信号:
コマンドブロックそのもののコマンド実行条件が揃った時、その成否・コマンドの実行・非実行にかかわらず発する、コマンドブロック専用の信号
●true信号:コマンド実行が成功し、コマンドの実行結果で「true」が出力された場合に、実行信号と共に発する、コマンドブロック専用の信号
なお、コマンドが「true」を出力する条件はコマンドによって異なるため、その辺は以下の記事のリンクハブからコマンドそれぞれの詳細解説ページに飛び、true(成功)になる条件をご確認ください。
この信号はレッドストーン動力とも異なるもので、コマンドブロックから、ある特定の向きに隣接する別のコマンドブロックへのみ伝わります。
実はコマンドブロックには以下の様に6方向の「向き」が存在します。このブログでは「前」を丸っぽい模様がある面(上画像では左から2番目の上の面)、「後ろ」を四角っぽい模様がある面(上画像では1番左の上の面)として解説していきます。
コマンドブロックの前と後ろの面以外の4面は、前側の面の方を向いた矢印の様な五角形の模様があります。この4面をこのブログでは「側面」とします。
true信号も実行信号もこの6面の内、前の面だけから発信されます。
残りの5面は実行信号を受ける面です。そして、後ろの面だけはtrue信号も受信できます。
設定できるのは以下の2種類です。
●無条件:
前以外の5面のいずれかに実行信号を受けた場合に実行されるモードです。「レッドストーン」の項目が「レッドストーンが必要」の場合は、実行信号を受けた瞬間にレッドストーン動力が入力されている必要があります。
●条件付き:
後ろの面にtrue信号を受けた場合のみ実行されるモードです。「レッドストーン」の項目が「レッドストーンが必要」の場合は、true信号を受けた瞬間にレッドストーン動力が入力されている必要があります。 - レッドストーン
この項目はそのコマンドブロックの起動にレッドストーン動力入力が必要か、必要でないかを設定します。
設定できるのは以下の2種類です。
●レッドストーンが必要:
コマンドブロックの起動にレッドストーン動力が必要になるモードです。
●常にアクティブ:
コマンドブロックの起動にレッドストーン動力が不要になるモードです。
コマンドブロックは、これら2~4の組み合わせによってその機能が変わります。通常であれば、以下の組み合わせになると思います。
①. インパルスコマンドブロック
ブロックの種類:衝撃
条件:無条件
レッドストーン:レッドストーンが必要
上記の様に設定することで完成します。
レッドストーン動力を受けるとコマンドを実行します。もう一度実行させるには、入力しているレッドストーン動力を一度OFFにする必要があります。
『レッドストーン』を『常にアクティブ』に設定した場合には、設定画面を閉じた瞬間にコマンドを一度だけ実行しますが、使いづらいので『レッドストーンが必要』にすることをオススメします。
『条件』を『条件付き』に設定した場合には、その前のコマンドブロックからTrue信号を受けると同時に『レッドストーンが必要』か『常にアクティブ』の実行条件を満たせばコマンドを一度だけ実行しますが、クッソ使いづらいので『無条件』を推奨します。
②. チェーンコマンドブロック
ブロックの種類:チェーン
条件:無条件 or 条件付き
レッドストーン:常にアクティブ
上記の様に設定することで完成します。
前のブロックから『実行信号』を受けるとコマンドを実行します。『条件付き』の場合は『true信号』を受けた時のみ実行します。
『レッドストーン』を『レッドストーンが必要』に設定した場合には、レッドストーン動力が入力されている時に『実行信号』または『true信号』を受けると実行しますが、正直わたくしはあまり使いません。
③. リピートコマンドブロック
ブロックの種類:反復
条件:無条件
レッドストーン:レッドストーンが必要
上記の様に設定することで完成します。
レッドストーン動力を受けている限り、繰り返しコマンドを実行します。このブロックのコマンド1回の実行スピードは、デフォルトではなんと1/20秒です(1Gtick)。つまり、1秒間に20回もコマンドを実行できるのです。
『条件』を『条件付き』に設定した場合には、その前のコマンドブロックからTrue信号を受けると同時に『レッドストーンが必要』か『常にアクティブ』の実行条件を満たせばコマンドを実行しますが、クッソ使いづらいので『無条件』がオススメです。
『レッドストーン』を『常にアクティブ』に設定した場合には、設定画面を閉じた瞬間から再び設定画面を開くまで、何もせずともコマンドを無限に実行し続けます。コマンドの中には凄まじいスピードで繰り返し実行するのは危険なものもあるので、慣れない内は『レッドストーンが必要』にすることを強く推奨します。
ヤバいコマンドの例
/kill @a
「/kill」は指定したエンティティを問答無用で倒すコマンドで、ターゲットセレクターが「@a」なので、対象はワールドに存在する全てのプレイヤーとなります。
このコマンドは1回だけ実行する分には問題ないのですが、これをリピートコマンドブロックで実行させると、1秒間に20回という速さでワールドの全てのプレイヤーを倒し続けることになります。つまり、何度リスポーンしても、その瞬間に死にます。
こうなってしまった場合、ワールドを一旦閉じ、ワールドの設定画面から『コマンドブロックが有効』をOFFにしてからワールドに再度入り、悪さをしているコマンドブロックを破壊するかそのコマンドを修正するしかありません。
それで済むならまだマシな方で、コマンドによってはワールドが重くなりすぎて開けない、または入れてもまともに動けない、最悪の場合にはワールドやマイクラそのものが死ぬ可能性もあります。
これらの危険性があるので、もう一度言いますが『レッドストーンが必要』を強く推奨します。その上で、リピートコマンドブロックでコマンドを実行させるコマンドはよく考えましょう。
また、繰り返しになりますが、ここで解説したコマンド等は、解説する注意事項等をよく読み、個人でより詳しく調べた上で、個人の責任において使用して下さい。コマンド等の使用によって如何なる損害が発生しても、筆者であり当ブログの管理者でもあるわたくしユキミ大福は一切の責任を負いかねますので、ご了承下さい。 - 最初のティックで実行
この項目はブロックの種類が反復(リピート)の場合にのみ有効になります。
…が、効果はちょっとイマイチよくわかりません。おそらく、反復処理が同一ティックで重複した場合の優先度を設定できるのだと思います。ONであればその処理は優先され、OFFになればその処理は優先されなくなる…のだと思います。 - ティックの遅延
この項目はコマンドブロックが実行条件を満たした瞬間から実行する(実行信号・true信号を発する)までの遅延時間をゲームティック(以後Gtick)で指定するものです。
20Gtick = 1秒なので、10と入れれば 0.5秒の遅延、100と入れれば5秒の遅延が発生します。実行信号やtrue信号も一緒に遅延します。 - コマンド入力
この部分に実際のコマンドを入力します。右の「+」のボタンを押すことでコマンド全文を表示・編集できます。 - 前回の実行結果(ON/OFF)
この項目はコマンド実行時の実行結果を、この項目の下の「前回の実行結果(実行結果表示)」に表示・保存するかどうかを設定しています。OFFで非表示・非保存、ONで表示・保存します。 - 前回の実行結果(実行結果表示)
この項目はコマンド実行時の実行結果やコマンドの構文エラーを表示してます。その下にはそのコマンドを実行した時の2~4の項目の設定内容も表示しています。
コマンドブロックでコマンドを実行できると物凄く便利なのでわたくしは良く使っています。今後の記事ではコマンドブロックを使いまくるので、主要な設定を簡単な表記で表せるようにします。
簡単な表記で表す項目
- ポイントした時の注意
- ブロックの種類
- 条件
- レッドストーン
- ティックの遅延
- コマンド入力
特記しない項目(要は個人の自由で設定する項目)
- 最初のティックで実行
- 前回の実行結果(ON/OFF)
- 前回の実行結果(実行結果表示)
ユキミ大福式コマンドブロック設定項目表記法
- ブロックの種類
●衝撃(インパルス) :S
●チェーン :C
●反復(リピート) :R - 条件
●無条件 :N
●条件付き :C - レッドストーン
●レッドストーンが必要:R
●常にアクティブ :A - ティックの遅延
●(<遅延Gtick>) ※0の場合は省略可 - コマンド入力
●<実行するコマンド(「 / 」は必ず付ける)> - ポイントした時の注意
●<改行>=><ポイントした時の注意> ※省略可
表記)
<ブロックの種類><条件><レッドストーン><ティックの遅延><コマンド入力>
=><ポイントした時の注意>
例)
SNR/give @p diamond
例)
CCA(10)/setblock 100 70 100 redstone_block 0 replace
=>S.RSB-Test
- ブロックの種類 :チェーン
- 条件 :条件付き
- レッドストーン :常にアクティブ
- ティックの遅延 :10
- コマンド入力 :/setblock 100 70 100 redstone_block 0 replace
- ポイントした時の注意:S.RSB-Test
例)
RNR(20)/execute @p[tag=VictimLM,scores={pNum=1..8}] ~ ~ ~ kill @a[r=5]
=>プレイヤーキル
- ブロックの種類 :反復
- 条件 :無条件
- レッドストーン :レッドストーンが必要
- ティックの遅延 :20
- コマンド入力 :/execute @p[tag=VictimLM,scores={pNum=1..8}] ~ ~ ~ kill @a[r=5]
- ポイントした時の注意:プレイヤーキル
2~4の解説で出した設定項目の組み合わせを上の表記法に当てはめると、主に使用するのは以下の4種類になります。
SNR<コマンド>
CNA<コマンド>
- ブロックの種類 :チェーン
- 条件 :無条件
- レッドストーン :常にアクティブ
- ティックの遅延 :(任意)
- コマンド入力 :(任意)
- ポイントした時の注意:(任意)
CCA<コマンド>
- ブロックの種類 :チェーン
- 条件 :条件付き
- レッドストーン :常にアクティブ
- ティックの遅延 :(任意)
- コマンド入力 :(任意)
- ポイントした時の注意:(任意)
RNR<コマンド>
コマンドブロックのもう一つの利点
さて、ここまでコマンドブロックについてかなり色々解説してきました。しかも、わたくし独自のコマブロ設定の表記法までご紹介しました。
なぜそんなものが必要なのかというと、コマンドブロックをチェーンする時に簡潔な表記法が必要だからです。
コマンドブロックの便利な点として、コマンドを一々書かずに繰り返し実行できるというものもありますが、もう一つの便利な点が複数のコマンドを順番に自動で実行できることです。この時、複数のコマンドとそのコマンドを保存するコマブロの設定内容を簡潔に表記できないと大変だというわけです。
コマンドブロックを「チェーンする」とは?
上の解説にもある通り、コマンドブロックの種類の1つにチェーンコマンドブロックがあります。このコマブロはインパルス・リピートコマンドブロックとは異なり、他のコマブロから実行信号かtrue信号を受信しなければ動きません。要は、こいつだけでは何もできないのです。
ですが、インパルス・リピートコマンドブロックの「前」の面にこのチェーンコマンドブロックは、ほぼ無限に繋ぐことができます。これにより、複数のコマンドを順番に自動で実行できるのです。当ブログでは、インパルス・リピートコマンドブロックの「前」の面に、チェーンコマンドブロックの「前」以外の面を繋げることをチェーンすると書きます。遊戯王みたい。
コマンドブロックをチェーンする際には、当ブログでは以下の様に表記します。
コマンドブロックA<改行>
コマンドブロックB<改行>
コマンドブロックC<改行>
・・・
例)
SNR/give @p diamond
=>コマブロA
CNA/give @p emerald
=>コマブロB
CNA/tell @p ダイヤ&エメラルドGET!
=>コマブロC
なお、チェーンが発生したコマンドブロックは、一番初めに実行されるコマンドブロックからチェーン1、チェーン2、チェーン3…と呼ぶことにします。…マジで遊戯王みたいになってきた。逆順処理はしないけど。
上の例では、
チェーン1:SNR/give @p diamond
チェーン2:CNA/give @p emerald
チェーン3:CNA/tell @p ダイヤ&エメラルドGET!
となります。
チェーンを成立させる上での注意
実行信号・true信号の解説の部分でもお話しましたが、実行信号・true信号を受信できる面は少し異なります。ここに注意しながらいくつかチェーンの例を見てみましょう。
- チェーンが成立する例その1)
チェーン1:SNR<任意のコマンド>
チェーン2:CCA<任意のコマンド>
チェーン3:CNA<任意のコマンド>
チェーン4:CNA<任意のコマンド>
チェーン5:CCA<任意のコマンド>
詳細解説)
●チェーン2:
CCAの「後ろ」の面に対し「チェーン1:SNR」の出力面(「前」の面)がチェーンされているので、きちんと実行信号とtrue信号がチェーン2のコマブロに伝わります。
●チェーン3:
CNAの「後ろ」の面に対し「チェーン2:CCA」の出力面がチェーンされているので、きちんと実行信号がチェーン3のコマブロに伝わります。
●チェーン4:
CNAの側面に対し「チェーン3:CNA」の出力面がチェーンされているので、きちんと実行信号がチェーン4のコマブロに伝わります。
●チェーン5:
CCAの「後ろ」の面に対し「チェーン4:CNA」の出力面がチェーンされているので、きちんと実行信号とtrue信号がチェーン5のコマブロに伝わります。 - チェーンが成立する例その2)
チェーン1:SNR<任意のコマンド>
チェーン2:CNA<任意のコマンド>
チェーン3:CNA<任意のコマンド>
チェーン4:CNA<コマンドを入れない>
チェーン5:CNA<任意のコマンド>
詳細解説)
●チェーン2:
CNAの「後ろ」の面に対し「チェーン1:SNR」の出力面(「前」の面)がチェーンされているので、きちんと実行信号がチェーン2のコマブロに伝わります。
●チェーン3:
CNAの「後ろ」の面に対し「チェーン2:CNA」の出力面がチェーンされているので、きちんと実行信号がチェーン3のコマブロに伝わります。
●チェーン4:
CNAの側面に対し「チェーン3:CNA」の出力面がチェーンされているので、きちんと実行信号がチェーン4のコマブロに伝わります。
●チェーン5:
CNAの「後ろ」の面に対し「チェーン4:CNA」の出力面がチェーンされているので、きちんと実行信号がチェーン5のコマブロに伝わります。CNAの実行信号はコマンドが実行されなくとも、そのコマブロ自体の実行条件を満たせば出力されます。 - チェーンが成立しない例)
チェーン1:SNR<任意のコマンド>
チェーン2:CNA<任意のコマンド>
チェーン3:CNA<任意のコマンド>
チェーン4:CCA<任意のコマンド>
チェーン5:CNA<任意のコマンド>
詳細解説)
●チェーン2:
CNAの「後ろ」の面に対し「チェーン1:SNR」の出力面(「前」の面)がチェーンされているので、きちんと実行信号がチェーン2のコマブロに伝わります。
●チェーン3:
CNAの「後ろ」の面に対し「チェーン2:CNA」の出力面がチェーンされているので、きちんと実行信号がチェーン3のコマブロに伝わります。
●チェーン4:
CCAの「後ろ」の面に対し「チェーン3:CNA」の出力面がチェーンされていないので、チェーン4のコマブロは実行されません。この時、チェーン4のコマブロから実行信号は出力されません。
●チェーン5:
CNAの「後ろ」の面に対し「チェーン4:CCA」の出力面がチェーンされていますが、チェーン4のコマブロは実行信号を出力できないため、チェーン5のコマブロも実行されません。この時、チェーン5のコマブロから実行信号は出力されません。
●このため、このコマブロ群はチェーン3までしか実行されません。
いくつか例を出してみましたが、いかがでしたでしょうか。正直、気を付けるべき場合は、コマブロをチェーンする際に向きを変える場合のみです。要は、一切向きを変えずにチェーンすればこの問題は考えずに済みます。慣れない内はコマブロを一直線にチェーンすることをオススメします。
今回はコマンドブロックについての詳細解説でした。このコマンドブロックを活用することで、このブログの解説目標である「Minecraft統合版でのゲーム制作」は成り立っています。そのため、ちょっと難しいかもしれませんが、これからの解説では頻出する必須知識なので、わからなくなったらまたこの記事に戻って復習してみて下さい。
次回からはこのコマンドブロックをフルに活用したコマンド解説応用編です。これまでは基礎知識&クソ難しい・つまらない話ばかりでしたが、ここからは実際どのようにコマンドを使うのか、コマンドを使うと具体的にどんなものが作れるのかというちょっと面白い話になります!…なるはずです。
また、それと並行して各コマンドの解説もしていきます!Minecraft統合版で使えるコマンドは本当に様々な種類があり、本当に色々なことができます。それら一つ一つにスポットライトを当て、詳細な解説をしていきます。お楽しみに!
今回のまとめ
- コマンドブロックはコマンドを保存し、実行できる!
- コマブロの種類はインパルス、チェーン、リピートの3種類!
- コマブロにはそれぞれ実行条件を付けられる!
- コマブロの各種設定を簡潔に表記できるユキミ大福式コマンドブロック設定項目表記法!
- コマブロをチェーンする時は向きに注意!
関連記事
当記事及び当ブログへのご意見・ご質問はいつでも受け付けております。
お気軽にコメント欄までどうぞ!
↓良ければポチッとお願いします。