マルチプレイなら『シン・VPS』がおすすめ!

【コマンド】動かないmobを呼ぶにはNoAIを設定する【解説】

【コマンド】動かないmobを呼ぶにはNoAIを設定する【解説】

この記事では、Minecraft Java Edition(バージョン1.18.1)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

動かないmobを出現させたいマインクラフター
「動かないmobを呼びたいんだけど、どうすればいいの? 途中で動かすとかできるのかな? ついでにプレイヤーを動けなくする方法についても知りたいな」

こんな疑問を解決します!

本記事の内容
  • 動かないmobを呼ぶにはNoAIを設定する
  • NoAIの値を変更するコマンド
  • プレイヤーを動けないようにする場合

こんにちは! マインクラフターのなつめ(@natsume_717b)です。

なつめ

マイクラ歴は5年程で、最近は脱出マップを配布・制作しています!
→配布マップ・ダウンロードページ

この記事では、動かないmobを召喚する方法や既に存在しているmobを動かなくする方法について解説しています。

また、プレイヤーを動けなくする方法についても解説。

これらはそこまで難しいコマンドを使っているわけではないので、すぐに使いこなせるかと思います。

それでは、さっそく見ていきましょう。



動かないmobを呼ぶにはNoAIを設定する

動かないmobを呼び出すには、NoAIという項目を設定する必要があります。
設定といっても、1bという値を指定するだけですので、そこまで難しいわけではありません。

実際のコマンドはこちら。
呼び出す(召喚する)ので、summonコマンドを使っていきます。

/summon minecraft:pig ~ ~ ~ {NoAI:1b}

今回は動かないブタを召喚してみるコマンドにしてみました。
minecraft:pigの部分がブタを示しており、~ ~ ~の部分がどの場所に召喚するのかを指示しています。

~はコマンドの実行場所と同じ場所を指示する記号です。
【コマンド】座標を示す記号2種+ほか9種を徹底解説【マイクラ】

そして、文末にある{NoAI:1b}が動かないようにしている指示になります。
NoAIということで、AIがあるかどうかみたいなイメージで考えてくれればOKです。

通常はNoAIの値というのは、0bになっています。
ですが、動いてほしいmobに対してわざわざ0bという値を指示を与える必要はありません。
(デフォルトで0bに設定されます)

なので、ブタ以外にしたければminecraft:pigの部分を、特定の座標にしたければ~ ~ ~の部分を変更して行えば、都合の良い風に動かないmobを召喚出来ます。

ちなみにAIがなくなりますので、村人は就職することが無くなります。
このような弊害もあるので、そういった点には気をつけましょう。

NoAIの値を変更するコマンド

先ほど紹介した方法は、初めからNoAIの値を指示しているmobを召喚するものでした。
つまり、既に存在しているmobのNoAIの値を変更することができません。

そこで既に存在しているmobに対してNoAIの値を変更するコマンドを紹介していきます。

それがこちら。

/data merge entity 対象となるmobのUUID {NoAI:1b}

対象となるmobのUUIDは、それぞれのmob(エンティティ)ごとに異なります。
なので、確実にそのmobのUUIDを入力できるように、そのmobにカーソルを合わせてからdataコマンドを入力していく必要があります。

カーソルを合わせてコマンドを入力していくことで、entityと入力した後に候補としてそのmobのUUIDが表示されます。
それを選べばOKということですね。

UUIDについては以下の記事で解説しています。

【マイクラ】UUIDは個体を識別するための番号【確認方法など】

また、上記のコマンドの{NoAI:1b}の部分を{NoAI:0b}に変更すれば、対象としたmobを再び動く用にすることも可能です。

というわけで、既に存在しているmobを動かなくさせるには、dataコマンドでNoAIを指示すればOKです。

プレイヤーを動けないようにする場合

今まではmobを動かなくする方法を紹介していきましたが、ここではプレイヤーを動けなくする方法を解説していきます。

プレイヤーにはNoAIの項目がないため、mobと同様のコマンドでは失敗してしまいます。
そこで、プレイヤーをその場に留めさせるためにtpコマンドを使います。

今回はriceというタグを持っているプレイヤーが動けないようにするコマンドを紹介します。

タグを持っているプレイヤーに限定しているのは、無差別にプレイヤーを動けないようにしてしまうとコマンドを無効にするのが大変になってしまうからです。
もしもコマンドを無効にせざるを得なくなった際は【解決】コマンド無効にはenable-command-blockをどうぞ。

具体的なコマンドはこちら。
以下のコマンドをリピートコマンドブロックに入力。無条件、常時実行に設定しておきます。

execute as @a[tag=rice] at @s run tp @s ~ ~ ~ 

これで、riceというタグを持っているプレイヤーは全員その場から動くことができなくなります。

tpコマンドだけだとコマンドブロックの場所にテレポートしてしまうので、executeコマンドでそれぞれのいる場所をコマンドの実行場所に変更しています。

というわけで、プレイヤーを動けなくするにはその場にテレポートさせ続ければOKということです。

まとめ

というわけで、今回のまとめです。

今回使ったコマンドはこちら。

今回使ったコマンド
  • 動かないブタを召喚するコマンド
/summon minecraft:pig ~ ~ ~ {NoAI:1b}
  • 既に存在しているmobを動けなくするコマンド
    (そのmobにカーソルを合わせて、UUIDを候補に出現させる)
/data merge entity 対象となるmobのUUID {NoAI:1b}
  • riceというタグを持っているプレイヤーを動けなくするコマンド
    (正確にはその場にテレポートさせ続けるコマンドで、リピートコマンドブロックでリピートする必要がある)
execute as @a[tag=rice] at @s run tp @s ~ ~ ~ 
ポイント
  • mobを動かなくするには、NoAIという項目を1bに指定すればOK。
  • プレイヤーはNoAIを持っていないので、tpコマンドを繰り返してその場に居続けさせることで実質動けなくすることが可能。

この記事は以上になります。

  • 【まとめ】functionコマンドの基本から応用【マイクラ】
  • 【まとめ】カスタムストラクチャーの実装・カスタム方法【マイクラ】