表示エンティティ(英:Display Entity)はデータパックやマップ製作向けのエンティティであり、様々なものを表示するのに利用できる。ブロック表示エンティティ(block_display
)、アイテム表示エンティティ(item_display
)、テキスト表示エンティティ(text_display
)の3種類が存在する。/summon
や/execute summon
コマンドでのみ作成できる。
振る舞い[]
マーカーと同様に、表示エンティティはコマンド以外では移動せず、ダメージも受けず、サウンドも発せず、ブロックの設置も邪魔せず、プレイヤーやその他エンティティを外に押し出しもしない。マーカーと異なるのは、クライアント側で描画され、デバッグ画面のE
の値(総エンティティ数)に計上されるという点である。
表示エンティティに当たり判定はなく、F3 + Bで当たり判定を表示させても、表示エンティティに対する当たり判定は表示されないが、視線の向きを示す青色の線は表示される。表示エンティティに向かってF3 + Iを押しても、エンティティデータはクリップボードにコピーされない。
使用法[]
表示エンティティはコマンドでのみ召喚できる。省略時の内容は、ブロック表示エンティティ、アイテム表示エンティティ、テキスト表示エンティティでそれぞれ{block_state:{Name:"minecraft:air"}}
、{item:{id:"minecraft:air",Count:0b}}
、{text:'{"text":""}'}
であり、NBTを指定せずにコマンドで作成した場合、不可視のエンティティとして生成される。エンティティデータを変更することで表示内容やその他視覚効果、およびモデルの回転、縮尺、平行移動を容易に編集できる。
custom_model_data
付きのアイテム表示エンティティによって任意のカスタムモデルを容易に表示することができる。
アイテム表示エンティティの場合、NBTを直接編集する以外にも、container.0
スロットに対して/loot
や/item
を使うことでも表示アイテムを編集できる。
補間アニメーション[]
表示エンティティのプロパティのうちいくつかは補間機能を持ち、時間をかけて徐々に変化するようなアニメーションを表示することができる。補間機能に対応しているプロパティは、#エンティティデータ項を参照。
補間機能に対応しているプロパティに変更が加えられると変更前後の値が共にクライアント側に保存され、変更を受け取ったクライアント側のティックからstart_interpolation
ティック後にアニメーションを開始し、interpolation_duration
ティックをかけて変更前の値から変更後の値へ滑らかに変化させる。
サーバーは1ティックに高々1回だけクライアントとのエンティティの同期を行うため、1ティック内で複数回プロパティを変更した場合も1回で同様の変更を行った場合と同様に作用する。
補間機能は対応しているプロパティに対して一括で作用するため、プロパティごとに補間機能を別個に作用させることはできない。
位置と回転の補間アニメーション[]
表示エンティティの補間アニメーションを使用する際には表示エンティティ自体の座標や回転は変更せず、表示されるオブジェクトのみを transformation内で平行移動・回転をさせるのが基本である。しかし表示エンティティの Posや Rotation自体も補間アニメーションには対応しており、 teleport_durationティックを掛けて位置と回転の補間アニメーションが表示される。
なお補足としてクライアント側では、補間アニメーションの有無に関係なく表示エンティティの位置と回転の変更はコマンドによる変更を受けてから1ティック後に実行される。ただし、 teleport_durationを0に設定している場合に限り即座に変更が適用される。なお表示エンティティが他のエンティティに騎乗している場合は、変更の適用は通常通り即座に行われる。
技術的情報[]
ID[]
エンティティ | 名前空間ID | 翻訳キー |
---|---|---|
ブロック表示エンティティ | block_display | entity.minecraft.block_display |
アイテム表示エンティティ | item_display | entity.minecraft.item_display |
テキスト表示エンティティ | text_display | entity.minecraft.text_display |
エンティティデータ[]
表示エンティティにはエンティティの様々な属性を含むエンティティデータが存在する。
ブロック表示エンティティ[]
- ルートタグ。
- すべてのエンティティに共通するタグ
- すべての表示エンティティに共通するタグ
- block_state:ブロック状態。
- ブロック状態
アイテム表示エンティティ[]
- ルートタグ。
- すべてのエンティティに共通するタグ
- すべての表示エンティティに共通するタグ
- item:表示するアイテム。
- すべてのアイテムに共通するタグ
- item_display:アイテムモデルの表示の仕方。アイテムモデルのJSONの
display
フィールドで定義されるようなモデル変換の種類を指定する。none
、thirdperson_lefthand
、thirdperson_righthand
、firstperson_lefthand
、firstperson_righthand
、head
、gui
、ground
、fixed
(省略時)のいずれかの値を指定する。
テキスト表示エンティティ[]
- ルートタグ。
- すべてのエンティティに共通するタグ
- すべての表示エンティティに共通するタグ
- alignment:テキストの水平方向の配置。
center
(省略時)、left
、right
のいずれかを指定する。 - background:背景色。ARGB値で指定する。アルファチャンネルが0.1未満のピクセルはバニラのシェーダーの描画対象外であるため、Aの値が
26
(0x1A
)未満の場合、完全に透明な背景となる。省略時は1073741824
(
0x40000000
)である。補間対象である。 - default_background:
true
のとき、チャットなどで使用されるデフォルトの背景色が使われる。 backgroundより優先される。省略時はfalse
である。 - line_width:1行の最大幅。これを超える幅のテキストは改行される(注:改行文字
\n
を挿入することでも改行できる)。省略時は200
である。 - see_through:ブロック越しにテキストが表示されるかどうか。省略時は
false
である。 - shadow:テキストの影の有無。省略時は
false
である。 - text:Raw JSONテキストフォーマットで記述した、表示するテキスト。
- text_opacity:テキストのアルファ値。本来0から255の値であるが、符号なし整数型はNBTに存在しないため、127より大きい値は256を減算する必要があり、よって
-128
から127
の値を指定することとなる。背景色と同様に、26未満のアルファ値は完全な透明として扱われる。省略時は-1
であり、これはアルファ値255すなわち完全な不透明に対応する。補間対象である。
歴史[]
Java Edition | |||||
---|---|---|---|---|---|
1.19.4 | 23w06a | ブロック表示エンティティ、アイテム表示エンティティ、テキスト表示エンティティが追加された。 | |||
Pre-release 4 | 新規の補間アニメーションが開始する際、現行の補間アニメーションの最終地点ではなく現在の状態から次のアニメーションを開始するようになった。 | ||||
Release Candidate 1 | 補間機能が、クライアント側のティックの最初に始まるようになった。 | ||||
フィールドinterpolation_start が、異なる機能を持つstart_interpolation に置き換わった。 | |||||
start_interpolation は、補間機能発動の更新を受け取った次のクライアント側のティックから、補間機能開始までのティック数を指定する。例えば、これが0に設定されている場合は更新を受け取った次のクライアント側のティックの初めから補間機能が開始される。 | |||||
start_interpolation はエンティティデータに保存されない。/data を用いて動作させる際、補間値が更新されたのにstart_interpolation が変更されたタグの中に含まれていない場合、補間機能は前回の更新から継続して、新しい値で行われる。 | |||||
1.20 | 23w16a | アイテム表示エンティティの表示方向が、Y軸を中心にして180度回転された。 | |||
1.20.2 | 23w31a | 従来の transformationの補間アニメーションに加え、この位置( Pos)と回転( Rotation)の補間アニメーションが利用できるようになった。この補完アニメーションの持続時間は、表示エンティティの新しいフィールドteleport_duration によって決定される。
| |||
表示エンティティのクライアント側での位置と回転( transformationではなく Posと Rotationによって決定される汎用の位置と回転)の更新は、コマンドによる更新を受け取った1ティック後から始まるようになった。 |
問題点[]
「表示エンティティ」、「ブロック表示エンティティ」、「アイテム表示エンティティ」、または「テキスト表示エンティティ」に関する問題点は、バグトラッカーにて管理されている。問題点の報告はそちらで行ってほしい。