マイクラのexecuteコマンドは、単体のコマンドでは不可能なことが実現できる反面、むずかしさは全コマンドの中でトップレベル。多機能であるがゆえに、使いこなすのは簡単ではありません。
そこでこの記事では、executeコマンドの使い方を、入力例をまじえてわかりやすく解説しています。コマンド初心者にもわかるように説明しているので、ぜひ参考にしてください。
executeコマンドとは
executeコマンドは、他のコマンドを実行するときに条件をつけたり、プレイヤー以外のエンティティにコマンドを実行させたりできるコマンドです。たとえば以下のようなことも、executeコマンドを使えばカンタンに実現できます。
- ◯ あるエリアに入ったときに罠が発動する
- ◯ あるアイテムを身につけているときにだけ宝が手に入る
- ◯ クリーパーやゾンビがコマンドで自身を強化する
ミニゲームを作ったり、配布ワールドを作ったりするときに、なくてはならないコマンドです。以下で、使い方をくわしく紹介していきます。
executeコマンドの構文とサブコマンドの使い方
executeコマンドは、「/execute」に続けてサブコマンドを入力し、最後に実行したいコマンドを入力して使います。
/execute <サブコマンド> <サブコマンド> … run <実行コマンド>
サブコマンドは複数入力することができて、入力した順番に処理されます。一つのコマンドで複数のサブコマンドが使われるのが、executeコマンドの難しいところです。
Java版では14種類、統合版では11種類のサブコマンドがあります。上の構文に出てきた「run」もサブコマンドの一つです。
executeのサブコマンドと効果一覧 | ||
---|---|---|
run | 他のコマンドを実行する | |
as | 実行者を指定する | |
at | 実行位置を指定する | |
if|unless | 条件を満たすとき、満たさないときに実行する | |
store | 実行結果を格納する | Java版のみ |
positioned | 実行位置を指定する | |
facing | 基準位置からの向きを指定する | |
summon | 実行者となるエンティティを召喚する | Java版のみ |
align | 実行座標の小数点以下を切り捨てる | |
anchored | 基準位置をエンティティの目か足に指定する | |
rotated | 実行者の向きを指定する | |
in | ディメンションを指定する | |
on | 実行者を特定関係にあるエンティティに変更する | Java版のみ |
ここから先で、各サブコマンドの機能や入力例をくわしく解説しています。かなり長くなっているので、上表のサブコマンドのリンクをタップして、該当箇所までスクロールさせて読んでください。
run – 他のコマンドを実行する
runは、他のコマンドを実行するサブコマンドです。executeコマンドは、基本「/execute ◯◯ run △△」という形になります。
たとえば、以下のように使います。
/execute as @e[type=pig] run say hello
このコマンドを実行すると、ブタそれぞれがsayコマンドを実行し、ブタの数だけhelloと表示されます。
「as」は実行者を指定するサブコマンドで、ここではターゲットセレクターでブタを指定しています(as @e[type=pig]の部分)。
「@p」や「@e」はターゲットセレクターと呼ばれるもので、コマンド内でエンティティを選択するときに使われます。ターゲットセレクターには、以下のようなものがあります。
種類 | 対象 |
---|---|
@p | 最も近くにいるプレイヤー |
@r | ランダムなプレイヤー |
@a | すべてのプレイヤー |
@e | すべてのエンティティ |
@s | コマンド実行者 |
さらに、「type」や「name」などのフィルターで、対象をしぼり込むことができます。@e[type=pig]なら、全てのエンティティのうちブタだけが対象となります。
as – 実行者を指定する
asは、実行者を指定したエンティティに変更するサブコマンドです。ターゲットセレクターで指定できるものであれば、なんでも実行者にできます。
たとえば、以下のように使います。
/execute as @e[type=creeper] run summon lightning_bolt ^ ^ ^2
クリーパーに、summonコマンドを実行させるコマンドです。as @e[type=creeper]で、コマンド実行者をクリーパーにして、「summon lightning_bolt ^ ^ ^2」で雷を2ブロック前方に落としています。
このとき、雷が落ちるのは実行者であるクリーパーの前方ではなく、プレイヤーの前方です。これは、asは実行者を変えるだけで実行位置までは変えないため。
雷をクリーパーの目の前に落としたい場合は、次に紹介する「at」を使います。
at – 実行位置を指定する
atは、コマンドの実行位置や向きを、指定したエンティティのものと一致させるサブコマンドです(実行者は変更されません)。たとえば、以下のように使います。
/execute as @e[type=creeper] at @s run summon lightning_bolt ^ ^ ^2
クリーパーが、自分の目の前に雷を落とすコマンドです。asで実行者をクリーパーにしたうえで、atで実行位置もクリーパーの位置にしています(@s=コマンド実行者)。
executeを使うときは、実行者と実行位置をそれぞれ意識したほうが良いです。「as ◯◯ at @s」とセットで指定しておけば、自分がコマンドを実行するのと同じ感覚で、エンティティにコマンドを実行させることができます。
if|unless – 条件を満たす・満たさないときに実行
ifは指定した条件を満たしているときに、unlessは条件を満たしていないときにだけコマンドを実行できるサブコマンドです。
たとえば、以下のように入力します。
-
/execute as @e[type=armor_stand] at @s if entity @p[distance=..5] run fill ^-2 ^ ^1 ^2 ^ ^5 fire
-
/execute as @e[type=armor_stand] at @s if entity @p[r=5] run fill ^-2 ^ ^1 ^2 ^ ^5 fire
防具立てから5ブロック以内の距離にプレイヤーがいるとき、上のコマンドが実行されると、防具立ての前5×5の範囲に炎が出現します。
「if entity」は、指定したエンティティが存在するかどうかをチェックするコマンドです。他のexecute ifについては、以下の記事でくわしく解説しています。合わせて読んでみてください。
この記事では、条件をつけてコマンドを実行できるexecute ifの使い方を、くわしく解説しています。どのような仕組みなのか、どんな条件が使えるのかを、入力例を紹介しながらわかりやすくまとめているので、ぜひ参考にしてくだ …
store – 実行結果を保存する
storeは、コマンドの実行結果を保存できるサブコマンドです。Java版のみ使用可能。store resultで実行結果を、store successで成功したかどうか(成功→1、失敗→0)を保存できます。
たとえば、以下のように使います。
/execute store result block -11 53 248 Items[0].Count int 2 run data get entity @p Health
上のコマンドを実行すると、(x,y,z)=(-11,53,248)にあるブロックの0番目のスロット(左上のマス)に入っているアイテムの個数が、プレイヤーの体力値の2倍に変更されます。
値を保存できる場所は、以下の5つです。
条件 | 内容 |
---|---|
store (result|success) block | ブロックのNBTに値をいれる |
store (result|success) bossbar | ボスバーに値をいれる |
store (result|success) entity | エンティティ(プレイヤー以外)のNBTに値をいれる |
store (result|success) score | スコアボードに値をいれる |
store (result|success) storage | ストレージのNBTに値をいれる |
positioned – 実行位置を座標で指定する
positionedは、実行位置を指定するサブコマンドです。実行位置を指定するサブコマンドにはatもありますが、atと違って座標や、高度マップの値(Java版のみ)での指定が可能です。
指定 | 機能 |
---|---|
positioned | 座標で指定する |
positioned as | エンティティの位置で指定する |
positioned over | 高度マップの値で指定する(高度マップは各座標における最高高度を記録したファイルのこと) |
まずは、座標で指定する例です。
-
/execute positioned 0 64 0 run locate structure #village
-
/execute positioned 0 64 0 run locate structure village
上のコマンドを実行すると、(x,y,z)=(0,64,0)から最も近い村の座標を調べることができます。
エンティティの位置で指定するときは、以下のように入力します。
/execute positioned as @e run summon lightning_bolt
上のコマンドを実行すると、すべてのエンティティに雷が落ちます。
「positioned as」は「as」と同じ機能です。
高度マップの値で指定するときは、以下のように使います。
/execute positioned over world_surface run setblock ~ ~ ~ glass
上のコマンドを実行すると、空気以外で最も高い位置にあるブロックの1ブロック上に、ガラスブロックが設置されます。
高度マップの値は、positioned over ◯◯という形で入力して使います。◯◯で指定できるのは、以下の4つです。この値の1ブロック上が実行位置になります。
指定 | 意味 |
---|---|
world_surface | 空気以外で最も高い位置にあるブロックのY座標 |
ocean_floor | エンティティの移動を妨げる(当たり判定のある)ブロックで水、溶岩以外のブロックのY座標 |
motion_blocking | 水、溶岩、浸水ブロックをふくむ、エンティティの移動を妨げるブロックのY座標 |
motion_blocking_no_leaves | motion_blockingに該当するブロックで葉以外のブロックのY座標 |
facing – 向きを指定する
facingは、コマンド実行時の向きを指定するサブコマンドです。実際にその方向を向いていなくても、指定した方向を向いていると仮定してコマンドが実行されます。向きは、座標かターゲットセレクター指定します。
たとえば座標で向きを指定するときは、以下のように入力します。
/execute facing 0 64 0 run setblock ^ ^ ^1 glass
実行位置から(x,y,z)=(0,64,0)を向いた状態でsetblockコマンドが実行され、1ブロック前方にガラスブロックが設置されます。
エンティティで指定するときは、ターゲットセレクターに加えてeyesまたはfeetの指定が必要です。eyesを指定するとエンティティの目を、feetを指定するとエンティティの足を見てコマンドが実行されます。
/execute as @e[type=cow] at @s facing entity @p[name=nishi10] eyes run tp ^ ^ ^5
上のコマンドを実行すると、近くにいるウシがtpコマンドを実行し、プレイヤーnishi10の目の方向に5ブロック前進します。
コマンド内での座標の指定には、数字のほかに「~ ~ ~」(チルダ)と「^ ^ ^」(キャレット)が使えます。~は座標、^は視線を基準にした指定方法です。
指定 | 意味 |
---|---|
~5 ~10 ~-2 | x方向に+5、y方向に+10、z方向に-2 |
^5 ^10 ^-2 | 左に+5、上に+10、前に-2 |
向きを指定するexecute facingでは、基本的に「^ ^ ^」をつかって位置を指定します。
summon – 実行者を召喚する
summonは、実行者となるエンティティをあらたに召喚するサブコマンドです。たとえば、以下のように使います。
/execute summon zombie run attribute @s minecraft:generic.movement_speed base set 0.46
上のコマンドを実行すると、コマンド実行者としてゾンビが召喚されて、attributeコマンドで自身の移動スピードを0.46(デフォルトの2倍)にします。
align – 実行座標を整数値にする
alignは、実行座標を整数値に丸めるサブコマンドです。座標を~(チルダ)や^(キャレット)で指定しながら、位置をブロックの角や中心に合わせたいときに使えます。
alingに続けて「x」「y」「z」「xy」「xz」「yz」「xyz」が指定でき、「align xz」ならx座標とz座標が、「align y」ならy座標だけが整数値になります。
たとえば、以下のように使います。
/execute align xyz run tp ~ ~ ~
座標(x,y,z)=(-0.4,64.3,-2.6)にいるときに上のコマンドを実行すると、(x,y,z)=(-1,64,-3.0)にテレポートします。
alignは、座標をもとの座標をふくむブロックの底面の端にそろえます。四捨五入でも、小数点以下の切り捨てでもない点には注意しましょう。
anchored – 実行位置の基準点を変更する
anchoredは、コマンド実行位置の基準点を、目の高さか足の高さに変更できるサブコマンドです。パーティクルなどの表示位置を変えたいときなどに使えます。「anchored eyes」「anchored feet(デフォルト)」のいずれかで指定します。
たとえば以下のコマンドを実行すると、指定なしでは足元に表示されるハートのパーティクルが、目の前に表示されます。
-
/execute anchored eyes run particle heart ^ ^ ^1
-
/execute anchored eyes run particle minecraft:heart_particle ^ ^ ^1
rotated – 向きを角度で指定する
rotatedは、向きを角度やターゲットセレクターで指定するサブコマンドです。向きを指定するサブコマンドにはfacingもありますが、facingと違って角度(数値)で向きを指定できます。
たとえば以下のように使います。
/execute anchored eyes rotated -45 0 run setblock ^ ^ ^5 cobblestone
上のコマンドを実行すると、南東の水平方向を向いている状態でコマンドが実行され、目の前の空間に丸石が設置されます。
角度として指定する値は、下の画像のものを使います。
「rotated as ◯◯」とすることで、ターゲットセレクターで方向を指定できます。該当するエンティティが複数いる場合は、すべての対象に対して実行されます。
たとえば以下のように入力すると、ウシのいる方向に村人が怒ったときのパーティクルが表示されます。
-
/execute rotated as @e[type=cow] run particle minecraft:angry_villager ^ ^ ^5
-
/execute rotated as @e[type=cow] run particle minecraft:bleach ^ ^ ^5
in – ディメンションを指定する
inは、コマンドを実行するディメンションを指定できるサブコマンドです。たとえば、以下のように使います。
/execute in the_end run tp ~ ~ ~
オーバーワールドで上のコマンドを実行すると、ポータルを経由せずにエンドにテレポートできます。ディメンションは、オーバーワールド(通常世界)、ネザー、エンドのいずれかが指定可能です。
指定 | 世界 |
---|---|
overworld | オーバーワールド |
the_nether(Java版) nether(統合版) |
ネザー |
the_end | エンド |
オーバーワールドやエンドからネザーにテレポートするときは、テレポート先の座標が指定座標の1/8になるので注意が必要です。
on – 関係性で実行者を指定
onは、実行者を指定するサブコマンドです。実行者を指定するサブコマンドにはasがありますが、onは「エンティティの関係性」によって実行者を指定できます。
たとえば、以下のように使います。
execute as @e[type=arrow] on origin run effect give @s minecraft:glowing
上のコマンドを実行しておくと、矢を射たエンティティ(プレイヤーやスケルトンなど)が発光します。
on ◯◯といった形で入力し、◯◯に入るコマンドは以下のような種類があります。
指定 | 対象 |
---|---|
attacker | 実行者にダメージを与えたエンティティ |
controller | 実行者に乗って操縦しているエンティティ |
leasher | リードで実行者を引き連れているエンティティ |
origin | 実行者を召喚したエンティティ(矢を射たエンティティなど) |
owner | 実行者を手懐けているエンティティ |
passengers | 実行者に直接乗っているエンティティ |
target | 実行者の攻撃対象 |
vehicle | 実行者に乗られているエンティティ |
以上、マイクラのexecuteコマンドの使い方と、入力例の紹介でした。サブコマンドが多いこともあって、理解するのもなかなか大変なコマンドです。何回か使ってみると感覚がつかめるので、紹介している入力例を参考にしつつ、色々と試してみてください。
その他のマイクラのコマンドについては以下のページでまとめて紹介しています。
nishiのマイクラ攻略の「マイクラのコマンド一覧!効果と入力例をまとめました」の記事一覧です。