マイクラの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=コマンド実行者)。

nishi

executeを使うときは、実行者と実行位置をそれぞれ意識したほうが良いです。「as ◯◯ at @s」とセットで指定しておけば、自分がコマンドを実行するのと同じ感覚で、エンティティにコマンドを実行させることができます。

if|unless – 条件を満たす・満たさないときに実行

ifは指定した条件を満たしているときに、unlessは条件を満たしていないときにだけコマンドを実行できるサブコマンドです。

たとえば、以下のように入力します。

  • Java版
  • 統合版
  • /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の条件一覧
if biome 指定したバイオームかどうか Java版のみ
if block 指定座標にブロックがあるかどうか
if blocks 指定範囲のブロックが一致するかどうか
if data 指定したデータがあるかどうか Java版のみ
if dimension 指定したディメンションかどうか Java版のみ
if entity 指定したエンティティがいるかどうか
if loaded 指定座標が読み込まれているかどうか Java版のみ
if predicate predicateの条件を満たしているかどうか Java版のみ
if score スコアが条件を満たすかどうか

store – 実行結果を保存する

storeは、コマンドの実行結果を保存できるサブコマンドです。store resultで実行結果を、store successで成功回数を保存できます。

たとえば、以下のように使います。

/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 高度マップの値で指定する(高度マップは各座標における最高高度を記録したファイルのこと)

まずは、座標で指定する例です。

  • Java版
  • 統合版
  • /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

上のコマンドを実行すると、すべてのエンティティに雷が落ちます。

nishi

「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(デフォルト)」のいずれかで指定します。

たとえば以下のコマンドを実行すると、指定なしでは足元に表示されるハートのパーティクルが、目の前に表示されます。

  • Java版
  • 統合版
  • /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 ◯◯」とすることで、ターゲットセレクターで方向を指定できます。該当するエンティティが複数いる場合は、すべての対象に対して実行されます。

たとえば以下のように入力すると、ウシのいる方向に村人が怒ったときのパーティクルが表示されます。

  • Java版
  • 統合版
  • /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コマンドの使い方と、入力例の紹介でした。サブコマンドが多いこともあって、理解するのもなかなか大変なコマンドです。何回か使ってみると感覚がつかめるので、紹介している入力例を参考にしつつ、色々と試してみてください。




その他のマイクラのコマンドについては以下のページでまとめて紹介しています。