【4選】おすすめのマイクラのマルチサーバーはこちら

【マイクラ統合版】executeコマンドの基本の使い方について分かりやすく解説!コマンドの実行者を変えることが出来る!

コマンド
記事内に広告(Amazonを含む)が含まれています。

マイクラをやっていてミニゲームを作りたくなったとき、やり方を調べるとexecuteというコマンドが出てきて「訳がわからない!」となったことはありませんか?
筆者自身もはじめは訳が分からず中々うまくいきませんでしたが、使い方が分かりミニゲームを作るのにかなり役に立っています。
そんなexecuteコマンドについて解説していきます!

スポンサーリンク

基本の構文

まずそもそも構文が分からない人もいると思います。
おそらくこの後説明する「サブコマンド」を説明した後でないとさっぱりだと思いますが大体こんな感じなんだくらいの気持ちで見てください。

/execute <サブコマンド> <セレクター> run <実行したいコマンド>

はい、はっきり言ってさっぱりだと思います。そもそもサブコマンドってなんやねんって話だと思います。
今からそのサブコマンドについて解説していきます。

サブコマンドとは

サブコマンドは先ほどの構文

/execute <サブコマンド> <セレクター> run <実行したいコマンド>

のサブコマンドとセレクターの部分に該当する部分です。

as

まずasについてです。
構文は

as <セレクター>

です。このサブコマンドを使うとasの直後のセレクターがそれ以降のコマンド(サブコマンドを含める)のセレクターの主体になります。


asの後のセレクターに実行者を移すことができます。
sayコマンドを例にすると分かりやすいでしょう。
普通にコマンドブロックにsay aというコマンドを打ち込むと

execute asコマンドを使わずにコマンドブロックにコマンドを打ちこんだときの様子

!はコマンドブロックのことです。つまりsay aをコマンドブロックが実行しました。
しかしこれを

/execute as @p run say a

と打つと

execute asコマンドを使ってコマンドを実行した様子

(青で隠されているのは筆者のユーザーネームです)
これによってコマンドブロックの一番近くに居た私が実行者になりました。

at

次はatについてです。
構文はasと同じなので省略します。
atは実行する地点の対象を決めます。
これだけでは分かりづらいと思うので実際に画像を見てみましょう。

execute atコマンドを使ったときの例の様子1

動くと

execute atコマンドを使ったときの例の様子2

実行したコマンドは

/execute at @p run particle minecraft:campfire_smoke_particle

で、意味は「コマンドブロックの一番近くのプレイヤーを実行地点にして煙のパーティクルを出す」です。もしatがexecuteが無ければコマンドブロックから煙が発せられました。
今回はプレイヤーですが、豚やゾンビなどのmobを実行する場所にもできます。
このようにatを使うと指定のmobの位置からコマンドを実行することができます。

この2つを組み合わせてコマンドを作る際の注意です。

/execute as @p at @s run <任意のコマンド>

これはコマンドブロックに一番近いプレイヤーにそのプレイヤーを起点に適当なコマンドを実行させるコマンドです。
あれ?と思った人もいると思います。
asとatの後のセレクターは同じなのになんで違うのか?
と思ったでしょう。
ですが、これはasの後にすでにコマンドの実行者が@pに決まっているのでそのプレイヤーからして自分、つまり@sが起点になっています。

if/unless

これは特定の条件を満たしたとき、もしくは満たさない時にコマンドを実行するという条件を付けるものです。

ifで条件を満たす時、unlessで満たさない時です。

構文は

if(もしくはunless)  <条件> <条件の対象>

です。

こちらはasとatと違い、セレクターではなく条件になっています。

ただし、その後に条件によって条件の対象に座標やセレクターが入ることもあります。

これから条件の部分にあたる部分を説明していきます。

entity

これは対象のエンティティが存在する/しない時にrunの後のコマンドを実行するというコマンドです。
構文は

if(もしくはunless) entity <対象のエンティティ> 

です。
たとえば

/execute if entity @e[name=test] as @p at @s run summon zombie

意味は「testという名前のエンティティが存在するとき、ゾンビを最寄りのプレイヤーに召喚する」です。
これを実行すると

execute if entityの条件を満たしていないときの様子

はい、これだけでは何も起こりません。なぜならtestと言う名前のエンティティがワールドに存在しないからです。
ですが、testという名前の防具立てを召喚すると

execute if entityの条件を満たしたときの様子

こんな感じにゾンビが召喚されました。                           (ちなみに動力なし、リピートなので大変なことになってます笑)
unlessはこの逆でもし上のコマンドのifをunlessに書き換えるとtestというエンティティが存在する時にゾンビが召喚されず、存在しないと召喚されます。

今回はたまたま適当な名前のエンティティを条件にしましたが、モブやタグ、スコアボードでも識別できます。

block

if/unless blockはさきほどのif/unless entityのブロック版です。

構文は

if(もしくはunless) block <x y z座標> <ブロックの名前>

です。

これは指定した<x y z座標>に<ブロックの名前>で指定した任意のブロックがifが有る場合、unlessは無い場合コマンドを実行するというものです。

score

スコアを比較する

scoreはscoreboardの誰かのスコアを他の誰かのスコアと比べた時の結果によってコマンドを実行するかを決めるものです。

scoreboardコマンドについてはこちらの記事をご覧ください。

構文は

if(もしくはunless) score <スコアを所持しているセレクター> <スコア名> <等号(もしくは不等号)> <比較対象のスコアを所持しているセレクター> <比較対象のスコア名>

です。

この構文でスコアの値を比べ、=であれば同じとき、不等号であればその不等号が表す条件に合っているときにコマンドを実行します。

matches

matchesは任意のプレイヤーのスコアと数値を比較し、条件に当てはまる場合に実行します。

構文は

if(もしくはunless) score <スコアを所持しているセレクター> <スコア名> matches <比較対象の数値>

です。

数値の部分は以下のような表し方をできます。

xスコアの値がxの時
x..スコアの値がx以上の時
..xスコアの値がx以下の時
x..yスコアがx以上y以下の時
x,yには任意の数値が入ります

終わりに

紐解いていくと意外と大して難しくないと思います。
他にもサブコマンドはありますが、今紹介したサブコマンド以外はあんまり使いませんが、今後追記していくつもりです。

それでは!