こんにちはたかしです!
この記事ではコマンドブロックを使って「コマンドを条件付きで実行させる方法」について話していきたいと思います!
前回の記事 ーチェーンブロック・リピートブロックについて
初回の記事 ーコマンドブロックとは?
コマンドブロックの「条件」と「動力」
今回肝になるブロックは「チェーンブロック」です。
使い方や基本的な機能は前回紹介しましたが、ここではもう一歩進んで「条件」と「動力」の有無について話していきます。
まずはいつものようにコマンド設定画面を開きましょう。
気づいている人もいるかもしれませんが、コマンド入力欄の下には三つのボタンが並んでいます。
一番左端のボタンについては前回解説した通りです。
ボタンを押すことでコマンドブロックの種類を変更できるのでした。
「無条件」と「条件付き」
では真ん中の「無条件」ボタンを見てみましょう。
押すと「無条件」「条件付き」を選択できるのがわかるかと思います。
外観は「無条件」がホームベース状の五角形であるのに対し、「条件付き」がその左辺を凹ませたような形になっています。
では何ができるかというと、このボタンではコマンドの実行条件を設定できます。入力したコマンドを「実行させるかさせないか」を選択できるわけです。
条件付きを選択すると、そのコマンドブロックは隣接したコマンドブロック(送り元のコマンドブロック)が、コマンドの実行に成功した場合のみ、起動するようになります。
使ってみよう
さて図だけだと少し分かりにくいので、実際に手を動かしてみましょう。
二つ並べたコマンドブロックに以下のコマンドを設定してみます。といってもやることは前回の「チェーンブロックの使い方編」で紹介したのと同じ。
①:time set night 夜にするコマンド
time set night
②:weather rain 雨にするコマンド
weather rain
この2つがうまく実行されると「夜にする」>>「雨が降る」、というコマンドが連続して実行されます。
設定が終わったら実行してみましょう。
記述をミスしていなければ想定通りに夜になって雨が降ってきます。
「これじゃあ前と変わらないじゃん!」と思ったアナタ!大丈夫。ここからが本題です。
では、次は先ほどインパルスに打ち込んだコマンドをわざと間違えてみましょう。
間違える内容はなんでもいいので、とりあえず
time set ---
とでも入力しましょうか。
そして実行すると、、、当然ながら実行されません。これが「実行条件」を満たしていない状態ということなのです!
つまりこの場合のコマンドの流れをわかりやすく書くと、
①:最初のインパルスブロックで「夜にする」を実行するが、コマンドが間違っているため実行できない。
②:2個目のチェーンブロックは「雨を降らせる」を実行しようとするが、前のインパルスブロックから「実行に失敗した!」という情報を受け取ったため、実行されない。
と、こういう感じになるわけです。
そしてこの場合はそもそもコマンド実行されていないので、実行ログには何も流れてきません。
試しにチェーンブロックを「無条件」に設定して再度実行すると、
時間は変わらずに、雨だけ降ってきます。
この場合は、チェーンブロックに実行条件を「無条件」に設定したことで、「夜にする」コマンド実行が失敗しようが成功しようが、「雨を降らす」コマンドは必ず実行する、という流れになっているためです。
条件付きコマンドブロックを使うと色々なことが実現できます。
例えば特定のプレイヤーに対してテレポート直後にメッセージを表示したり、あるいは時間を動かしたり、、、ということをしたい場合は、この「条件付き」ブロックが役に立ちます。
プレイヤーがまだ移動していないのにメッセージが出てきたり、夜になっては困る!なんてときに重宝します。
ちなみに、ここで察知できる実行条件は「コマンドの実行が成功したか失敗したか」だけでしたが、
もうちょっと複雑な条件(例えば〇〇がアイテムを手にしたらAというコマンドを実行する)を設定したい場合、executeという便利なコマンドが使えます。が、少し難しいので、それはまた別の機会に!
「条件付き」モードが使えるのは
そして最後に少しややこしいポイントを一つ。
この「条件付き」モード、すべての種類のコマンドブロックに設定できますが、実際に機能するのは「チェーンブロック」のみになります。
チェーンブロックについては前回解説しましたが(見ていない方はぜひご覧ください!)、その性質は「隣接したコマンドブロックが作動したときに、入力されたコマンドを実行する」というものでした。
そして「条件付き」モードは「前回実行したコマンドの結果」を読み取るので大前提「チェーンブロック」でなくてはならないのです。
まとめ
いかがでしたでしょうか?今回はコマンドブロックの「条件付きモード」について解説しました!簡単にまとめると以下の2点になります!
・「条件付き」モードでは前のコマンドの実行が成功したときのみコマンドを実行する
・チェーンブロックでのみ機能する
今回で3回目となる「コマンドブロックを使って一歩高みへ」ですが、どうでしょう?コマンドブロックにも徐々に慣れてきたのではないでしょうか?
次回は「動力が必要」「常時実行」について解説していきたいと思います!ぜひご覧ください!