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

【マイクラ】location_checkで場所の確認【predicate】

【マイクラ】location_checkで場所の確認【predicate】

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

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

なつめ

2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!

この記事では、こんな疑問を解決します!

本記事の内容
  • location_checkで、その場所が適否かどうか確認する

loaction_checkはpredicateの1種です。
そのため、コマンドの実行条件などに用いることが可能です。

loaction_checkを指示することで場所の特徴を元に判別できるので、「○○にいる時」などといったことに活用できます。

さっそく見ていきましょう!

本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。

location_checkで、その場所が適否かどうか確認する

location_checkはpredicateの1種で、その場所が指示した条件と比較して適切かどうかを調べるものです。

そのうえで、コマンドの実行などに役立ちます。

ひとまず「○○にいるならコマンドを実行する・しない」ものだと思えばOKです。

今回はバイオーム、ディメンジョン、ストラクチャーの3つを条件にする場合について見ていきます。

ですが、その前に共通する部分として、precicateの本体であるjsonファイルなどを格納するデータパックについて解説します。

データパックの構造

データパックの構造は以下の通りです。
特別難しいことはしません。

  • datapack本体
    • data
      • sample
        • predicate
          • biome_check.json
          • dimension_check.json
          • structure_check.json
    • pack.mcmeta

pack.mcmetaとjsonファイル以外は全てフォルダになります。
pack.mcmetaは以下のように記述すればOKです。

{
  "pack": {
    "pack_format": 26,
    "description": "説明文"
  }
}

また、今回は3通りのものを紹介するため、jsonファイルが3つ存在します。
これらが連携を取っているなどということはありません。

各jsonファイルの中身と共に、どういうことができるのか見ていきましょう。

バイオームをチェックする

バイオームをチェックしたい場合は、以下のようにjsonファイルに記述します。

{
  "condition": "minecraft:location_check",
  "predicate": {
    "biome": "minecraft:plains"
  }
}

biome部分にplainsの記載がありますので、if predicateの指示をした際にこの記述をしたファイルを参照させれば、「平野にいる場合に実行する」といった指示が行えます。

unlessを使えば、「平野にいない時」という指示を行えます。

コマンドとしては、以下の通りです。
(上述の記述をbiome_check.jsonにしたとします)

/execute if predicate sample:biome_check run give @a diamond 1

ディメンジョンをチェックする

ディメンジョンをチェックしたい場合には、以下のように記述します。

{
    "condition": "minecraft:location_check",
    "predicate": {
      "dimension": "minecraft:overworld"
    }
  }

バイオームの時と似ており、dimensionという箇所でディメンジョンの指定を行います。
上記の場合は、オーバーワールドが指示されていますね。

オーバーワールドにいる際にコマンドが実行されるよう記述するなら

/execute if predicate sample:dimension_check run give @a diamond 1

となります。
(上述のjsonファイルがdimension_check.jsonに記載されているとします)

ストラクチャーをチェックする

ストラクチャー、つまりは村やエンドシティ、要塞などの構造物にいることを指示するには、以下のように記述します。

{
    "condition": "minecraft:location_check",
    "predicate": {
      "structure": "minecraft:village_desert"
    }
  }

上記の場合は、砂漠の村にいるかどうかを調べられます。
これはstructureの部分に”minecraft:village_desert”と記載されているからですね。

コマンドとして実行する際は以下のようになります。
(上述の内容をstructure_check.jsonに記述したとします)

/execute if predicate sample:structure_check run give @a diamond 1

jsonファイルを作成する

ここまで複数の例を見ましたが、これらはPredicate Generatorで作成することをおすすめします。

今回紹介した項目以外にも、様々な項目があります。

具体的には以下の通り。

  • position(座標位置)
  • light(その場所の明るさ)
  • smokey(指示した場所が煙で燻されているか)
  • block(その場所にあるブロック)
  • fluid(その場所にある液体)

詳細はGitHubにあげたサンプルのREADME.mdをどうぞ。

ここからもアクセスできます!

まとめ

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

ポイント
  • loaction_checkを使うことで、場所の特徴を元に適否を判別できる。

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

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