この記事では、Minecraft Java Edition(バージョン1.19.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
executeコマンドのonについて知りたいマインクラフター
「ver.1.19.4でexecuteコマンドにonって項目が足されたけど、これは何をするものなの? 使い方も教えて欲しいな」
こんな疑問を解決します!
- execute onでコマンドの実行者を変えられる
- execute onの項目を解説
こんにちは! マインクラフターのなつめ(@natsume_717b)です。
マイクラ歴は5年程で、最近は脱出マップやミニゲームを制作しています!
→ダウンロードページ
この記事では、executeコマンドのonについて解説していきます。
onという項目はver.1.19.4から追加されたものですが、今までに触れることのできなかった範囲を扱っているものです。
詳しくはこの後説明していますので、さっそく見ていきましょう!
execute onでコマンドの実行者を変えられる
executeコマンドのonを使うとコマンドの実行者を変更することができます。
つまり、asと似たような運用ができるわけですね。
asを使うことでコマンドの実行者を変更することができます。
【超便利】executeコマンドは条件や仮定を付与する【マイクラ】にて詳しく解説しています。
onの項目でownerを選択したとしましょう。
その場合には、コマンドの実行者を手懐けているプレイヤーをコマンドの実行者に変更します。
オオカミをコマンドの実行者にしている状態でownerを選択すれば、オオカミを手懐けたプレイヤーがコマンドの実行者となるわけです。
このように今までasで選択できなかった内容でコマンドの実行者を変更できるというのがonとなります。
onの仕様について
onはasと同様に、ifのような仕組みも含まれています。
以下のコマンドがあったとしましょう。
execute as @e[type=pig] on controller run effect give @a minecraft:glowing 1 0 true
ブタをコマンドの実行者にするためにasで@e[type=pig]を指示し、onの項目でcontrollerを指示しています。
controllerは操縦しているプレイヤーをコマンドの実行者に変更するものです。
なので、ブタに乗ってそのブタを操作しているプレイヤーがコマンドの実行者になります。
ということで、ブタを操縦しているプレイヤーが存在していると、全てのプレイヤーに対して発光のエフェクトを付与するコマンドとなっているわけですね。
細かい話をすると、asやonだけでifのような運用をしてはいけません。
コマンドが失敗しているだけで、実行はされているため負荷がかかります。
if entity @sなどで必要のない時には、コマンドが実行されないようにしておきましょう。
というわけで、onを使うとonの対象となるプレイヤー(エンティティ)がいないと実行結果が失敗に終わるということになります。
execute onの項目を解説
onでは8種類の選択肢があります。
先ほど紹介したownerやcontorollerがその一部ですね。
それら含めどういったエンティティが対象となるのかを解説していきます。
1:attacker
attackerを選択すると、コマンドの実行者を攻撃したエンティティがコマンドの実行者となります。
例えば以下のようなコマンドを実行しておけば、プレイヤーを攻撃したエンティティを光らせることができます。
execute as @a on attacker run effect give @s minecraft:glowing 1 0 true
2:controller
contorollerはコマンドの実行者を操作しているエンティティがコマンドの実行者に変更されます。
なので、ブタや馬に乗れば対象になりますね。
そのほかにはボートに乗ることなども含まれています。
execute as @e on controller run effect give @s minecraft:glowing 1 0 true
3:leasher
leasherはコマンドの実行者をリードで引き連れていると対象になります。
なので、mobにリードをつけている状態などが当てはまるわけです。
execute as @e on leasher run effect give @s minecraft:glowing 1 0 true
4:origin
originはコマンドの実行者の発生元であるエンティティを対象にします。
これだけ聞くとよく分からないかと思いますが、スケルトンの放った矢がコマンドの実行者、ドラウンドが投げたトライデントがコマンドの実行者と言うと、なんとなくイメージが掴めるのではないでしょうか。
上記の例では投擲物の発生元であるmobがコマンドの実行者に変更されるわけです。
そのほかにはプレイヤーがクロスボウで射た場合にそのプレイヤーがコマンドの実行者に変更されるといったことも挙げられます。
execute as @e on origin run effect give @s minecraft:glowing 1 0 true
5:owner
ownerはコマンドの実行者を手懐けているエンティティが対象となります。
なので、オオカミや馬などを手懐けているプレイヤーはもれなく対象になるわけです。
エヴォーカーがヴェックスを召喚しますが、あれは召喚しているだけでエヴォーカーが手懐けているわけではないので対象となりません。
execute as @e on owner run effect give @s minecraft:glowing 1 0 true
6:passengers
passengersはコマンドの実行者に直接騎乗しているエンティティが対象となります。
なので、ブタや馬、ストライダーなどに乗っていると、コマンドの実行者となるわけですね。
rideコマンドが実装されているので、必ずしも鞍をつけられて騎乗できるmob限定のものというわけではありません。
execute as @e on passengers run effect give @s minecraft:glowing 1 0 true
7:target
targetはコマンドの実行者から攻撃対象に選ばれると対象になります。
なので、ゾンビやスケルトンといったmobから攻撃されそうになっている時はコマンドの実行者になっているわけです。
「攻撃された」ではない点に注意です。
execute as @e on target run effect give @s minecraft:glowing 1 0 true
8:vehicle
vehicleは言うなれば、passengersの逆です。
コマンドの実行者に騎乗されているエンティティが、コマンドの実行者になります。
なので、ブタに乗っているプレイヤーがコマンドの実行者の場合はブタがコマンドの実行者に代わるわけですね。
execute as @e on vehicle run effect give @s minecraft:glowing 1 0 true
まとめ
というわけで、今回のまとめです。
- onを使うことで、asのようにコマンドの実行者を変更できる。
- asとは違い、エンティティの状態に合わせてコマンドの実行者を変更できる。
この記事は以上になります。