executeでよく並んでいる、asとat。どちらも後ろに相手を書くので、混ざりやすいんですよね。今回は、この2つだけに絞って読んでみます。
executeのasは実行するエンティティを、atは実行する位置などの基準を切り替えます。asで相手を選んだだけでは、その相手の場所から実行する指定にはなりません。「だれ」と「どこ」を分けて読むのがポイントです。
「誰が」と「どこで」は、別の指定
asでプレイヤーを選ぶと、その人の場所から動くようにも見えますよね。でも、asだけでは位置の基準は変わりません。ここが、この2つを分けて読む理由です。なお、実行位置の指定を変えても、それだけでプレイヤーが移動するわけではありません。
asは「だれが」
asの後ろに書くのは、「誰に実行してもらうか」です。ここで選んだエンティティが、その先の実行者になります。実行者を参照する@sが誰を指すかも、この指定の影響を受けます。
atは「どこを基準に」
atは対象の場所などを実行の基準に使います。~ ~ ~のような相対座標を読むときに、この基準が重要です。逆に、atだけで「誰が」まで変わるわけではありません。場所と相手、セットに見えて別々なんです。
よく見る並びを分解する
次は書き方を読むための部分例です。末尾の命令を省いているので、この一行だけを実行するものではありません。
execute as @a at @s run …
-
as @a:プレイヤーごとに実行者を選ぶ。 -
at @s:そこで選ばれた実行者の位置を基準にする。 -
run:組み立てた条件で、後ろの命令へ進む。
「全員のところで何かをする」ような仕掛けを読むときに、この組み合わせが登場します。どんな命令を後ろにつなぐか、条件で対象をどう絞るかは、作りたい仕掛けによって変わります。
長くなったら、ここだけ追ってみよう
- いまの実行者は誰か。
- いまの位置の基準はどこか。
- 最後に実行したい命令は何か。
途中にifなどの条件が増えても、まずこの3点を追ってみましょう。すべてを一度に理解するより、基準が切り替わる場所に印を付けてから条件を読むと、役割が混ざりにくくなります。
この解説の範囲
ここでは統合版の現行公式リファレンスにあるas・atの役割を扱っています。古いexecute構文とは区別してください。Java版でも似た形を見かけますが、版ごとの細部や完成した仕掛けの互換性は、別に確認が必要です。
asで「誰が」、atで「どこで」。まずはこの2つを、別々に追ってみてくださいね。
参照した資料
確認範囲:統合版の公式executeリファレンスで役割を確認。掲載コードは構文を読むための未完成例で、実行用ではありません。
資料確認:2026-09-19 JST