メインコンテンツまでスキップ

エンティティとプレイヤの指定子

エンティティ指定子とプレイヤ指定子について説明しています。


概要

エンティティ指定子・プレイヤ指定子はそれぞれ, アクションにおいてターゲットを指定するために使います。

エンティティ指定子

エンティティ指定子は, 文字列型とEntity 型としてふるまう特別な型です。
主にエンティティを指定するときに使用し, 以下のような値をとります。

1. プレイヤの名前

例:"Player1"

警告

エンティティの名前は指定できません

2. プレイヤまたはエンティティの UUID

UUID を用いて指定できます。ハイフンは自動的に補完されるため省略可能です。

例:"00000000-0000-0000-0000-000000000000", "00000000000000000000000000000000"

3. プレイヤまたはエンティティのセレクタ

  • 省略可: @e は省略できます。(例:"[team=Red,tags=MyTag]"
  • 省略可: @e[...] は省略できます。(例:"team=Red,tags=MyTag"

例:"@e[team=Red,tag=MyTag]"

警告

ここでのセレクタは, 通常のMinecraft ターゲットセレクタ とは異なります。

Scenamatica では, いくつかの理由で独自のセレクタを使用しています。 基本的な構文や機能はMinecraft のセレクタと同じですが, 独自の機能が追加されています。

詳しくは以下のドキュメントを参照してください:

4. Entity 型 のオブジェクト

特に記述がない限り使用できます。これを使用すれば, セレクタを使用せずに, YAML のオブジェクトで高度な条件を指定できます。

例:

# ↓ タグ MyTag を持つアーマースタンドエンティティを指定 
target:
type: ARMOR_STAND
tags: ["MyTag"]
せんでん

エンティティ(コンテキスト)を使用すれば, 常に読み込まれるシナリオ専用のエンティティを作成できます。

プレイヤ指定子

プレイヤ指定子は, 文字列型とPlayer 型としてふるまう特別な型です。

これは基本的には上記のエンティティ指定子と同じですが, プレイヤを指定する場合にのみ有効です。

シナリオの種類での振る舞いの違い

シナリオの種類によって, エンティティ指定子またはプレイや指定子は以下のように振る舞います。

  • アクション実行シナリオでは, 単一のエンティティを指します。
    @e 等で複数のエンティティを指定した場合は, 最初に見つかったエンティティが使用されます。
  • アクション実行期待シナリオでは, 該当する複数のエンティティのうちどれか一体を指します。
    複数のエンティティを指定した(見つかった)場合は, そのうちのどれか一体が条件を満たしていたらパスされます。
    単一のエンティティを指定した場合は, そのエンティティが条件を満たしているかどうかが判定されます。

例:

- type: execute
action: ...
with:
target: "@e[team=Red]" # チームが Red のエンティティのうち, 最初に見つかったものが使用される

---

- type: expect
action: ...
with:
target: "@e[team=Red]" # チームが Red のエンティティのうち, どれか一体が条件を満たしていればパスされる